One of the most difficult principles of Agile Software Development to actually implement is the principle of welcoming change. Two of the statements of values in the Agile manifesto are:
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Both of these statements lead to the idea that Agile Software Development welcomes changes from customers and other stakeholders in the project. The Software Development team aims to gather feedback by developing frequent releases through developing the software in a series of iterations. A customer, changing their minds concerning the requirements of a project, isn’t viewed as a problem, which can be in sharp contrast to how a lot of methodologies approach the topic of requirements changing. This incorporation of feedback and customer involvement is an important contribution to the success of Agile methodologies as it leads to the development of software that customers really want. Following this principle is no easy task because the application of this principle needs to start at the very beginning of a project. Guides to implementing Agile Software Development frequently mention the role of the executive sponsor, and other business oriented roles within a company which need to buy-in and support an initiative to introduce Agile Software Development. But in a Software Development company that develops bespoke software directly for customers, the business people in the company need to understand and stick to the principles of Agile Software Development likewise.
There may be support for Agile Software Development in a project of all members but the general perception amongst the business people is that it is one area which the developers do, and does not directly concern them. As much of the material available on Agile Software Development does specifically concern Software Development teams, that is quite an understandable assumption to make. In a company developing bespoke software, the client needs to be made aware of the nature of an Agile Software Development project, and a contract needs to be negotiated that is compatible with the chosen methodology. And it’s the business people who are associated with a project that usually hold the responsibility of setting the customer’s expectations for a project and negotiating the contract.
Customers not really acquainted with Software Development expect that when negotiating a new project with a Software Development company that the process is quite like purchasing almost every other goods and services. The client explains what they need, they agree a price together with a delivery date, and the customer then waits for it to be achieved. The Software Development company will shareit for pc not want to challenge these expectations for the fear of making a customer uncomfortable, and potentially losing their business. This often leads to a binding agreement that mirrors these expectations. The customer continues to expect that the software, by the release date, is going to be ready and do everything the customer wants, and they only need to wait.
However it is inevitable that the customer will need to provide feedback on the software and will be very keen to make some changes. In the above scenario the client is going to find themselves giving their feedback at a time towards the release date when they actually get to see the software.
These changes are unlikely to be very welcome to the Software Development company at this point. In practice these requests for changes results in friction between the customer and the Software Development company, possibly bringing about arguments between the company and the customer. The company will believe that these requirements wasn’t specified originally when the contract was signed and demand additional cash to implement these changes. If the customer agrees, a new contract will need to be negotiated. On the other hand the company may agree to do these changes for free given that the customer is without a doubt quite upset that the software does not do what the customer wants. The more often these changes are handled for free; the company gets closer to generating a loss on the project. In both of these scenarios, the project is sure to be late.
If the development team itself is trying to be Agile and is developing the project in iterations, the case is often improved through getting feedback from the customer earlier on in the project. But if the contract remains to be the same, these changes will still be unwelcome to the business people associated with the project. They will be seen as an extra expense and the developers are going to be instructed to extend the time on making these changes until a new or revised contract can be negotiated. Once the business people perceive that changes will be happening between iterations and that this needs addressing, they should recognise that a new approach will probably be required in future for making new contracts with customers. An effective option that they might choose is to try to break down the ‘development’ of the project into separate, ready planned phases and then make this the substance of the contract. This approach doesn’t challenge the customer’s expectations of being certain of the outcome of a project, and so it appears like a safe option. At the start of a project, a customer is frequently quite positive that they know what they aspire to. In practice, actually seeing and using the software might most likely make the customer consider the project in a whole lot more depth than they had previously