Welcome to the first article from our FutureTalk series. FutureTalk features articles written in cooperation with top experts in the field on a wide range of topics in the area of software development.
In the following article, we focus on the topic of agile development and its future. Together with Tomasz Liberski, Service Delivery Director at Espeo Software, we go through the evolution of agile and we share valuable predictions about its future. Continue reading to learn more.
What is agile? A few words about Agile Manifesto
The Agile methodology was initially outlined for software development. It emerged from the concept of Lean and was defined by seventeen software developers in the Agile Manifesto in 2001. The Manifesto, created as a result of a discussion about the future of software development during a Snowbird summit, is based on twelve principles, which can be found here.
Benefits of an agile development
Some of the advantages of agile approach include:
- Continuous improvement
- Disciplined execution
- Iterative feedback
- Stakeholder involvement
- Increased transparency
- Efficient communication with proactive team engagement
An expert’s view of the fundamentals of agile
The Agile philosophy revolves around the fact that every team member works closely together and the Product Owner bridges the gap between the business world and the technical world. Clients and software houses used to communicate and work together under strict terms in the past as the processes weren’t flexible and the cooperation was constrained with contracts. This started to change after companies started following the agile philosophy. Agile requires a great deal of education on both sides as it consists of a number of decisions which decrease the amount of redundant work that has to be done. With an agile approach, the development team is an integral part of the business – they understand why they are working on something and they have a feeling of a common goal. As a consequence, the team is more engaged and has a bigger impact on the project’s shape and success.
Time and time again companies have trusted us as a software development provider. Read more about some of our projects and find out why.
Agile means that every team member needs to take part in the decision making on a daily basis as well as take the responsibility of it. Moreover, it allows for the free exchange of ideas – every member of a team can contribute ideas and impact the development of a project. Some say that developers are not keen on working in agile. There is the idea of becoming a T-shaped profile (a general experience in all areas) so that everyone can exchange ideas and share their knowledge. Many developers, however, are opposed to this approach and instead prefer to specialize in one particular field.
The evolution of agile
When Espeo was established in 2008, it was among the first software houses to emphasize agile development. At that time, the agile approach was notably preferred both by software houses and the clients – offering agile development was one of the factors taken under consideration before starting a cooperation. Today, however, the phrase “agile” has in some ways lost its value – it is often overused, so people view it with skepticism. Nevertheless, if you consider Agile manifesto as a collection of rules and beliefs rather than a methodology per se, it still forms a valuable core for managing software houses and projects.
With 14 years on the market, we have gained valuable expertise in various areas. Read more about what we excel at.
Over the course of time, we have noticed that companies have departed from the core of the agile manifesto – its principles and beliefs have eroded. Instead, organizations have adopted specific practices that are not indicative of agile but are believed as such (e.g. a daily stand ups). Conventions such as daily stand ups aren’t at the heart of agile – they have not been stated in the Agile Manifesto. They are, however, good practices and are commonly used in many companies. The downside of this is that people have come to associate agile with such practices, and the agile values have lost their importance. The foundation of agile development consists of a variety of values. Agile practices are a totally different thing – they address the same values but are different for every organization. Companies that implement agile values can freely adjust their practices according to the inspect and adapt rule and e.g. have a sit down and not a stand up.
It has been argued that agile values are outdated, although I believe that the original agile principles included in the manifesto are still relevant and adequate. This doesn’t mean that certain agile principles haven’t been tested over time. For instance, in the pandemic times, the rule about face-to-face communication may no longer hold much significance. Moreover, it is arguable if the communication using different online platforms is less effective than face-to-face communication. In an international setting, for instance, online communication makes it easier to communicate regularly between technical and business professionals on a daily basis. Martin Fowler has once written that most groups are more productive working in a co-located manner. I believe that a well-assembled team that works remotely can outperform a co-located team composed of inaccurately chosen members. The same applies to teams with members located in different time zones. If synchronous communication is maintained, the project has high chances of succeeding. It is the asynchronous communication that slows down the processes in complex teams.
What the future holds for agile development? Tomasz Liberski shares his predictions
There are a couple of predictions for the future when it comes to agile. Firstly, a certain power struggle can be observed. Employees demonstrate that remote work can be just as effective as working on-site. On the other hand, many companies indicate that on-site work is better. It is therefore likely that agile principles will continue to adapt to the remote reality of managing projects. Secondly, globalization will continue to have an impact on software development processes. This means that agile principles will play a big role in the management of software projects across borders and the implementation of global strategic management processes of many companies across the world. In terms of agile (putting remoteness aside), there are voices arguing that it is the right approach at early stages of product development (e.g. MVP). Nevertheless, to ensure the success of the product later in the lifecycle, a focus on high-quality processes and continuity is crucial. This is where the topic of DevOps comes in. It can be viewed both as an evolution of agile and its complement. The last prediction for the future of agile is that the term itself will undergo a certain type of rebranding. As mentioned earlier, this term has become a buzzword in a way. In order to promote its beneficial values, it might get modified to better suit the current industry climate. What is for sure is that agile is a useful and still timely philosophy, and its rules (when correctly applied) benefit the organizations.