Introduction to Agile and Iterative Methodologies
1. Agile and Iterative systems development
Introduction and Background
Agile and Iterative systems development is a method of managing software projects which accommodates unplanned changes to the project’s requirements. The methods are highly interactive, iterative and flexible in gathering the requirements of the system to be developed (Moran, 2015). Agile methodologies are championed by the agile movement which sets guidelines on basic requirements and characteristics of an agile methodology; defined in the twelve principles outlined in the Agile Manifesto (Beck et Al, 2013). Currently, there are a number of agile methodologies that are commonly used globally, they include; Feature Driven Development (FDD), Dynamic systems development method (DSDM), Extreme Programming (XP) and Scrum (Moran, 2015). All the methodologies under the agile umbrella have some common characteristics such as the encouraging participation of all stakeholders at every phase of the project, use of objective metrics, accommodation of feedbacks and establishment of effective control over the project (Moran, 2015). The methods are also characterized by interactive and incremental development. With this approach, the requirements of a given project evolves systematically as the project takes shape, through the cooperation between self-organizing, cross-functional teams (Beck et Al, 2013).
With Agile methodologies, evolutionary development is used, supported by a time-boxed iterative approach and an adaptive planning; which encourages rapid and flexible adoption of changes to the project. Interaction between project stakeholders and the requirements helps to shape the project’s life cycle. Agile Manifesto puts more priority to a customer’s satisfaction, effective communication, cooperation between stakeholders, iterative development and flexibility in the development process among others.
A project managed using an Agile methodology has three main stakeholders; the project team, the owner and the agile project manager (Moran, 2015). The project owner has overall oversight over the business aspects of the project; this includes assessment of the product being developed to ensure that it meets the business needs and making decisions on aspects related to the product. On the other hand, the organization and management of the project team is the prerogative of the project manager. The manager is tasked with the duty of optimizing the productivity of the team and deal with issues that may affect the delivery of the project. The role of the project team is to built the actual deliverables of the project (Moran, 2015).
As stated earlier, under the Agile umbrella are numerous variations of agile methodologies. In this section we discuss 4 of the methodologies; Feature Driven Development (FDD), Dynamic systems development method (DSDM), Extreme Programming (XP) and Scrum.
Agile and Iterative Methodologies for AFD Case Study
Extreme Programming (XP)
Extreme Programming falls under the agile development methodologies. XP has all the characteristics of a convectional agile methodology; such as accommodation of evolving requirements, incremental and iterative approach to development and a continuous cycle of testing and revising (Kniberg, 2015). XP is best applied to project with unclear requirements at the start (Rumpe & Schröder, 2014).
Advantages of Extreme Programming
- With XP, a project can experience time and cost savings through elimination of unproductive activities that are common in convectional software development methodologies; this leaves the team to only focus on developing the desired product (Rumpe & Schröder, 2014).
- XP adopts simplicity and continuous feedbacks, resulting in a product that is simple and easy to maintain. Continuous feedbacks from sprints enables the project team to remain on course to the desired goal.
- The team spirit brought through collaboration ensures stakeholders focus and work as a team, to deliver quality products.
Disadvantages of Extreme Programming
- XP puts more emphasis on coding at the expense of designing a good software (Kniberg, 2015).
- Software is not adequately documented.
- The approach requires developers to work in pair, causing redundancy and code duplication.
- Since planning is not given sufficient time, quality controls may not be adequate.
Feature-driven development (FDD)
A second agile methodology is Feature-driven development. FDD borrows techniques from a number of development best practices to create a new approach. FDD focuses on the features of a system that core to a customer (Firdaus, Ghani, & Jeong, 2014). As such FDD is considered a pragmatic client and architecture-centric approach (Firdaus, Ghani, & Jeong, 2014). The approach has a number of core processes, which includes;
- Model Development; an object model is developed to model the problem.
- Features List: the project team identifies core features of the system and develops a features list.
- Planning by features: a work plan is developed which creates a schedule, resource plan and risk management (Firdaus, Ghani, & Jeong, 2014).
- Design by features: the chief programmer selects the main features and develops the domain classes.
- Building by features; the final step is implementing the design to build the features.
Advantages of Feature Driven Development
- FDD is product focused; focusing on main features required by the client, thus it leads to quality software that meets the client’s needs (Firdaus, Ghani, & Jeong, 2014).
Disadvantage of Feature Driven Development
- One disadvantage is that the product may not be in line with market demand, as the approach does not carry feasibility studies (Firdaus, Ghani, & Jeong, 2014).
Scrum
The third agile method is Scrum, which is primarily designed for managing smaller projects. With Scrum a customer puts forward requirements of the software to be developed. The key stakeholders include the project Team, Scrum Master and the Product Owner.
- The requirements are ordered according to their priority and the list is called a “Product Backlog”.
- The project team is divided into smaller teams; all the teams are managed by a Scrum Master who keeps the project team focused on attaining the goal.
- The deliverables are divided into sprints and assigned to different teams; each team works on a given deliverable from the product backlog.
- At the end of each sprint, the outputs of the sprint are sent to the customer, followed by a review of the print by the project team, before the next sprint starts.
SCRUM advantages
- The project deliverables are clear and it is easy to measure the progress of the project with coverage of the products backlog.
- Short sprints make it possible for the project to deal with changes.
Disadvantages of Agile SCRUM
- May lead to scope creeps
- Requires the team to be very cohesive and experienced
Dynamic systems development method (DSDM)
The fourth agile methodology is DSDM. The method embraces all the agile principles. Additionally, DSDM creates a cost, a schedule and quality baseline at the start of the project. The scope of the project is prioritized using the MoSCoW prioritization into musts, should and could and won’t.
Advantages
- Deliverables from the development are clear and promptly visible.
- Users are involved in the development phases, ensuring that they embrace the product.
- The project is completed within budget and schedule.
- Users have a say on the project and can affect the direction of the project.
Disadvantages
- Adoption of the method requires a shift in the organizational culture.
Recommendations
For the development of the system for AFD, an agile methodology would be ideal for the development of the software. This is partly due to the fact that the requirements for the system may change as the project progresses. The specific methodology recommended is Scrum approach. With scrum, AFD will list the most critical features of the system, which will then be implemented first and other features implemented progressively.
Task 2: Memo
Memo on Plan for the development of the Human Computer Interaction (HCI)
To: AFD Employees
From:
Date:
Subject: Plan for the development of the Human Computer Interaction (HCI)
With the ongoing development of a new system at AFD, the management is striving to better how the AFD community interacts with computers. For that reason, a User Centered Design approach will be used in the development of the proposed system. The goal is to first identify what needs to be done to improve the usability, learnability and efficiency of the proposed system to the end users. For that reason, Human Computer Interaction (HCI) principles will be used, based on a User Centered Design.
Recommendations for Agile and Iterative Methodologies at AFD
Facts About User Centered Design
This is an iterative design approach where a system is designed with a focus on the needs of the users. As such, the design involves the engagement of the user at every phase of the design; resulting in a highly accessible and usable system. Although the design approach involves many other professionals, the user is the center stage and the main focus in designing the system.
Facts about HCI
Human–computer interaction (HCI) is an engineering and psychology domain that aims to research and design computer systems that enhances the interaction between the user and the machine. End User Computing Satisfaction is a key component of HCI. The domain borrows widely from other fields, particularly from psychology, programming and computer graphics.
Implications of UCD principles on CRM
Where systems have been developed without user’s needs being taken into consideration, the systems have failed, as user acceptance lacks. Use of UCD principles comes to eliminate this problem, by ensuring users are consulted at every phase of the design and development. The approach will ensure that all user needs are factored into the design, and that the resulting system will serve the needs of the end users.
Implementation Plan for UCD informed HCI
To ensure HCI is implemented through UCD, the following steps will be followed;
- Review current processes
- Establish needs of the end users
- Prototype the design informed by the requirements
- Get feedback on the prototypes from end users
- Improve the design.
We recommend the application of the Technology Acceptance model (TAM) in setting the plan for the implementation of UCD informed HCI at the organization. In particular, the metrics to be used from the TAM are Perceived ease-of-use (PEOU) and Perceived usefulness (PU); to measure the acceptance of the resulting system.
References
Asghar, A. R., Bhatti, S. N., Tabassum, A., Sultan, Z., & Abbas, R. (2016). Role of Requirements Elicitation & Prioritization to Optimize Quality in Scrum Agile Development. work, 7(12).
Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., … & Kern, J. (2001). Manifesto for agile software development.
Firdaus, A., Ghani, I., & Jeong, S. R. (2014). Secure feature driven development (SFDD) model for secure software development. Procedia-Social and Behavioral Sciences, 129, 546- 553
Kniberg, H. (2006). Scrum and XP from the Trenches. How we do Scrum.
Moran, A. (2015). Agile project management. In Managing Agile(pp. 71-101). Springer International Publishing.
Rumpe, B., & Schröder, A. (2014). Quantitative survey on extreme programming projects. arXiv preprint arXiv:1409.6599.
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2011). Systems analysis and design in a changing world. Cengage learning.
PART B
Question 3: Event Table
Event |
Event Type |
Trigger |
Source |
Activity/Use Case |
System Response/ Output |
Destination |
A store applies to be a customer |
External |
New Customer Application |
Customer |
Apply to be a customer |
Customer Application |
Management Team |
Management team approves a customer |
External |
Customer Approval |
Management Team |
Approve customer’s application |
Customer Approval |
Customer |
Management team creates a customer record |
External |
New customer record creation |
Management Team |
Create Customer |
A customer record |
Management Team |
Management team defines a geographical sales area |
External |
Request to define a Define geographical sales area |
Management Team |
Define sales area |
A sales area |
Management Team |
Management team a sales person to a geographical sales area |
External |
Assign sales person request |
Management Team |
Assign a sales person to a sales area |
Assigned area for the sales person |
Sales Person |
A sales person creates a Potential Customer record on the system |
External |
Potential customer record creation |
Sales Person |
Create a Potential Customer Record |
A potential customer record |
Sales Person |
Date to run a sales report |
Temporary |
“last day of the month” |
Run Sales Report |
Sales Report |
AFD management |
|
A sales person records a sales visit |
External |
Recording of a sales visit |
Sales Person |
Record Sales Visit |
Sales Record |
Management Team |
4: Domain Model Class Diagram
5: Design Class Diagram
6: Use Case Diagram
7: Use Case Description
Use Case Name: |
Takes Order |
|
Primary Actor: |
Staff at HQ |
|
Secondary Actors: |
Sales People |
|
Other Stakeholders: |
||
Business Goal: |
To take a new order from a sales person |
|
Precondition |
None |
|
Success Condition |
A new order is placed |
|
Main Path |
||
1. A sales persons calls the head office staff |
||
2. The staff at HQ takes order details through call and places the order |
||
3. The staff at HQ creates the order |
4. The system saves the record |
|
Variant Paths |