Agile, what is really is?
When I first heard about agile it was simple for me, it’s an iterative software development process, where we try to pay attention to technical practices, and sometimes listen more bottom line workers. Then it become more and more complicated and self – contradicting, Agile become about; technical excellence (not just technical practices), creating business value not just products, creating UX (or more precisely client experience) not just products, about culture, about work climate, about empowerment, about coaching everyone by everyone, about freedom, leadership, venerability, about sharing knowledge and learning, about process, about tools, about high performing teams, about servant leadership, about #nomanagement, about #noestimates, about contracts.
So today I will try to write what really is agile (for me, as there may be many different definitions as you can see above).
I will start describing agile from perspective of a problem that it is solving, and the problem is that some time ago (What is interesting to note, with every year percentage of people that remember that days decreases) technological changes couldn’t keep up with business changes. As most software developers are very intelligent persons, they figure out that it’s not an inherit technology problem, but it’s an effect of way that we used to organize IT projects (which was very similar how we organize to engineering projects). We used to organize it in this way because we used to think that software development was similar to classic engineering. I believe it’s the reason why we are naming our discipline “software engineering” and not maybe “software craft”. Well as it turns out, engineering metaphor for software project wasn’t helping. One much better is learning, or emerging.
So first of all Agile is a way of organizing IT projects that enable technology to keep up with rapid business changes.
But this doesn’t exhaust question what agile really is. To dive deep into it, we need to recall agile manifesto, and it states that:
people and relationships are more important than process
working software is more important than documentation
Collaboration with customers is more important than contracts
Responding to change and being “agile” in our stance is more important than following previously created plan
The most important principle is the first one: people over process. And it’s interesting how people perception of this principle evolved in time. I firmly believe that what agile manifesto creators had in mind was that, the way in we organize work (this meant how PM organized project for busy bees, the Devs, QA’s, BA’s) cannot harm productivity. Also is meant that we should let work get done, even if it’s not precise up to our (frequently heavy) process.
Right now many credible people (Tobias Mayer, Olaf Lewitz, Michael Sahota) are telling us that the all way in which we organize our work (offices, companies, lines of communication, relationship in work, management instead of leadership) is deeply dysfunctional. Today’s workplaces are a placed where people can’t feel safe, cannot really trust each other, build relationships, receive respect, feel meaning and contribution to greater purpose and frequently are not treated as adults. But as with Software development process in paragraph earlier it’s not inherit feature of how human work, its effect of the purposefull design.
So I would say that agile is also invitation to rethink how we approach a job, our colleagues, our tasks & responsibilities, company hierarchies and structures, a role of management. Agile is invitation to design deeply different and better work culture, using one of many available tools.
The Second important principle for me is about technical excellence and enabling technical people to feel at easy in work. It’s not sufficient to ORGANISE work in way that enables technical projects to keep up with business and it’s not sufficient to design healthy workplace, it’s essential to put technical excellence very high on our priority list when we thin about how we need to work. Without technical excellence, it isn’t possible to keep up with business needs, and also it isn’t possible for technical people to bring their whole creativity, intelligence, and skill to work.
So all in all agile is an invitation to rethinking all things related to work, elevate technical excellence in all ways possible, and embrace that Software development in primary a learning process and should be organised as such.