A lot of people, organizations, and teams start doing agile development for the wrong reasons. They do it because it’s the “new” thing, or because they want to deliver software faster, or because they think it will just solve all of their problems. This is what happens when agile fails and gets a bad rap. What they should do, is think about what their real problems are, and then see if agile software development is a good solution, and why it is a good solution. The things people don’t think about when they look to agile software development as a solution are the core values of agile. From the agile manifesto, the values are based on “trust and respect for each other and promoting organizational models based on people, collaboration, and building the types of organizational communities in which we would want to work.” Let’s take a look at the values…
Individuals and Interactions over Processes and Tools
The knowledge to build the right product is contained within individuals, and so it is important to focus on the right interactions amongst the members of a development team in order to effectively disperse the correct information. The means by which team members interact (the processes and tools) are far less valuable than the interactions between team members themselves.
Working Software over Comprehensive Documentation
The more information contained in a document, the less likely it is that the document will be read in its entirety. The real value to a customer is actual working product, not pages of requirements or design documentation. In order to have working software (and to deliver it frequently), there needs to be a special attention paid to technical excellence. Working software cannot be continuously delivered without a high level of quality.
Customer Collaboration over Contract Negotiation
Negotiating over contracts can often lead to the “blame game” in a project, where developers and customers blame each other for not having properly defined requirements. In agile software development we prefer constant collaboration with customers over contract negotiation. The agile movement recognizes that written documents don’t convey intent well, and thus substitute collaborative development for written documents. If you want to know what someone wants, what better way to find out than to just ask them?
Responding to Change over Following a Plan
Depending on the market, the needs of a business can change very rapidly. It doesn’t make sense to lock a product into a set of requirements or features months in advance of development. Customers don’t always know exactly what they want at the beginning of development. Big upfront requirements can become irrelevant in a long-lived project. These are just a few reasons why responding to changing requirements is valued over following a plan. The goal of agile software development is to satisfy the customer, and this is accomplished by adapting to the changing needs of a customer.
How do you know if agile is right for you?
First you need to figure out what problems you’re having, and not just the symptoms of your problems. Do some root cause analysis to find out what’s really holding you back. If the cause of your problems can be traced back to an over emphasis on the right side of the values (processes and tools, comprehensive documentation, etc.) then agile could be what you’re looking for.
We need to use these values to guide us in our decision to use agile software development. We also use the values in guiding our decisions to use certain practices to implement our development process. The values themselves are written at a high level, so we have a set of twelve principles from the agile manifesto that serve as a bridge between values and practices. Stay tuned for a look at agile principles, and how they reflect the values of agile software development…
- 2011
- 11/10
- CATEGORY
- agile values
- TAGS
- #agile
#agilesoftwaredevelopment
#agilevalues