Back in 2001, having spent a couple of months working in a
government organization I put my observations and experiences
together and came up with this manifesto. I later realized that
someone had already done the
same thing,
although they are a little more famous for theirs!
Mine is rather unpolished and more a collection of unstructured thoughts;
it is still a work in progress...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MY MANIFESTO
I used to think I was a minimalist, now I've changed my mind
and decided I'm a maximalist. I believe that people are capable of so much more
than we, or even they, believe. Therefore I think we need to create a minimal
framework to support, encourage and guide people, while not restraining them
in any way.
(OK, so maybe I believe in a minimum of things to get in the way. I've always
liked the natural simplicity of Japanese houses and gardens and the way it enhances
the beauty around them.)
To put it another way we need to minimise the things that hinder and
do everything possible to encourage and grow those that build and activate.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
So what are the activators that we want to encourage?
* Great people are our greatest asset. Encourage them to create
and to grow, give them responsibility.
* Interactions between people are activators, both by enhancing creativity
and because of the satisfaction it brings of itself.
* Life and work should be fun, enjoyable and satisfying
What are the amplifiers?
* Space and freedom: to reflect, to grow, to create
* Safety: remove the fear of making mistakes
* Simplicity: There is enough to hinder without us creating more
* Small groups of bright people
* Open work spaces: Encourage communication and innovation
* Inspiring Leadership: There is so much I have to learn here
And what are the things that hinder?
* Rigid structure, especially when it is an end in itself.
* Control style management
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
So how should we develop?
I think that a development framework should do what people are not good at
but not impede their creativity which is what we desperately need.
(I prefer not to use the expression ‘process’ or ‘methodology’ which tends
to imply something rigid and inflexible but rather use ‘framework’ or
‘scaffolding’: something lightweight which we can build on and supports
what we do. It is also temporary enough to be removed when it no longer serves its purpose.)
I think the framework should provide in these areas:
ENCOURAGE:
* Strong team players
* Self management
* People who want to learn and grow
* Openness and Integrity
* Quality: in product, code and designs
* Reflection: Why are we doing it, what are we doing,
what can we do better?
GUIDE:
*Extremely Lightweight methodologies (like FDD, Crystal or XP)
(Don't use a 400 person methodology for a 4 person project)
* Mentoring / Apprenticeship through
- Pair Programming
- Architecture Reviews
- Proximity/Team seating
* Communication
Using tools that support (Groupware, VCS, Wikis)
SUPPORT:
* Use Lightweight tools
* Keep documentation light
We only need to make sure that...
a) We know what to do
b) We have completed everything
c) Someone can take over our job
* Progress tracking and Estimation
(I like the simplicity of FDD for this)
* Encouraging management
* Open Communication - keep people informed
* A Stimulating Environment
Some important principles which seem to work well
* Use rules of thumb
* Don’t waste time trying to be accurate because you can't
* Simplicity in everything (minimalism)
* Open-Communication seems to be critical
Between developers, with users and with management)
* Balance flexibility of software with cost to implement
* Let team players decide what is appropriate
* User on site
* Regular releases
* The way we work needs to be fun and stimulating
* Leadership shouldn’t be control
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SOME RANDOM THOUGHTS:
(Which I couldn't think of a better way to structure yet)
- Requirements change; in fact nobody even knows what they are.
We need to build relationships between the customer and developers; not
get an upfront spec and see them when we're finished.
- Creativity seems to be amplified when small groups work
together (i.e. Interaction is important).
- Processes which try and control too much and try to
produce ‘perfect’ results stifle the exact freedom of thought, expression
and action which are required to be creative and produce innovative results.
- We need space, time and tranquillity: to think,
to create and to grow. And we need freedom.
- Trying to automate too much leads to a lower reliance
on creativity and relationships. Again these are exactly the things that
we need to treasure as they are our most valuable assets.
- People appear to avoid personal contact. Again I don’t
know why since it is so central to our existence. Unfortunately management
tools like SDO give people an excuse not to communicate. Maybe we shouldn't
give them these tools since communication is far more valuable than the
‘control’ these tools offer.
- There is currently a tendency to encourage extreme
specialization, both when studying and working. However I think this will
change as people realise that having a broader overview of things will
also bring greater insights and opportunities. With this will come a change
in the perception that people who have knowledge in different areas can
also have in depth knowledge. i.e. It is possible to be a generalised
specialist (or should that be a specialised generalist?).
- Conway’s law states that the structure of a system will mirror
the structure of the team that built it. What do we want our systems
to look like? Our teams need to communicate and be loosely organised.
- People seem to work better with graphical tools. Unfortunately
computers seem to prefer text based tools. There is a lot that needs to be
done here to improve the way we work.
- Although I believe that anyone is capable of doing much more than
they do, there are way too many people that don't. I have discovered that I cannot change
these people. Even though they may agree that they are capable of more they remain
mediocre. It seems that you cannot create people that innovate and that strive to be more,
you have to find people that are already like this.
- Too many leaders seem to be chosen for their 'attitude', not
because they are good leaders. To be a CEO it seems you need to be 3 things:
Male, Big and Loud (I only score 1 out of 3 here).
We need leaders who inspire, encourage and make us want to grow.