Introduction to agile and iterative methodologies
The aim of this report is to provide information about some agile and iterative system development methodologies to the business executive of AFD or Australian Fashion Designs. It is a Brisbane based business that has two design offices in Sydney and Melbourne. They operate in Australia with the help of their sales representatives and wedding representatives. Sales representatives sell women clothing to retail stores and wedding representatives sell women wedding dresses directly to customers.
The management has decided to implement a customer relationship management system that will automate some of its key business processes. The proposed system will record the details of the customers, sales and wedding representatives, the areas they cover and the sales they made. The system will also collect information about the visits made by sales representatives to customers. Here, customers are business customers having retail stores only.
Agile software development methodologies cover a number of system development approaches that are incremental, iterative in nature and follows agile manifesto. These approaches are self-organizing, and collaborative that allows communication and participation of the end users and system development team members throughout the project. Agile approaches advocates, early delivery, adaptive planning, continual improvement, and evolutionary development of systems. These are rapid development approaches flexible to adapt to changes. An agile system development project starts from building one feature at a time, the process iterates and incrementally it keeps adding more features until the system development get finished (Cobb, 2011).
On the contrary, an iterative system development approach breaks down the whole development task into smaller chunks of tasks, then it work on the smaller tasks in repeated cycles. So each iteration covers the cycles of design, development, testing. The process keeps going until the fully functional system is completed and ready to be deployed at the customer’s end (Landry, 2011).
So, any agile approach is iterative in nature, however, an iterative approach is not agile always (Landry, 2011). In the following sections of the report two agile approaches and two iterative approaches have been discussed before giving final recommendation for the development of the proposed customer relationship management system for AFD.
SCRUM is an agile system development framework that is particularly focused on software development. It requires a team of three to nine members who can take multiple roles during the system development process. The workload will be broken down into set of actions. There will be time boxed iterations having the actions. Time boxed iterations are known as sprints. Usually a sprint takes time between 14 days to 30 days. Instead of a project manager, there will be a SCRUM master (Stellman and Greene, 2014).
Agile development methodologies
For AFD, the advantages of using SCRUM are,
- It is cost-effective and utilizes time effectively.
- Sprints help to make manageable workload.
- SCRUM meeting and developmental reviews helps to track the progress of the project and monitor it closely.
The disadvantages of SCRUM for AFD are,
- There are risks of scope creep and project failure if the team is not co-operative and committed.
- It is suitable for small teams and needs some experienced members.
- Daily meetings are time consuming. If a team member leaves a project in the middle then that will have negative impact on the project.
- It is hard to implement quality control without performing aggressive testing.
XP or Extreme Programming is another kind of agile approach used for software development project. This is mostly suited for the projects where the software requirements are not clear and change dynamically during the system development process (Stellman and Greene, 2014).
The advantages of XP for AFD are,
- It focuses on quality.
- It requires co-located and small team.
- It allows functional and automated testing process.
- It is cost-effective and takes lesser time to deliver the end product.
- Simplicity and constant feedback
The disadvantages of XP for AFD are,
- It is not suitable for developing mission critical system, concurrent middleware or OS kernels.
- Does not offer any measurement of the software quality.
Unlike agile methods, an iterative model needs full specifications of the software requirements at the beginning of the project. It breaks down the whole task into smaller chunks and iteratively build the software as different modules. Then it integrates and tests the whole system (Landry, 2011).
The advantages of the iterative model for the AFD project are,
- During the early phase of the system development life cycle, it may develop prototypes of the solution. It helps to find issues early. Thus is saves resources and cost.
- More focus in given on the actual development process rather than on documenting as in other traditional SDLC approaches.
- It allows implementation of changes in the requirement during the development process if that is possible.
- The testing process is rigorous and helps to identify issues and risks early.
- With every iteration, it delivers some operational product.
- It collects feedbacks from the reviews of iterations.
The disadvantages of the iterative model for the AFD project are,
- It takes more time and consumes more resources.
- Successive iterations have no overlap.
- It requires intensive project management.
- It requires highly skilled professional for risk analysis and management.
DSDM or Dynamic Systems Development Method is another agile system development approach. It is also mostly used for developing software. It follows some RAD or Rapid Application Development approach. It offers strong project governance foundation and that makes it different than other types of agile approaches. It also strongly focuses on the basic principles of agile manifesto, continuous communication with the end users or customers (Crowder and Friess, 2013).
The advantages of using DSDM for the AFD project are,
- It offers fixed time, cost estimation.
- It also focuses on quality control and management.
- It uses MoSCoW prioritization method for scope management.
- It can be used with other agile approaches like XP.
The disadvantages of using DSDM for the AFD project are,
- It requires high level of involvement of the end users.
- It requires highly skilled team members.
- It requires more documentation.
Now, considering all aspects of the information system development project of the AFD, it is recommended for them to follow some agile development methodology. AFD is not any IT consultancy. So, they will require either to outsource the software development project or to hire consultants independently. It will be a good step to outsource the project to some third party who has expertise in agile software development projects and have handled similar projects in past.
The recommended agile approach for AFD is XP or Extreme Programming. It suits the requirements of the information system of AFD. It gives more value to the adaptiveness during the development process rather than the traditional predictive approach. As there is no significant use of information system in the current customer relationship management process being followed in the AFD, it will be difficult for them to define all requirement early. An agile approach will help them to make changes during the development process. It will also help to understand how the information system is being developed aligns with the requirements and the current business process. As, the employees have already become concerned and worried about the changes in the business process due the implementation of the proposed information system, so the end user involvement offered by the agile approach will help to clear the clutter among the employees. It will also help them to adapt the system and the changes faster and that will help to improve their productivity level.
Iterative system development approach
UCD or User-Centered Design is basically an iterative approach towards designing a system. Designers take the stand of the users and focus on their needs during the system design process. It needs constant user involvement and review to make the interfaces and the system more usable to end users. Various kind of techniques such as generative and investigative techniques are followed during the system design process. On the other hand, HCI or Human Computer Interaction is about understanding the interactions between a computing system and the end users. The interactions must be fluid, hassle-free, and accessible to the end users. HCI determines the usability and user experience of an interface (Seffah et al., 2006).
The proposed CRM will be accessed by end users like the customers, sales representatives, wedding representatives, purchase office, customer relationship management, the owner and other staffs of the organization. They will access the system from different types of devices, and will use different set of functionalities and features. So, the UCD principles will help to build the system in such a way that it will be focused on the requirements of the end users and end users will be more comfortable in using the system (Deuff and Cosquer, 2013).
There are six key principles of UCI must be followed for the UCD-informed HCI for the CRM application, those are (Deuff and Cosquer, 2013),
- Setting business goals by defining the targeted market, targeted end users and the competitors.
- Understanding the end users is the key element part of CRM development project.
- While designing the system, HCI must be given high priority. The system must deliver total customer experience.
- Designs must be evaluated based on user feedbacks.
- The competitiveness of the designs must be evaluated.
- As user feedbacks are an important and integral part of the whole process, so those must be managed for decision making.
It is recommended to conduct survey, brainstorming etc. to understand the requirements of the end users of the proposed information system. The system development process must be based on the UCD and HCI. That will help to develop a user-centric information system.
For further information feel free to contact us.
The event table for the proposed customer relationship management system for the AFD is, given below.
Event |
Event Type |
Trigger |
Source |
Activity/Use Case |
System Response/Output |
Destination |
A customer registers for an account with AFD. |
External |
Customer submits a registration form online. |
Customer |
Register Account |
System generates an acknowledgement of receiving the registration form. Then it forwards the form to administration for further review. |
System |
Customer places an order to a sales representative. |
External |
Sales representative adds an order to the system taken from a customer. |
Sales representative |
Take Order |
Acknowledges the order and forwards it to order processing unit. |
System |
A sales representative visits a customer and marks a visit irrespective of any sales activity. |
External |
Sales representative marks a visit to a customer. |
Sales representative |
Mark Visit |
System records the data. |
System |
Customer makes a payment against the fulfillment of an order. A sales representative receives the payment from a customer. |
External |
Sales representative receives a payment, updates the details and generates a receipt for the customer. |
Customer |
Receive Payment |
Generates receipt for a successful payment. |
System (Accounting system) |
A sales representative is assigned to an area. |
Internal |
Sales representative receives notification about the assignment of an area to him/her. |
System |
Get Area |
System sends notification |
Sales representative |
A customer or a sales representative or a wedding representative can track an order by order ID. |
External |
An order tracking request is placed |
Customer/ sales representative/ Wedding representative |
Track order |
System shows the current status of the given order ID. |
System |
A wedding representative places an order on behalf of a private customer (no details of customer is recorded in the system) |
External |
An order is placed for a wedding dress. |
Wedding representative |
Place order |
System generates a confirmation for the order and send the order details to order processing unit. |
System |
A wedding representative updates the sales record. |
Internal |
Wedding representative updates sales records. |
Wedding representative |
Add sales details |
System records the details. |
System |
Customer manager wants a sales report |
Internal |
Customer manager ask the system to generate a report under some given constraints. |
System |
Generate sales report |
Report is generated |
Customer manager |
Purchase manager wants to generate a stock report |
Internal |
Customer manager ask the system to generate a stock report under some given constraints. |
System |
Generate stock reports |
Report is generated |
Purchase manager |
Administrative representative wants to generate a report. |
Internal |
Administrative manager asks the system to generate report. |
System |
Generate reports |
Report is generated |
Administrative representative |
The domain model class diagram is,
The design class diagram is,
The use case diagram for the proposed customer relationship management system for the AFD is,
Use Case Name |
Take Order |
Main Flow of Events |
1. A customer (Retail) places an order to a sales representative. 2. Sales representative updates the order details. 3. Sales representative updates the discount details. 4. System checks the stocks to ensure whether the order can be served or not. 5. System records all order details. 6. System generates an acknowledgment of the order. 7. System forwards the order details to order processing unit. 8. Sales representative prints the order confirmation details and gives to the customer. |
Alternative Flow of Events |
If an order cannot be processed on step 4, then the system will show out of stock notice and ask the sales representative to call the order processing unit directly. |
References
COBB, C. G. 2011. Making Sense of Agile Project Management: Balancing Control and Agility, Wiley.
CROWDER, J. A. & FRIESS, S. 2013. Systems Engineering Agile Design Methodologies, Springer New York.
DEUFF, D. & COSQUER, M. 2013. User-Centered Agile Method, Wiley.
LANDRY, N. 2011. Iterative and Agile Implementation Methodologies in Business Intelligence Software Development, Lulu.com.
SEFFAH, A., GULLIKSEN, J. & DESMARAIS, M. C. 2006. Human-Centered Software Engineering – Integrating Usability in the Software Development Lifecycle, Springer Netherlands.
STELLMAN, A. & GREENE, J. 2014. Learning Agile: Understanding Scrum, XP, Lean, and Kanban, O’Reilly Media.