There’s a long tradition (since 1968, according to Wikipedia) of looking at software development as an engineering discipline. But calling software development engineering is something like adhering to the letter of the law, rather than to the spirit.
Software development is about acquiring knowledge
If you think of software development as strictly an engineering discipline, you might be inclined to believe that the job of a software engineer is to apply his or her previous knowledge and training toward solving a particular problem. And you’d be right, to a point, because knowledge and training are important aspects of software development.
But you’d also be missing the key factor, that software development is mostly about acquiring new knowledge. Software developers are always engaged in the following pursuits:
- Discovering what to build
- Discovering how to build it
This goes a long way toward explaining why so much software is custom software. If software development were entirely an engineering discipline, it is conceivable that we would be able to construct just about any software application by plugging together the proper parts, chosen from a catalog of well-known, existing components. The fact that we aren’t even close to being able to do that is an indication that we still have a lot of discovery ahead.
I’m proud to be a member of the Outformations Agile Enterprise JumpStart team, a group of developers who regularly go beyond the engineering aspects of a problem, and who constantly engage in the important discovery processes that help insure that the right product gets built.
The Outformations Agile Enterprise JumpStart team is ready to assist you in your development efforts. We’ll take you beyond engineering, and help you discover what to build and how to build it, quickly and affordably. Visit the Outformations website to learn more about what Agile Enterprise Jumpstart can do for you.