Development is innovation

April 19, 2009

I think one problem for software development organisations is the idea that the purpose of the process is to scale up development activities and remove the dependency to the individual instead of using the potential of the individual.

I see software development as an highly innovative process,  because you are about to solve a problem that has not been solved before (at least as far as you know when you are facing the problem). If you knew of a solution allready available, then no development should most likely take place you would just use what is allready available.

Therefore, I would suggest that we search for guidence in areas where innovation and creativity take place.


A few notes on Standards and Guidelines

March 8, 2008

Here is my current view on guidelines and standards (aggregated from Lean, experiences and other sources):

  • Current best way of working, No such thing as “Best practice” because that only kills motivation
  • I don’t want guidelines that prevent people from thinking
  • Try to make them executable

When do we use guidelines?
1) When new to a domain
2) As a basis for improvment (where are we now and where is our target condition)
3) When you don’t want to make a decision and want to be “safe”

The problem with guidelines is that as soon as you are familiar to the domain of the problem, you will most likely not read any guidelines on the subject. The value from written content will be minimal, because you will not read it. The questions is also how much attention you will have on new guidlines that differs from your current way of working?

That is why I really like the idea of making guidelines executable, so when you are not following the current best way of working, you will be notified.

What kind of guidelines are not possible to make executable? How much effort is it worth creating them?


Is a company wide standard a failure?

February 10, 2008

Inspired of Mary Poppendiecks post on Lean Software Development

What is true for a company standard? Is it:
1) These standards should be used throughout the whole company
2) We cannot have local customizations of that standard, because then it would not be a company standard
3) If someone finds a better way of working ie. improving the standard, that that change should be communicated throughout the whole company.

If these three statements are true; then I don’t think company standards are something to strive for, for a couple of reasons:

1) It feels like, this standard is the best way to do things, just follow the process and the work will be done..
2) We remove local creativity
3) We as a company get really slow, every improvment turns into a large change in way of working for a lot of people.
4) Instead of enable standards for improvement and efficiency, the standards are things that will prevent people for being productive and creative.

So, how should we think about standards then? I thik the concepts from Lean and Kaizen can guide us here:

Standards are there to describe our current best way of doing things. The teams can choose to follow the standards. The team is accountable and responsible for achieving the result of thier work, if they decide to not follow our current best way of doing things, it is their call.

Let’s assume that it is not the culture of the company to delegate responsibility to the teams. Then the people deciding what the team should do must have a tool to commuicate the directions for the team. Let us also assume that these directions are called company standards. Because these standards describe how we are doing things in this company…

If the team is not responsible for what they are doing, where is the motivation for improvements? I think respect for people and delegating responsibility as close to the work as possible is the key to continous improvements.

So, is a company wide standard a failure? Well, it depends on how the company thinks about the people in the enterprise.