Currently everybody wants to be agile. Agile software development is mainstream and if you’re not agile you’re probably considered to be less productive therefore not as competetive. Everybody labels themself as agile, but not everybody understands, that true agility is not available for all, and by all I mean developers, organizations and clients.

Agility is not just doing software in short iterations. Real agility requires certain mindset, certain behaviours and a way of thinking. Also in agile projects everybody plays in the same team. Everybody swims in the same river. If on any level there is a clear distinction on them and us the agility cannot be achieved. By any level we can consider contract level (if client is willing to collaborate), organization level (if our internal processes or procedures allows us to be agile), development level (if our staff has appropriate experience and skills to be agile).

Why I’m talking about all of this? It is my general thought, conclusion after I’ve attended to Agile in Business conference. We had a track about how to construct agreement for an agile project. We had speaking some lawyers and people considering themselves as experts that negotiate agile contracts. And what really suprised and irritated me is that not everybody of those speakers knows what does it mean to be agile. Some even repeat myths like agile project is just start work without any plan and see where and how it goes. They do not know or understand principles behind Agile Manifesto.

I understand that not every client is willing to collaborate. I understand that if we work for corporation we could have tons of management on top of us, which may expect something from us or do not care about all this agile stuff. But in order to be agile lots of prerequisites must be met. It is a completely different mindset which drags changes in the organization and a way the client is participating in a project. If some of this prerequisites cannot be met do not do agile. You won’t be able to achieve appropriate level of agility and loose organization will turn against the project and supplier.

What are the prerequisites? You can use following as checklist, but I’m sure that lot of agilists could be able to add more:

  • Client is willing to collaborate and understands that delivering products with highest possible value is the responsibility of both sides not just the supplier’s.
  • Organization is ready the change its mindset and delegate the responsibility for project realization to the team.
  • Employers are competent enough to form cross-functional teams that will be able to deliver valuable increments in short time.
  • There are employers competent enough to initiate and motivate self-organization of a teams.

In corporations especially second point is extremely difficult to achieve as corporations by design are organized around the command and control principle.

So if you cannot met any of the above prerequisities do not even try agile, or try but on some internal, not important projects. Because bad agile could be worse than lack of agile at all and if project fails you will drop the blame on all this agile stuff. Agile is simply not for everyone.

http://michalorman.com/2012/12/agile-is-not-for-everybody/

Autor: Michał Orman

Full-stack web developer, software and solution architect, project manager, agile enthusiast and professional with enterprise background that loves getting things done. Productivity, constant improvement, highest possible quality are his attitudes.

Currently he is working with Ruby on Rails stack and JavaScript but his background includes enterprise development in Java/J2EE, mobile development for Android platform and embedded development in C/C++ for telecom.

He is an avid follower of SOLID principles, that loves simple design. Nothing makes him more happy than simple interfaces, small methods and clean code. His toolkit includes UNIX/Linux systems, VIM and of course Git.

http://michalorman.com/