Software management

Summary: Software People and Management

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.

https://www.blackliszt.com/2020/07/job-requirements-for-software-engineers-should-stop-requiring-cs.html

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.

https://www.blackliszt.com/2020/10/elizebeth-smith-friedman-the-cancelled-heroine-of-cryptography.html

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.

https://www.blackliszt.com/2012/02/when-you-call-the-programmer-arrogant-are-you-committing-libel.html

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.

https://www.blackliszt.com/2012/07/a-lesson-from-joseph-lister-ego-the-killer-of-software-projects.html

https://www.blackliszt.com/2012/07/what-can-software-learn-from-steamboats-and-antiseptic-surgery.html

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

 


Categories