In most Software Development Life-Cycle (SDLC) models, the first phase is often considered to be planning and analysis. In a real world scenario this often translates into gathering requirements, writing specifications, and so on. However, I believe this methodology skips an important step.
When a project begins, even when specific needs are put forth, it is in an abstract state and the path ahead is vague and unclear.
Think of this vague state as a blank sketchbook, an empty sheet of paper, or a table top covered with a plethora of Lego bricks. As an artist/writer/builder do you plan and analyze the path ahead or you or do you explore your medium? An artist will free sketch, a writer will free write, and a kid (or adult) with Lego bricks will pick up seemingly random pieces and snap them together.
This is an important and well respected process in many disciplines, and yet one largely ignored by the software development industry. Why deny people their natural urge to play with what’s at hand and discover what’s possible? Why suppress the natural human mechanism that leads to truly creative thinking?
A logical discipline such as software development does not preclude the need for creativity. Creating software is as much about innovation, a creative process, as it is of logic and reason.
Creative thinking and logical analysis cannot drive one’s thought-process simultaneously without one being a burden on the other.
Therefore, the first phase of the SDLC should not be planning and analysis, it should be a distict phase dedicated solely to a creative thought process. Every member of the team should be given the freedom to explore their own ideas. Concepts should be expanded, ideas researched, sketches drawn, prototypes developed, and possibilities discovered. Meet with stakeholders and share in dialog that’s driven by imagination and not requirements. Where once was an empty space, a vacuum, a blank canvas, there is now a living source of inspiration. This inspiration is the seed from which a truly successful software project can grow and thrive, inspiration often stillborn in our current landscape.
Please see the following for more insight into creative thinking:
July 7, 2008 at 2:00 pm
Hi,
Do you personally use any template/checklist/small guide for this SDLC phase?
July 7, 2008 at 3:49 pm
I tend to see the output of this phase like a bucket. In this bucket you place all your sketches, documents, mind maps, articles, prototypes, and sources of inspiration. Everything should be in one place and easily accessible, like Wikis and file shares. You’re building a seed. From this chaos you build order and definition in your project.
I think the important thing is to see this as an ambiguous and abstract phase. Read some books on creative thinking, find what works best for your team, and go with that.
September 27, 2008 at 1:32 am
[...] Personally, while I firmly believe tests are critical to the success of a project I also believe TDD erodes at the creative freedom that is critical to good design. It continually interrupts the creative process and solidifies a mental model before proper creative exploration has taken place (see “The Missing SDLC Phase“). [...]