Monday, December 29, 2008

The culture of success

It seems to be accepted as the norm these days that software development projects are a big gamble. You may succeed, but all the planets have to be in perfect alignment to achieve it - and what is meant by success is also open to interpretation.

I find myself in disagreement with the status quo however, the dice can be loaded in favor of a form of success, as long as the right attitude and culture is in place – and that ‘success’ is understood by all to mean the same thing.

There are many different paths that can be chosen during development of a new product. Once a decision is made to walk down a less desirable path, every other step from that point forward, no matter how sure footed, is at a disadvantage because it is still headed toward the bad side of town. The only way to correct this situation is to double back (i.e. throw work away) and take a more appropriate path.

Success can be as hard or as easy as you want it to be, but if you don’t instill and install the right culture, you just won’t get it.

Agile values and principles help like minded individuals to understand the common parts of what make up the right culture, but the agile label itself is under threat from misinformation and misunderstanding. The lowest common denominator that underpins any successful project is working code – and in order to understand what a healthy culture means, you have to understand what it means to be responsible for delivering it. If you have this prior context, agility speaks for itself.

Friday, December 19, 2008

Last comment on the subject - maybe

Seemingly at risk of degenerating what I view as an interesting and valid debate, I have decided to move here to comment further, rather than offend.

Paul Beckford has just posted his latest comment on the discussion and I strongly recommend reading it, there are some very profound points in this post. He referred to a great quote by Konosuke Matsushita the founder of Panasonic. My search for the origin of Konosuke's speech led me to a slightly different version, and I don't know which is correct, if either, but the words are very pertinent so I thought I would show them here -

"We will win and you will lose. You cannot do anything about it because your failure is an internal disease. You firmly believe that sound management means executives on one side and workers on the other. On one side, men who think; on the other side, men who only work. For you management is the art of smoothly transferring the executives' ideas to the workers' hands. We, in Japan, are past that stage. We are aware that business has become terribly complex. Survival is very uncertain in an environment filled with the unexpected and complications. Therefore, a company must have the commitment of the minds of all its employees to survive. For us, management is the intellectual commitment by the entire work force, without self-imposed functional or plastic barriers."

Reading around a little further, I found another great quote -

"The untrapped mind is open enough to see many possibilities, humble enough to learn from anyone or anything, forbearing enough to forgive all, perceptive enough to see all things as they really are and reasonable enough to judge their true value."

I am only recently beginning to realize and appreciate just how many great people have distilled knowledge and wisdom down to just a few very meaningful and powerful words and thoughts.

Building on some of Paul's comments, there must be many great examples of creative craftsmanship in other disciplines out there. Thinking of a chef, I love watching Gordon Ramsey in action in his 'Kitchen Nightmares' TV show. His knowledge of business and holistic thinking about his craft is what makes him so successful. A chef cannot be someone who entrusts others to locate the best farms, cut, prepare and season all his ingredients and place them in front of him so he can just cook them.

Changing the focus a little, could it be that even management itself is actually just a label for the collective responsibility? This is a literal interpretation from the speech above, but I think perhaps it is. I question its validity as a profession in its own right as much as that of software architect. In fact, anything you cannot easily define is questionable. If someone tells me they are a pilot, I know what they do. Ask a manager and you will get a very hazy definition and each manager will say something different. What is the job of a manager? Its wide open to interpretation but from my perspective, it is to support your team and remove the problems that stand in their way. Stopping to ask yourself why the problems got there in the first place is more valuable and root cause is often some other organizational anti-pattern much of which could be avoided by having committed minds act as a collective force. In a small startup there is little room for these additional roles, its all hands on deck to produce business value so you can start to turn a profit as soon as possible.

Some time back, I read an excellent book called "The Goal" by Eliyahu M. Goldratt. The one lesson to take from this book above all else, is that you are in business to make money. Whenever I stop to think about all the extra 'busy' work people in an organization can create, I stop for a minute and think - does this contribute to the goal of the company? It is surprising how often the answer is no.