For quite some time, I’ve been puzzled about how much energy, focus and attention our software business today places on what I’d call the “administration” of software development, and how little focus, relatively, there’s on the actual craft of software development...
For many years now, superior careers have been made by folks who claim to know how to “orchestrate” systems- and software development; requirements experts, process experts, organizational experts, team collaboration experts, CM experts, management experts, analytics experts, “big data” experts, cognitive computing experts, financial experts, marketing experts, bean counting experts and other empty suits, but less and less is heard about how to do the actual craft of software development itself: things such as architecture, design, programming and test. Basically, the careers made today within the software business are made by those who barely could craft a “hello world”-program without help….
It seems to me that in order to make a career today in the software business, you should focus on knowing all the correct buzz words in the world of processes, team collaboration and management (“scrum”, “agile”, “lean”… anyone..?) , but you don’t actually need to know anything about the actual craft itself, i.e. how to design and write a computer program that actually can solve the problem for you. Abstractions, algorithms, data structures, concurrency, patterns, computation, h/w dependencies, I/O, throughput/performance, Edit-Compile-Debug-Test, etc … anyone…?
Let’s go back to basics for a while: everybody and his mother claims that software is increasingly the most important aspect of business success for the future; ok, if that’s the case, then I’d suggest that the most important factor to succeed is to have people who actually know how to create software, i.e. how to architect, design, implement and test software, that is, folks who are deeply skilled in the “craft” of software development.
Let’s get back to basics a bit, let’s give some cred to those folks who actually know how to create software, asop to exclusively giving cred (and stellar career’s) to those who wouldn’t know a bit from a byte, but are more than happy to tell real programmers how they should work….!
Then we will of course need folks to product manage, coordinate, and “monitor” the craft, but in my book, those folks, the “process” and “mgmt experts”, they are secondary to those of the true craft, and in my book, these folks are pure administrators, like those who keep track of the exec’s calendars in large organisations….