Where Is Agile Now?

It seems just yesterday I was trying to push forward the idea of developing software in an Agile way, but somehow now it seems like that battle is over.

As if we won without a fight.

When I look around now, I don’t see software development shops doing big upfront design. I don’t see consultants knocking down doors to certify you as a Scrum Master.

It seems that we have now entered a phase where Agile is accepted as the default and now instead of everyone trying to pitch the idea of Agile, everyone is trying to fix their broken Agile implementations.

The funny thing is, still no one even knows what Agile is

The big problem with Agile from the beginning has always been trying to define it.

Pretty early on, this problem was solved by calling it Scrum. Scrum was something that was easily definable, and something you could get certified in.

Sure, there are plenty of development shops still using Scrum today, but it isn’t really growing and less and less organizations are following it strictly. (I can’t back this up, just my feel.)

I am a pretty firm believer in most of the value of Scrum being that it contains a firm set of rules that doesn’t require debate or judgment calls. If most organizations are just taking the idea of a 2 week sprint and having daily scrum meetings, they are not likely getting much of the value out of Scrum.

But, the problem is that Scrum itself was never Agile. Scrum was a defined set of process, that if you followed, would give you the framework you needed to actually be Agile.

To me Agile has always meant stopping the BS about software development.

To me Agile meant stop building this plan that you know is going to fail and rules lawyering your customers to death to get them to pay for something they didn’t want, because that is what they agreed to.

To me Agile meant to instead try to develop software as honestly as possible. To go in and find out exactly what the customer wanted at the moment, try to build that thing and as openly as possible and as quickly as possible get further feedback to refine and improve. To focus on doing a good job and know that if you are doing that everything else will fall into place. To me that is what Agile has always been.

So when I say where is Agile now, I am probably asking a different question than most people

I have to ask myself: are software development shops doing what I define as Agile? Has that idea permeated the software development community as a whole?

I don’t think so, but I don’t think it has died, nor will it ever.

But, I have seen some things that make me hopeful.

I’ve seen a large amount of talk about MVP, Minimum Viable Product.

I’ve seen many start-ups launching MVPs and being successful doing so. And I’ve seen awesome companies like Buffer using this idea to build a product that is exactly what I want, because their plan is completely based on the customer and it adapts to the customer.

Why am I saying all this?

Simple, I think that what the world thought was Agile was two things:

Scrum

Iterative development

For the most part the software development world has ditched Scrum, at least the only form of useful Scrum, which is strict by-the-book Scrum, and adopted Scrum meetings and iterative development. Honestly, I could do without the Scrum meetings, because although they are a good idea, no one actually does them correctly.

So, in essence, we won the wrong battle and we did so with major concessions. But, that is ok, because what the consultants packaged up, certified people in and sold as Agile, wasn’t really Agile at all.

Instead the real Agile movement has been gaining traction and it isn’t being sold by consultants, it is being championed by small start-up companies that are producing products that are 100 times more weighted on the side of results in the results to employees ratio than traditional software development shops and they are calling it MVP.

This is where the true spirit and ideas of Agile live and thrive and as more and more of these companies become successful and more and more researchers dissect their results, they are going to find that these small software boutiques were the ones who were actually practicing Agile, because they were cutting through all the BS of software development and focusing and developing and building exactly what the customer wanted—tools, process, contracts, plans be damned!

John Sonmez

Why do one should be concerned about Scrum, Agile etc. at all? It seems to me that a methodology is pushed (and not only since yesterday) as the panacea for software development.

And it’s not. It’s all about people, their skills, and attitude.

Gathering together some 500 pound gorillas won’t get agility. I remember when Warcraft III appeared, with the new characters called Heroes. These guys were tough, had abilities, and a primary attribute: strength, agility, and intelligence. Basically, picking the first hero decided the way you picked up the upcoming battles. Even in the big W3 brother, Starcraft (and in the supreme extension, chess itself), what do you have? pawn/knight/bishop/rook/queen as opposed to SCV/marine/tank/wraith/battlecruiser/ghost etc.

And how do you play? That’s the key. Accordingly to agile, you adapt your moves accordingly to the customer. That leads only to defensive battles (either in chess or in the e-games above). And, even more important: – you can’t pick your own battles – you are reacting to what the other part does – the units (pieces) have only a limited space to play, since initiative is lost and maneuverability is conceded.

That is happening in Agile, which was sold for years in almost every company I worked since 2007. And it failed miserably in all of them, since the success of the project was determined by the determination of developers (those having it), the squad attack speed (when was small) and the millions of small decisions that had to be took on the battlefield. Each and every time when the greater good intervened, it produced only delays at best and comic requirements/ridicule deadlines at worst. I know, one can say “the process wasn’t implemented right”. The reality is that the process cannot be implemented right, and, at least for me, offers no value. Just a daily waste of time – usually in the midst of a fierce WinDBG session – just to … what?

So, until someone convinces me otherwise, I’ll assemble the following simple sentences from various sources: 1. “How do you play a chess game? Let me tell you how. [description of back-and-forth thinking process] … and without thinking you moved that. [and white lost in 4 moves]. One is required to have a plan to play.” (Alexandr Kotov, chess grandmaster) 2. “Think before you code.” (advice gave to a junior teammate by a veteran teammate when junior asked a gazillion of details). 3. “Always have – and practice – a build order.” (Starcraft common sense advice). 4.. “hire people […] 1. smart, and 2. get things done.” (Joel Spolsky).

That’s it. Common sense. Think before you code. Have a plan. Follow the plan. Finalize. Score the victory. Anything else happening during working between plan and release… are meetings. I can’t remember even a single one.

http://www.facebook.com/renanra Renan Azevedo

That’s such a great write up. For sure agile has been incorporated in development today. It is fairly clear assume looking at new developer’s generation. For they, agile is simply how they are used to to things and agile has become the normal way of doing their jobs.