Once again, my dear Björn Falkevik has infected my brain with an idea. Obviously I have very low meme defenses when it comes to that guy. The things is that software development is more like gardening than laying a puzzle – and grasping that distinction might save you A LOT of frustration when developing for instance a blog intelligence tool like we do. No one by his right mind thinks that software is like assembling a book shelf by following the instructions (real development is doing at least SOME thing that is totally not seen before), but it is easy to confuze the puzzle and the garden.
If you look at the project as laying a puzzle you get yourself some underlaying limitations. For instance; you say at a point that you would like a feature X showing a certain diagram view. The description of that feature X becomes a piece of the puzzle as soon as it leaves the creative brain and is manifested in words or pictures. And then you might be f-cked since if reality changes (the creative brain gets a little wiser or the context in which the software is to be used changes – puzzle-oriented thinkers will have a problem either with a piece of the puzzle being left over at the end (if down-prioritized) or more resources needed to find a place and implement the piece. Only when you before hand know EXACTLY what the puzzle should look like you can smash the picture into pieces. And that is not the case in software development that have PEOPLE involved – either in the construction or in the end-use of it. Ergo Sum Never. Ever.
Software development is actually more like gardening. You don´t know in advance what flowers and insects will actually be there at a certain time and what the people enjoying the garden will enjoy the most. The first sketches of the software is like preparing the ground, building a dam and placing some big rocks and trees at strategic places. When it´s time for the flowers a wise gardener takes it a little at the time by beeing out there in reality getting to know the different conditions in different parts of the garden like how much people will be passing by (most used features) and will need to test if different flowers thrive in different parts depending on sun and soil etc. A garden is built by understanding the INTERACTIVE SYSTEM between the things in it (features) ; the soil and sun (data connections and interdependencies) and the experience of the people that uses it.
Puzzle laying doesn´t go well with creativity. Puzzles areabout beeing within the box. Creativity is about stepping out of it. And that makes all the difference when it comes to outsourcing of IT as well as putting together teams for different tasks.