“Wait, you actually helped develop the software?” My wife asked curiously, and without accusation.
The question reminded me of a barstool conversation I had with a colleague, in a hotel lobby, in the not so distant past. The subject of software development is a mystery to most people and, through the evolutionary path of my career, the subject has provided fresh content for dinner table conversations about my day.
The technical layman often possesses a simplified view of the software development process; a view that isn’t so much wrong as it is blindly conceived. Software development is a creative process, not a mechanical one, and most non-technical types are as ignorant to the process as they are to the necessary steps an artist may take to develop a notable painting.
The argument can be made that a non-technical stakeholder (who deals closely with technology) has an individual responsibility to possess a basic understanding of the subject, but the reality is they often don’t and aren’t expected to. As geeks we should be glad, because if our non-technical teammates possessed a mutually defined technical skillset that rivaled ours, there’s a good chance we’d be out of a job.
“Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product” (Wikipedia, 2016). In the technical world this a multi-disciplinary process that’s broken up into stages (as defined by various development methodologies), task resourced to a range of highly skilled people, and leading to the eventual implementation and adoption of what should become a sound technical solution to what’s often a non-technical problem.
In this process our geeky contributors (with their face in the code) may receive much of the glory, but there’s a host of professional personality types behind the scenes charting their path to success.
Where developers are the muscle of the software development process, analyst are the brains; which isn’t to say that programmers are brainless, far from. They’re highly skilled problem solvers with masterful knowledge of the language(s) that power our digital age, not to mention the fact that on smaller development teams they’re responsibilities overlap with the analyst; and in fact frequently replace them in the software development process.
The analyst provides a critical connection between an organization’s business processes, its staff, technology, and the people who support it. They do this by working with individual stakeholders throughout an organization; mapping and evaluating processes, and prescribing value adding technical solutions to improve operations.
Developers and analyst coexist in the technical space, and as stewards of technology, bring technical solutions to life in order to improve the performance of an organization.
As a software applications manager my role is part analyst, part project manager. Where I’m not deeply involved with the code, I am deeply involved in the design process. A role that’s deeply rewarding in the tech field.