Proven Results with Agile Development and
Outsourcing
It is well documented that software development projects often don’t deliver on time, or within budget or with the agreed functionality when they started.
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Why it is so difficult?
- It is hard to understand user needs and transform them to the working software product
- Rapidly changing business environment changes the software requirements, thus making the process even harder
- Language of the user (stakeholders) might be difficult to grasp, or the accessibility of users is not good enough and communication suffers
- This leads to poorly documented or missing and inaccurate requirements.
- Thus it is hard to report to project stockholders, if the requirements are met, if the project really delivers the required benefits.
What is the solution?
Agile process (agile software development) or other similar techniques (FDD – Feature Driven Development, or XP eXtreme Programming) address these issues from the beginning. They were designed to do just that.
That is why we adopted them. The great value of agile project management is especially visible in challenging distributed software development environment, which is used in software outsourcing or software nearshoring.
Agile process and agile software development values:
- Individuals and interactions thus helping stakeholders, users and solution teams communicate better and supporting effective methods of communication within the development team
- Working software thus delivering the required outcome (which is the primary measure of success), that helps stakeholders to grow their business
- Customer collaboration thus uniting business people and developers throughout the project and delivering customer satisfaction
- Responding to change thus welcoming, preparing and planning for the changing requirements to customer’s competitive advantage
Agile software development is no longer immature or lacking deeper understanding of the software processes. In fact, it has evolved from previous models and was built on their strengths. It is used in big real-life projects.
Agile planning and agile programming shows that responding to change is more valuable than following a plan. Of course we plan. Plan is a required part of any project. However, blindly following a plan without being able to adapt and respond to change is a pattern for failure.
Agile process is not about lack of documentation. Good documentation is required part of any successful project. However, producing documentation without producing any working software is not the goal of any software project.
All the work in a project is expressed in client-valued terms. This way tracking and reporting progress to the stakeholders makes it much easier. It also helps communicate all changes and it better focuses the project team using domain language (as opposed to the technology language).
So is this the only and the best solution?
Of course not… But it is well suited to solve most of the problems building complex software systems in outsourcing and nearshoring environments.