Every IT project is often faced with many uncertainties relating to user needs (formulated needs vs. real needs), technology used, the capabilities of the team… Many project managers are trying to eliminate these uncertainties at the beginning of the project by creating a complete specification that sets precisely the functional scope and by planning upfront the entire project.
Unfortunately this approach (called “plan-driven”) does not fit well the increasing complexity of IT projects, inevitable changes that do occur throughout the project and the pressure to minimize delivery time.
The agile software development methods (Scrum, eXtreme Programming) propose another approach to manage complexity and uncertainty, an approach that consists in setting up a short feedback loop between the client and the development team in order to validate frequently the work done and to adapt to changing client’s needs and priorities.
The values of agility
Agility is primarily a state of mind based on the welcoming and adaptation to change, trust in people (main success factor of projects) and continuous improvement.
The main values of agility are summarized in the “Agile Manifesto“:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The promises of agility
The experience of thousands of teams and projects has demonstrated that an agile software development approach allows:
- Starting a project without a complete detailed requirements specification and quickly delivering a working product as well as regular subsequent versions
- Delivering a product that eventually meets the users’ expectations
- Guaranteeing a high quality level
- Achieving greater productivity and lower costs
- Obtaining stronger team involvement, greater motivation and team satisfaction
What characterizes an agile project
The conviction of Agile Partner (confirmed by our experience) is that the successful implementation of agile software development is based on two pillars:
- Management: the management of the team, of the customer relationship, of requirements, the planning and progress monitoring
- Engineering: techniques and practices for programming, testing, integration and deployment
Agile Partner team has adopted agile methods for delivering its own projects and can help you harness the benefits of agile.
For more information, contact us!