Agile software development is all the rage these days as development firms and individuals race to turn out high-quality software on schedule and a lower cost. Some of the biggest names in the industry, including Austin-based iTexico, now employ agile concepts on projects of all sizes.
Would you believe it if someone told you that the principles of agile development are more than 40 years old? It’s true, which gives those of us in the mobile app development world good reason to pause. Agility is not just a development style; it is an all-encompassing concept that permeates every step of the development process. And as with any concept that runs as deep as agility, it is important not to forget the basic tenets.
In light of that, it’s important to ask how we got here. It is important to take a look at the roots of agility and how it has progressed over the decades. A thorough analysis can show us where we are still on track and where we have been sidetracked.
The Early Days of Agility
Agile software development, as a concept, traces its roots back to a 1970s paper written by William Royce. Back then it was called ‘adaptive software development’. Royce’s original ideas were expanded on in a 2001 document written by more than a dozen software developers who created the modern concepts of agility. Their Agile Manifesto set the stage for what would become a new standard in software development.
The Agile Manifesto established 12 principles that, if followed faithfully, would completely change the way software was developed. The principles were exceptionally customer-focused and included things such as welcoming changes, working closely with customers from concept to launch, and keeping things as simple as possible. The 12 principles were built on top of four core pillars relating to:
- individuals and interactions
- working software
- customer collaboration
- responding to change.
Agile Software Development Today
The agile concept remains mostly intact today in its basic principles. Yet over the last 16 years, we may have drifted somewhat from the main intent of agility: to streamline software development so as to produce high-quality software that satisfies customers while doing so on time and budget.
The agile model is based on running different parts of the development process concurrently rather than consecutively. Where the old waterfall model requires one team to wait for its turn on the project, agility has all the teams working simultaneously. But obsessing over teams has caused us to drift away from customer involvement. That’s not good.
The failure to pay enough attention to customer collaboration almost defeats the purpose of agility in that changes are not welcomed as quickly as they should be. By the time teams get around them, they are so far ahead that it takes a tremendous amount of effort to go back and implement the changes. This slows the development cycle and increases the budget.
Agile Still an Excellent Model
Software developers at iTexico.com testify to the agile model still being a very good model for software development. They use it on a regular basis. They promote agility among their nearshore teams based in Mexico, too. Yet they acknowledge that making agile software development work as intended means never losing sight of customer collaboration.
William Royce and the software developers behind the Agile Manifesto would agree that the customer-centric focus of agile software development can never be lost if the model is to continue being successful. It’s hard to argue with that. Those of us in mobile development should keep that in mind moving forward.