I’m thinking about all of the things I need to do to improve my new engineering practice and no matter where I look it all comes down to the software. Seeing that I have spent so much time learning about and improving my software development capabilities I feel that I am the right person for the role of software engineer. It is tempting however to keep bolting on hardware or even creating big plans for a website, for example, without working on the software at all. Then, when the product comes out it is too late. At this point I am often tempted to run to my laptop and start programming one or more things again. This, however, is to miss the holistic approach by which the best software is written, in my opinion.
Thinking about the function of systems as a whole prior to creating the software is what makes it successful. This is the path that led us back to the drawing board in the first place. Just because form follows function doesn’t mean we can skip writing our functional analysis. To reference an old Dr. Dobbs editorial, the best software is always intended to solve a problem, or as the editorial stated, a “perplex.” We write software chiefly because we are perplexed, confused, by the very many requirements of a complex system, be it a website or an IoT device. Throwing our “heart over the bar,” or rather all of our requirements into our new computer program so that a compiler can handle them; defining our requirements clearly that is, really is our first step to creating good software.