The Social Transf#ormation of Software Development
December 12, 2017 6 Comments
This post is part of the F# Advent Calendar in English 2017 project. Check out all the other great posts there! And special thanks to Sergey Tihon for organizing this. (Also, thanks to Scott W from whom I copy/pasted the prior sentences.)
Since we are in the holiday season, it is appropriate that I spend some time reflecting on how awesome the FSharp language is. Also during this season, as we turn into a new year, it makes sense to look a bit into the future. Full disclaimer – I have no idea what I am talking about.
When I was an undergraduate, my advisor recommended The Social Transformation of American Medicine by Paul Starr. The book centers on American physicians and how they used social factors to achieve the professional autonomy and financial rewards that they have today. Indeed, there are few other professions that have such a powerful “moat” around their profession. I still remember a line that Starr used when describing how the AMA used the rule of law to crush non-certified physicians at the turn of the twentieth century: “Power abhors competition like nature abhors a vacuum” *
I recently re-read much of the book, spurred on by Uncle Bob Martin’s talk about professional autonomy that I saw at Skills Matter a couple of years ago (similar one here) . I am wondering how our professional will shake out – computer programmers are indispensable, in fact they are one of the few competitive advantages for companies*. Like it or not, all companies are software shops, the ones with good management get this and are adapting, the bad ones… well, they can always merge. Yet the average software engineer does not have the kind of compensation and autonomy that the average physician has. To be sure, there are some “rock stars”, but the averages do not compare.
So why don’t software engineers have such status? One can make an argument that correct software can be just as life-saving as a physician’s diagnosis, and potentially at a larger scale. So if it is not societal importance, what is it? Starr’s books has some interesting observations that lend itself to some interesting questions which would certainly increase the software developer’s status.
· Does the software industry need to have established practices that at enforced by the rule of law?
· Does anyone deploying software need to be licensed? There might be some minor logistical issues, but certainly doable (just tell VC it is a Blockchain use case)
· Does anyone writing software need to join an overall unified professional organization?
· Do we socialize politicians that “kids learn to code” is a dumb idea just like “kids learn to do surgery”?
· Do we educate business leaders of non-tech shops that the problem is not enough programmers but too many bad programmer? If they want better results, pay more and implement steps #1-#3 above. Does it then raise the possibility that their many management teams and associated skill set are pretty much irrelevant in a 21st century technology company?
· Does the industry tell computer programmers that can’t pass the muster for the 1st three bullet points that they need to find a different profession?
Which leads us to FSharp. FSharp is an awesome language that had a hard landing on the enterprise space. As our profession evolves, the market will have less influence. As far as I can see, the entire package of Windows, Visual Studio, .NET, C#, Desktop App, and Web Forms is coming to an end. Will newer languages like F# will get a serious look? I will be interested to see if the same regulatory forces that will lead to the end of the Mort will also pick and choose winning languages. God help us if they decide on javascript.
So what can we do in the FSharp community? Starr has some interesting lessons here too:
· Stick to our guns and continue to push for high-quality teams and code. Like physicians that turned away patients that would not follow their orders, avoid shops that treat development as a cost of business versus a strategic asset
· If you do work at a place like that, be an outspoken advocate for change.
· Get involved with startups and non-enterprise technical communities.
· Get involved with government – volunteer on boards, get to know your local politicians, spend some time raising FSharp awareness to key stakeholders
· Code Code Code. Keep your coding chops sharp.
In any event, I don’t know the answers to the above questions. I don’t even know if they are the right questions. To be sure, I maintain our profession is evolving and we do have some control of where it will end up. With that in mind, hopefully the FSharp community can continue to be a force of positive change in our industry.
Onward to 2018!
** I find this line very useful in a variety of settings -> esp. in explaining American politics to friends from overseas
** IT does matter. It always has. The article was wrong from the moment it was published.
Pingback: F# Advent Calendar in English 2017 – Sergey Tihon's Blog
Pingback: Dew Drop - December 13, 2017 (#2623) - Morning Dew
Pingback: F# Weekly #51 – FSSF is now over 2000 members! – Sergey Tihon's Blog
I admire the courage in this writing. I will never forget when you predicted the rise of regulation in software development during your Developer On Fire podcast appearance (episode 090). Two years later, it’s interesting to read your current predictions.
I had not considered your strong argument against leaders proclaiming all kids learn to code: Would you encourage all kids learn how to perform surgery? Skillful coding takes years of experience and maturity. The costs to others seem quite different in intensity but maybe I am underestimating the costs of millions more throwing code around.
Given that your prophetic post could attract attention years from now, I thought you might care about these minor typos I saw, formatted as [current] instead of [suggested] :
“how our professional will shake out” instead of “how our profession will shake out”
“at enforced by the rule of law” instead of “are enforced by the rule of law”
“too many bad programmer” instead of “too many bad programmers”
“and associated skill set” instead of “and additional skill sets”
“Will newer languages like F# will get a serious look?” instead of ” Will newer languages like F# get a serious look?” [extra ‘will’ at the end]
Finally, I think you want two asterisks instead of one after “advantages for companies*”.
Jamie, excellent post. So unhappy that you are not blogging as much this year. In the world of F# your musings are accurate, insightful and sorely missed; we await your return.
Pingback: The Social Transf#ormation of Software Development — Jamie Dixon’s Home – Latino Nearshore