After spending two days on the Agile Testing Days in Berlin and being completely overwhelmed with definitions and understanding of what is and what is not agile, as well as of how agile process should or should not work, I decided to check in the dictionary how other people (not only Software developers and testers) define it.
What I found is:
ag·ile (adj.)*
1. Characterized by quickness, lightness, and ease of movement; nimble.
2. Mentally quick or alert: an agile mind.
So, I am thinking YES, these keywords I heard as well in Berlin. And this is how I always understood agile, also in connection with software development. However, many other keywords that I heard do not cope with THE definition of agile. For example in my opinion, at the moment when one establishes a method or a practice (such as AUP, Scrum, FDD, Kanban, …) for project management, the agile component disappears. I know that there are agile methods or guidelines, but do we have to stick to them?
I have been working in the past on few different software development projects as developer and tester, some smaller, some bigger. I had probably luck since all of them (contrary to the global statistics for software projects) were successful. So, armed with my knowledge about agile development: agile manifesto, methods, practices, etc., I am asking myself: Why all of my (my = where I was participating, not necessarily leading) projects were so great without being agile? None of them was called agile; none of them confirmed to any agile method. But, when I look at the dictionary definition of agile, all of these project were agile: all of them were characterized by quickness, lightness and alertness. And this has happened without following any famous agile method and without having any scrum master on board.
A friend and colleague of mine, Dr. Gerald Schröder, said that blind following of any process model dooms a project to fail. So, nothing against any agile model or process, but it must be actively executed. Meaning the model has to be chosen properly for the project since different projects and teams have different needs. Additionally, it must be clearly communicated on all levels. Every member of the team must know his/her responsibilities and the responsibilities of the others.
So, here we come to the human aspect of successful software development processes. And thanks the Agile Manifesto one of the agile values is indeed “individuals and interactions over processes and tools“. Wooow, I am not the first one thinking that we should not lock ourselves in processes and methodologies! And luckily this is not the only value that considers the human aspect. „Customer collaboration over contract negotiation“, „working software over comprehensive documentation“ and „responding to change over following a plan“ also mean respecting the ideas and thoughts of the people in the team and on the other side – the direct users and all the other stakeholders that collect any value from the produced software. Therefore, the right people and not the right processes are those that make software development successful or not. Another colleague of mine has perfectly summarized three success factors: (1) use of adequate techniques supported by experts, (2) well-staffed key functions for communication within the team and with the other stakeholders, and (3) small engaged teams. Or simply, the right people on the right place. I could never abstract it better myself.
Now, going back to agile: Agile is when it is flexible, on each place. If the use of a model or a process makes you flexible, go ahead use it. The moment it starts being too narrowing, make exceptions or just change it. After all, one cannot say that a project is agile just because it uses an agile process. It is quite honestly not right. Right is to involve the people, all people: developers and testers, users and customers, managers and chefs.
Oh, this brings me to an idea to write about the (different) nature of software workers, but I’ll do it in my next blog. Great, I have already a topic to write about
.
BTW, the Agile Testing Days were great event, where I learned a lot and enjoyed many great speeches, especially the keynotes. I was very happy and proud to be part of the Agile Testing Elite. Thank you all!
* “agile.” The American Heritage® Dictionary of the English Language, Fourth Edition. Houghton Mifflin Company, 2004. 16 Oct. 2009. Dictionary.com.