If we don't create a reusable design, we will pay down the road. If we don't properly anticipate requirements, we will incur rework. If we don't get the design right up front we are, for a lack of a better term, royally screwed.
If you disagree with the above, then feel free to stop reading, this post will contain nothing new for you.
If you are of the opinion that the design of any kind of information system is something that is done up front in one big batch, I urge you to keep reading.
Design is an act of pattern matching. You are scanning a range of solutions in an attempt to improve the experience of a particular context.
Design involves equal parts analysis, building, and perhaps most important, testing.
The key to good design is iterating. Iterating as fast as possible.
Good design involves searching, mixing, inventing, testing, testing, and more testing.
Good design doesn't come from a better crystal ball, it comes from feedback. And being able to respond to that feedback.
The act of analyzing requirements, modeling a solution, and handing it to a development team isn't an act of design.
Its an act of analysis. Its an act of direction. One that is rooted in assumption.
For this to be an act of design, you need to complete the entire cycle.
Not all problems require design to solve them. Maybe you are applying a cookie cutter solution to a commoditized problem. Maybe you just need coordination.
But even complex coordination requires good design to pull off well.
You don't need take my word for it.
You could pay attention to the growing bodies knowledge out there that are spreading the same message.
Design thinking, Service Design, Managing to Learn, LeanStartup, Radical Management, OODA, Gamification, and Systems Thinking seem to all touch on the same truths.
Up front and design are the antithesis of each other. Let's strike it from our vocabulary.