Keeping it simple, something is not right in the approach being made in so many IT projects.
The Agile Manifesto is being followed more than ever, and yes in one measure or another:
– Individuals and interactions are gaining more focus over processes and tools;
– Software is actually gaining more (and earlier) attention, rather than documentation;
– Costumers are getting more involved and engaged throughout the development processes;
– And change is being answered sooner than later.
Ok, nothing’s perfect and there’s still a long way to go on this points, but looking back is hard to say improvements aren’t being done. And yes, this is a good thing!
But we’re only humans right? So we like to complicate our projects, and we do that in so many ways:
– Specifying unrealistic requirements, that aren’t even focused on delivering real value for the users;
– Designing beautiful architectures, that for sure would stay great in our living rooms (if printed), but undermine solutions with fail points we could live without;
– Forgetting we are working for people with people, and, well, we all have our hopes and dreams;
– Choosing technologically stunning solutions, that are hard to evolve, hard to maintain, and yes, not agile at all.
Ok, we’ve got everyone involved, we’re delivering value earlier focusing on MVP delivery, but are we really looking to our value stream and looking for ways to make it flow faster?
Can we get more value out of each sprint? Sure we can, and many teams work in ways of improving to do that, and we get a little bit better in every iteration.
But let’s land our feet in the ground and be pragmatic, so many times we take a long time to do simple things. How long does a simple form takes to be developed? And if some integrations are added? And if we want to make it more responsive? And a responsive integrated form is actually a quite basic requirement, isn’t it?
I do believe, we have be smarter, and start looking for faster ways to develop software, and when we do that, then we can really start focusing on delivering real value.