“Recognizing the need is the primary condition for design.” – Charles Eames, Architect
Software runs the world today – of this there is no doubt.
Software is incarnated on a daily basis with the same velocity and fervor as roads and bridges, new homes and skyscrapers. And like most things, there is always a spectrum of results ranging from unmitigated disasters that never should have been attempted in the first place to manifestations of imagination, genius, skill and talent transcending beyond science into the realms of art.
So what makes the difference between amazing success and disappointing failure?
What is Intelligent Development?
Essentially, it is the choice to use the brilliance and insights of the mind before, during, and after the use of the hands.
Isn’t that a given? Not in software development.
There are clearly three distinct tiers of software creation. At the lowest level, there is the “Cookie-cutter” approach. That is, little variation, stock modules that do “most” things that need to be done. It’s a lot like Henry Ford saying, “You can have any color car you want – as long as it’s black.”
There isn’t much thought put into this model of production. You want a website? Here’s five starter pages, pick a theme. You need a web app? We can have it for you by the end of the week – just write down the main functions.
The middle tier is more flexible, but without much genuine inspiration involved. It is the purely reactive “Jump Frog” model. The customer says I need you to jump. Software vendor just wants to know how high. The work delivered may be perfectly competent. The issue is that the very basis for everything that gets built is the complete responsibility of the customer. There is no input from the professionals on better ways to solve the same problem; no best practices observed and learned from many similar projects; no innovation; just put your coin in the machine and out pops your soda.
The top tier of this pyramid of models is the Intelligent Development layer. This is where the whole process begins with vision and dialogue.
- What is the real need that is being addressed?
- Who are the real stakeholders that the project impacts, and in what way?
- What is the core business case for doing this project at all?
The answers to these questions, and may more like them, conjure up a creative dialogue that explores multiple options and possibilities to achieving the optimal result. It’s a consultative process between business leaders on the customer side with a clear mission to accomplish and software industry experts on the vendor side who have a healthy background and extensive expertise in enabling such missions to succeed.
Think of this pyramid model attempting to hit the target as:
- Cookie Cutter: Fire. Well that’s all you get.
- Jump Frog: Fire, Aim? OK fire again. No? We’ll get it this time.
- Intelligent Development: Ready, Aim, Fire. Hit.
The “Ready” of this analogy within the Intelligent Development approach is the insightful thought, planning, and wealth of experience that is all brought to bear on exactly what needs to be done, by whom, and how.
In most of the software development world, the projects that are undertaken tend to be highly strategic in nature to the customers. That is, the software being built is typically either specific software products/services that the customer sells to their own client base; and/or, the software comprises strategic infrastructure systems that actually run the customer’s business. Both types of projects are high risk – meaning, if software failure occurs, it has the potential to be catastrophic to the customer’s business. Hence, the model chosen for software development is, more often than not, mission critical.
Moreover, when it comes to mission-critical software development, your vendor choices are many. So are the probabilities of success. Counterintuitively, this particular pyramid model doesn’t correlate 1:1 on development costs. Indeed, “Cookie-Cutter” may be relative inexpensive in most instances, but you get what you pay for. On the other hand, if you’re looking at either of the other two models, you might be surprised to discover that the underlying cost of labor to deliver solutions may be remarkably similar. The difference between the two models comes down to how much up-front design, architecture, research, testing, expert input, etc. is in the mix.
“A doctor can bury his mistakes, but an architect can only advise his clients to plant vines.” – Frank Lloyd Wright
“To create, one must first question everything.” – Eileen Gray