Guess what – software people aren’t like regular people! There are differences in the ways they think and act, judging results can be difficult, and hiring and managing is challenging. This is a summary of my writing on the subject.
Skills, Training and Status
When you get a degree in CS or learn a programming language, you’re all set, right? Actually, those things are pretty much the same as knowing how to hammer a nail when building a house. It’s a nice start, but there are levels and levels of skill beyond the basics.
https://www.blackliszt.com/2018/09/the-hierarchy-of-software-skills.html
There is perennial conflict between young and old in software, perhaps more than other fields.
https://www.blackliszt.com/2010/12/experience-and-youth.html
You might think that getting a degree in Computer Science prepares you to be an effective programmer, much like getting an MD prepares you to be an effective doctor. A comparison of the two makes it clear that CS education is sadly deficient.
Does status in software correlate with your skills, kind of like how hitting more home runs gives you status in baseball? Sadly, no. One aspect of software status is that the more layers there are between you and real customers, the more status you have.
https://www.blackliszt.com/2011/10/status-in-software-silliness-and-stupidity.html
There are other dimensions, for example the more management layers between you and fingers-on-keyboard programming, the greater the pay and status. And there are others!
https://www.blackliszt.com/2018/10/the-hierarchy-of-software-status.html
There is a similar skills and status hierarchy in data science
https://www.blackliszt.com/2019/03/the-hierarchy-of-software-skills-data-science.html
One of the sad things about software is that writing great code and getting credit for it are largely unrelated to each other.
Programming skill and power in the programmer is far more important than the differences between programming environments.
https://www.blackliszt.com/2010/05/what-is-the-best-programming-environment.html
At least in some environments, high-performing nerds are highly valued.
https://www.blackliszt.com/2011/07/the-new-top-gun-is-top-nerd.html
Understanding Programmers
When you think about hard-core programmers, the word "nerd" comes to mind. In the poplar imagination, "nerd" often seems to mean guys who play lots of games. And have attitude. Of course there are such people. But the very best programmers, in my experience, don't match that description.
https://www.blackliszt.com/2012/02/most-nerds-are-introverts.html
Some programmer-nerds go beyond introversion.
https://www.blackliszt.com/2012/03/nerds-autism-deficiency-advantage.html
Temple Grandin's views are always valuable.
https://www.blackliszt.com/2010/02/nerds-and-the-yakkityyaks.html
In the end, the best nerds like to get stuff done -- and have fun.
https://www.blackliszt.com/2011/07/top-nerd-activities-work-hard-save-the-day-and-have-fun.html
https://www.blackliszt.com/2010/03/nerds-in-norway.html
https://www.blackliszt.com/2011/07/top-nerd-nerd-values-and-attitudes.html
And of course, normal people can react to a passionate desire to get things done in the best way possible as arrogance.
Hiring
Hiring software people is a challenge. There is widespread bad advice that interviewing for a software job should involve lots of chatting and relationship building.
https://www.blackliszt.com/2017/02/how-to-get-a-software-job.html
There are definitely better ways to select software people than the normal interview process.
https://www.blackliszt.com/2011/12/interviewing-software-people.html
The CTO of an organization is a special case. The requirements for the job are frequently impossible to meet.
https://www.blackliszt.com/2014/10/hiring-a-cto-the-impossible-dream.html
While CTO’s should be tops in technology, the best of them understand finances.
https://www.blackliszt.com/2012/10/cto-cfo-cfbco.html
Managing
Managing software people isn’t easy. Most managers tend to focus on process instead of substance.
https://www.blackliszt.com/2013/03/process-and-substance-in-software-development.html
https://www.blackliszt.com/2013/11/people-and-substance-in-software-management.html
Many companies have what's called a software architect. What should that person do?
https://www.blackliszt.com/2010/04/the-chief-architects-role-in-a-tech-company.html
If instead of just paying attention to abstract process managers paid attention to what the programmers are actually doing, things would improve.
https://www.blackliszt.com/2010/04/what-are-all-the-programmers-doing.html
One of the reasons software managers tend to focus on process instead of substance is that they have zero experience building software. Worse, it's literally invisible to them.
https://www.blackliszt.com/2016/12/managing-what-you-cant-see.html
As you can see from Dilbert and coal mining, you do a whole lot better managing something you've done or at least can see.
https://www.blackliszt.com/2017/04/managing-software-thats-invisible-to-you.html
All too often, nontechnical managers make important decisions instead of software people.
https://www.blackliszt.com/2014/01/who-makes-the-software-decisions.html
When non-technical people do all the managing, the programmers who know stuff either leave or learn to keep their mouths shut in the face of stupidity and lie.
https://www.blackliszt.com/2024/06/well-trained-managers-create-software-failure.html
In other fields, it’s mostly people who DO the highly skilled thing who become managers of it. It should be the same in software.
https://www.blackliszt.com/2014/10/joe-torre-and-software-development.html
Non-technical managers think that MBA skills are the main thing that's required to be a good manager. Wrong.
https://www.blackliszt.com/2016/01/software-business-and-business-school.html
Here's how I learned from a course at Harvard Business School that the MBA teaches confident ignorance in terms of software.
https://www.blackliszt.com/2023/01/software-management-and-business-school.html
So with all this, should a skilled software aspire to be a manager? Dilbert makes an excellent argument.
https://www.blackliszt.com/2023/02/should-a-software-engineer-aspire-to-become-a-manager.html
It’s easy to focus on relationships instead of technical substance when managing.
https://www.blackliszt.com/2017/02/software-management-and-relationships.html
There is also the classic case of ego. It's been a big problem in other technology-based fields, and it's a big problem in software.
The way group management changes as the group grows can be destructive.
https://www.blackliszt.com/2011/05/how-great-software-teams-can-go-wrong.html
It’s clear from the pay scales that most companies value management much more highly than the people who write code. Unlike baseball, for example, where the people who play on the field get the highest pay.
https://www.blackliszt.com/2016/04/software-people-you-get-what-you-pay-for.html
Does having a CS degree lead to the best pay? Not as much as you’d think.
https://www.blackliszt.com/2015/05/how-much-is-a-computer-science-degree-worth.html
There are many ways otherwise good programmers can go wrong. One big one is the result of perverse incentives.
https://www.blackliszt.com/2015/04/software-problems-the-role-of-incentives.html
Programmers who are considered to be “stars” often have issues unique to software that hurt group efforts and are rarely recognized.
https://www.blackliszt.com/2015/04/high-iq-programmers-the-problems.html
On the other hand, the whole process of training and promoting the most talented programmers is broken. It can learn a lot from ballet.
https://www.blackliszt.com/2013/04/what-can-software-learn-from-ballet.html
Book
The above are highlights of what there is to learn about software people. For more, see my book.
https://www.blackliszt.com/2015/03/software-people-book-just-published.html
Comments