“Perfection is a fallacy that leads to over planning, procrastination, and failure to ship; agile is about focusing on delivering the best things in given period of time!”
Yup, it’s the bitter truth in most of the aspects of the world and more importantly practised in Software development region.
Though I am not taking any credit away from the best organisations in the fields that are creating magnificent stuff for their clients; but the real question is?
Are those practices or methodologies are synchronised with the ever changing demands of clients?
In simpler words, are they Agile enough to deliver in the quicker time?
To better understand the issue of the agility quotient of any software development vendor let’s hear an anecdote of one of my best friends:
He was a guy from the non-technical background and had a degree in commerce. Post college, he got a job in Japan where he gained some experience in start ups. After coming back to India, he was enthusiastic about his own start-up idea.
So what did he do?
He quickly consulted to a Software development vendor and contracted them to make a messenger app to beat the reigning- the Whatsapp. As usual, that respective firm came with its own terms; one year to deliver the package with no changes in between.
Now after one year, as per the deal, he got his software but here comes the main issue; the motive behind the whole development fails:
The plan was to surpass the Whatsapp but till the time he got his software- Whatsapp was equipped with many more new features which his app doesn’t have.
Moral of the story- the lack of agility in software development process can ruin the biggest of the ideas.
Remember the most important term in your software engineering class?
Yes, the Software Development Life Cycle (SDLC) and its methodology- The Waterfall Model. And I am sure; every IT major guy would’ve remembered those steps by heart:
By no means, I am degrading this model but the biggest drawback with this methodology is- you can’t get back to the previous step once the same has been executed.
Let’s say you are a software development firm working on a project and the coding phase has been over. While you are into the testing period, your client comes and says:
Hey, team! I want to add this and this feature into my software. Will you be able to do that?
The answer is in negative and in most cases; you will probably show the contract of requirements for your client, lessening him and manifesting- no demand of changes in between.
Don’t you think, it’s too harsh to those clients who are investing their hard earned money into your firms for their dream project?
Indeed it is! This problem of “Application Development Crisis” or “Application Delivery Lag” has sometimes cost into shutting down the whole project- halfway or producing obsolete products.
The frustration first noticed at?
“Sometimes frustration can lead to miracles!”
Yes, this irritation and unconsciousness were first noticed by an aerospace engineer by the name of Jon Kern. The increased lead times and decisions not getting changed later made him more frustrated.
This frustration led him to make meetings with other thought leaders who felt the same urge of a better process of software development than cumbersome documentation prior waterfall.
Later, in the year 2000, these like-minded experts meet at Rogue River Lodge in Oregon but the famous one was at early 2001- the Snowbird at Utah:
That meeting witnessed the group including Kern, extreme Programming legends Kent Beck and Ward Cunningham, Arie van Bennekum, Alistair Cockburn, and 12 others, now famous in the “Agile Community”.
The Concept of Agile:
“A win-win approach is the best practice!”
The core of “Agile” concept is to make working software in a shorter period of time and then deliver it to the end users who can get the benefits of first-in-business.
And at the same time, developers can receive the valuable feedbacks for the direction and scope of the software. (Isn’t it’s a WIN-WIN approach!)
Is it so easy?
Negative, no this kind of highly robust philosophy is not easy to implement and requires an end-to-end proofing of activities. To make sure the same; Agile community came up with some solid values:
- Individuals and Interactions over processes and tools: – The foremost importance goes to individuals who develop software using processes and tools. This value brings customer needs on priority by “communication-on-instinct” as opposed to scheduled.
- Working Software over Comprehensive documentation: – The key to quick delivery relies upon less documentation for every minute requirements, techniques or approvals. Agile philosophy doesn’t discard the importance of documentation rather inline it in a form that directs developers to understand- what is most important.
- Customer Collaboration over Contract Negotiation: – Including client in making the process rather than just briefing them before and delivering post development is what we call- Customer Delight. The collaboration can vary from specific intervals to even daily meetings.
- Responding to Change over Following a Plan: – Traditionally, developers are resistant to change and treat it as an expense. In a nutshell, phases of development were not responsive to external changes. On the contrary, Agile works on iterations which easily shift the priorities. The shorter are the iterations, the more our chances of making changes or adding features in software.
In this section, we have seen how the higher lead times in software-making may result in heavy losses or products getting obsolete and the potential of “Agile philosophy” to cater these issues. We’ve also witnessed the values on to which the Agile concept revolves and how they are smart answers to the barriers of software development. In the next section, we will be seeing the 12 principles or pillars of Agile concept, till then keep sharing this blog and never forget to subscribe our newsletters.