¿What does it mean to be agile?
If I had been asked a few months ago, I would have said that it means using an agile methodology, because it adds value to the final software product being built. But now, several months later (after acquiring a lot more maturity and expertise developing software), if I were asked the same, my answer would be completely different.
This time I would say that to “be agile” is to cultivate an agile culture, which adds value to the client business and our own as a whole. On this blog post I will try to justify such a bold statement.
The agile culture as competitive advantage
Let’s analyze every aspect of the agile culture to see how each part of it contributes to the final result.
Trust as a cornestone
A common aspect shared by every member of any agile social construct is the trust they have in each other (considering the whole organization, not limited to the closest working team) and the client.
This aspect is the fundamental basis of the agile culture. This kind of deep and honest trust is essential to fulfil some of the principles of the Agile Manifesto, in particular:
- Individuals and interactions over processes and tools,
- Customer collaboration over contract negotiation.
But let’s not deviate from the main point of view of this post. Instead allow me to analyze two perspectives from which the fulfillment of those principles would add value to the business.
Company's internal point of view
The advantage of a trust based team is the ability to innovate and a rapid response to change. For example, such teams allow the implementation of an horizontal and self-managed structure, featuring open accounting.
The results of this kind of organizations are employees deeply committed both, to their jobs and the company, and plenty satisfied with their duties. Management choices are widened because they are based on a variety of points brought to light by debates and exchange of opinions about the topics being discussed. Moreover, employees will try to stand out on their tasks and labors, as they feel identified with the company and its vision. Thus, an employee with such characteristics and profile tends to be much more efficient.
People are people, not just human resources, therefore, they are important by definition.
Client's point of view
The relation between the agile enterprise and the client should be characterized by a high level of trust. Having the same level of commitment on both sides makes the project life cycle shorter and more productive, and the participation of a client who can trust in the opinion of a technical expert results in a high quality product. Moreover, incremental iterations actually add up to what the client has in mind for his product, and not what the technical expert thinks of it. Avoiding unnecessary negotiations and useless and obsolete bureaucracy definitely pays back. The reward is an homogeneous team where the crew feels like a cog part of the client’s enterprise, understanding the client’s success as their own.
Technical excellence and proactivity
Committed employees, who feel they have a role on both the enterprise’s and client’s success, grow a sense of self-improvement on their daily tasks. This encourages them to learn new concepts, tools and technologies in order to have a wider selection of options and resources at the time of building a software solution. Thus, the employees will end up being highly qualified, and with a lot more resources to choose the most fittable alternative for every client.
The inherent productivity of an agile person produces iterative improvements on the developed software. By following the common saying “Make it work is not enough” the team reaches goals with a really low level of technical debt. This leads to less maintenance costs, and products more likely to be extended with new features, which, in turn, means less hours of programming to create new features.
Use of agile methodologies
Cultivating an agile culture entails using agile ways of work. That being said, there is no use on trying to create such culture using non agile methodologies. This is a practice that is bound to end up in frustration.
It’s fundamental to provide an environment that promotes creativity and free will for the members of the agile team, which is not found in bureaucratic and inflexible ways of work.
On agile, providing employees with fast and broad internet access or a cutting edge laptop is not enough, and it’s certainly not what we meant by “the resources to fulfill their job”. What is really important and essential is providing and adequate methodology and stick to it through the entire process.
In the end, a methodology is just a tool (and should be used like it), but we can’t dig a hole (at least not easily) with a handsaw.
Agile culture is based on interpersonal relationships. Thus, it is essential to hire people that fit that aspect.
This means the candidates should feel and think the same as the rest of the team about agile culture. They should be able to give and receive feedback in a proper way, having in mind that the goal is to build something together. They must understand that the spirit relies on collaborating with, not on competing against, fellow team members.
In addition, agile culture demands evolution over time. So people should be willing to be flexible and eager to learn constantly.
Everyone should feel and be as important as the others, and act accordingly.
That’s why it’s essential to provide room for failure, learning, and, most importantly, growth.
These are only a few of the many aspects that define agile culture, and some key reasons of why growing this kind of culture leads to competitive advantage.
It’s not that easy, though. Cultivating an agile culture demands patience, effort and commitment. But the results of that work are enterprises where employees, employers and clients equally win, and that’s easy to see. My only intention is to share it with the world.