If you have anything to do with IT or even any of the IT-adjacent industries, you have probably heard about agile. In fact, you have probably had your ears burning from the millions (it definitely feels like millions) of various experts turning “Agile” into one of the buzzwords of the 21st century so far.
But, what exactly is Agile?
Can you put it to good use in your company?
Will your company thrive because you adopted Agile?
The Definition and the History
Agile is actually the short form of Agile Software Development. This is a novel approach to developing software which has been developed over the years as a way of modifying project management so as to make it more suitable for the very idiosyncratic field of developing software.
Agile software development is characterized by a number of traits. For one, it rests on the collaboration of more teams of developers. It also entails and incremental and continuous development of a piece of software. As a result of this, agile is also more adaptive and ready to conform to the new realities that have appeared due to the very process of software development.
The idea of incremental software development dates back to the 1950s and IBM’s Service Bureau Corporation. In the 1970s, some developer teams promoted adaptive software development and evolutionary project management. The 1990s saw a number of lightweight software developments method come to life, such as rapid application development, unified process, dynamic systems development method, Scrum, Crystal Clear, extreme programming and feature-driven development.
Once the Agile Manifesto was published in 2001, all of the previous lightweight software development practices became agile methods.
The Manifesto for Agile Software Development
In 2001, a group of 17 software developers met in Utah where they discussed various lightweight software development methods and after the meetings, they published the Manifesto for Agile Software Development. The Agile Manifesto was based on 12 principles which promoted an ever-changing set of requirements, increased communication with customers, incremental and sustainable development, self-organization of teams and more.
There is more about the Agile Manifesto, of course, as well as about the whole Agile Alliance and other movements and organizations that branched out of it, but that is probably a story for some other occasion.
There are a number of reasons as to why agile will work far better than traditional development methods and project management methods for the majority of software developers.
For one, it brings everything out to light as early on as possible. As soon as the developers start working on a project and start the initial work, they can identify a number of problems that accompany any software development process, as well as a few directions in which they will go.
Thanks to the fact that actual software is being realized from the earliest stages, it makes it easier to make decisions that will be based in the realities of the development process and not just a theory of it before actual development begins.
Agile also allows developers to have better communication with their customers who will get better insights into the product they are getting because they can see it, in all its rough glory early on. This is where special requirements can be ironed out before it is too late.
With agile software development, risks are also minimized as there is no huge release date when months of work are finally evaluated and where humongous oversights and mistakes are revealed, making the past months a complete waste.
How To Implement
By now, you are probably already convinced that agile is the way for your company to go, but be warned, it is not a magic wand that makes everything perfect. It requires hard work and serious collaboration. It also requires fantastic management skills because it changes the entire project management paradigm.
Before anything else, you as a business owner will need to understand how agile works and how to best implement its tenets into your day-to-day operation. There are a couple of Quora threads where you can find out some great sources on agile – here and here. Of course, your employees will also need to be “trained” in agile, or at least familiar with the basic principles. This may require some time, but since agile is much more forgiving for individual coders, they will probably welcome this.
You will also need to start implementing certain software solutions that will help you organize your newly-agile company. For example, you will need a source control tool like Git and a continuous integration tool like Jenkins. Of course, when it comes to these, there are always alternatives that might work better for you. When it comes to project management tools, the best choice would be Active Collab, a tool that has been used by agile teams from Intel, Adobe and even NASA, just to name a few. Since agile is a complete different beast management-wise, do not be surprised if Active Collab becomes your new best friend.
Instead of a Closing Word
Perhaps the most important thing to remember about agile is that it will never be perfect. This was never its purpose. It is a versatile and (well) agile solution for projects that require versatility and agility.
Stick with it. You will only get better at it.