Monday, October 22, 2012

SCRUM, SCRUM and SCRUM


Why is SCRUM successful in developing software?  This was the question that was haunting my mind during last week while I was undergoing training in Agile SCRUM. It’s evident that SCRUM has shown great results in delivering satisfactory software, but I was wondering why SCRUM works while so many structured, well defined, rule based methodologies have failed.  Well, if you have worked in an agile environment you must be thinking, “That’s easy; SCRUM works because it’s about people”. But my real question is why it’s about people?  If you really think about it for a second, SCRUM encourages team work, collaboration, taking into account the “people” factor, but in reality what does it really mean? In actual scenarios up to what level do we consider the people factor? I mean, come to think of it, it’s a very scary thought; people are unpredictable and imperfect and how do we rely on them for a project success? So, why does SCRUM really work?

Just the other night while flying back home from the training, It all of a sudden struck me; I was thinking how does great artists and craftsman create art? What did it really took to create Last supper? 

If it’s the tools they used or the approach (the process) they used to make their masterpiece then I’m sure overtime everyone would be a Picasso. Don’t miss understand me here, I’m not undermining the tools or the approach that has evolved for thousands of years in creating great artwork, all I’m saying is that those were not the decisive factor. The realization that I had while thinking deep into this factor is that it’s not the process or the tools, but the people that created the masterpieces. When it comes to great artwork I’m sure many of you will agree with me, but I would like to take this a step further. I suggest that what we do in creating software is in fact exactly the same as creating artwork. If you really give a minute or two for the idea to sink in and analyze it with an open mind, you will be amazed how similar these two fields are.

First of all, they are both knowledge based disciplines, I.e. you have to master certain tools and skills in order to become an artist/craftsman or a software engineer. Secondly, it’s very difficult to say whether you succeeded or not until you have the finished product (I.e. both professions deals with uncertainties and risks). Thirdly, what is expected in the end product is not just a product but a “beautiful” product which you can really be proud of. Another very important fact is that in order to be successful in both fields, one needs to be passionate about the work they do. If an artist is asked to draw a human, all it takes is 5 straight lines and a circle to communicate the message; but can it be compared to Mona Lisa? Same way, we can write software that gets the job done, but will it be considered a “good”, “quality” product?  Think about this, you can write an enterprise software application without giving a damn about code quality, re-usability, test coverage or usability; it will get the job done, but will anyone use it? Will any developer be proud of the work they have done?

So, in essence, to build beautiful software that everyone, including yourself would appreciate;  you have to be more than a software engineer (who was trained to use a set of tools and follow a set of rules), you need to become a Software Craftsman.

Agile SCRUM enables you to create software crafters within your team quickly and easily than any other methodology. It ensures self-governess and freedom to think, which triggers deepest creative neurons in once brain. It enables people to express them and provide them a canvas where they can draw an important stroke of great masteries. By empowering and enabling the team to overcome their own problems and by removing blocks that slows the team down, SCRUM sparks a wonderful synergizing effect within passionate set of software crafters that will always produce a software masterpiece which will be appreciated and admired by everyone.

This is why SCRUM is so unique, and this is why the people factor is so important. I feel companies need to understand this and ensure they hire passionate people who with the right empowerment can work wonders for them. Great people are always free thinkers and Agile SCRUM ensures people are given that freedom in a manageable framework. Companies need to take advantage of this; they should empower the teams to be self-organized and self-governed rather than trying to “manage” teams with waterfall based practices that will hinder both productivity and joy of creating beautiful software. 




No comments:

Post a Comment