Building software can be tantamount to creating a work of art; it requires ample craftsmanship to complete a master piece. When you think you are done, there is always something you feel you have missed.
Due to the continuous customer requirements and changes that pop up during the software development process, it is essential that software becomes malleable and logically incomplete. To deal with these increasing demand and changes you will have to adapt the right development methodology.
In this post I provide a gentle insight into Agile Software development methodology.
So what really is Agile Software methodology?
In building a software products, there are various models that can be adopted. Such as : Waterfall,Spiral, Rapid Application Development and Agile
Agile is a software development method which is based on iterative and incremental development, where requirements and solutions evolve through a collaboration of cross-functional teams.
The key in the Agile technique is compressing the five sequences of the conventional software development phases ( Requirement Analysis, Software Design , Implementation and Integration, Testing /Validation , Deployment and Maintenance)- to short and iterative cycle.
It manages to do this by developing a system through repeated cycles (iterative) and in smaller portions (incremental), allowing developers to test and review during development. Speed, lower cost and flexibility are key benefits in Agile
What Are The Key Principles?
- Customer requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
- Welcome changing requirements, even late in development
- Working software is the principal measure of progress
- Close, daily cooperation between business people and developers
- Continuous attention to technical excellence and good design
- Simplicity is essential
Does Agile Have Certain Characteristics?
Let’s take a look at some few xtics of an Agile development methodology
- Break tasks into small increments with minimal planning and do not directly involve long-term planning
- Each iteration involves a cross functional team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing.
- At the end of the iteration a working product is demonstrated to stakeholders.
- Multiple iterations might be required to release a product or new features.
- A common characteristic of agile development are daily status meetings. Team members report to each other what they did the previous day, what they intend to do today, and what their roadblocks are.
Are There Different Types?
Yes,there are so many variation of agile software development methodology. You can think of agile as an umbrella term that encompasses other processes such as:
- Extreme Programming
- Lean Development
- Feature Driven Development (FDD)
- Adaptive Software Development
Well, does it for now, just a brief intro. In my next post I focus on Scrum. As usually feel free to drop your comments, feedback or suggestions.