Uncle Bob’s 60-Hour Week is Not the Path to Great Code
The blogger ‘Uncle Bob’, a software engineer who promotes software design principles and signatory of the influential Agile Manifesto, has decided that a 60-hour workweek is required for professionalism in software development.
I think they’re wrong. Here’s why.
I Didn’t Realize I’m Not A Professional
Uncle Bob wrote “The Clean Coder”, and here is the relevant section about 60-hour work weeks.
“You should plan on working 60 hours per week. The first 40 are for your employer. The remaining 20 are for you. During this remaining 20 hours you should be reading, practicing, learning and otherwise enhancing your career.
I can hear you thinking: “But what about my family? What about my life? Am I supposed to sacrifice them for my employer?
I’m not talking about all your free time here. I’m talking about 20 extra hours per week. That’s roughly three hours per day. If you use your lunch hour to read, listen to podcasts on your commute, and spend 90 minutes per day learning a new language, you’ll have it all covered.
Do the math. In a week there are 168 hours. Give your employer 40, and your career another 20. That leaves 107. Another 56 for sleep leaves 52 for everything else.
Perhaps you don’t want to make that kind of commitment. That’s fine, but you should not think of yourself as a professional. Professionals spend time caring for their profession.
Perhaps you think that work should stay at work and that you shouldn’t bring it home. I agree! You should not be working for your employer during those 20 hours. Instead, you should be working on your career.
Sometimes these two are aligned with each other. Sometimes the work you do for your employer is greatly beneficial to your career. In that case, spending some of that 20 hours on it is reasonable. But remember, those 20 hours are for you. They are used to make yourself more valuable as a professional.
Perhaps you think this is a recipe for burnout. On the contrary, it is a recipe to avoid burnout. Presumably you became a software developer because you are passionate about software and your desire to be a professional is motivated by that passion. During that 20 hours you should be doing those things that reinforce that passion. Those 20 hours should be fun!” SOURCE
Reading that over I realize I’m not a professional. For a number of reasons, I’m not spending 20 hours per week studying, and worse this section of the book is making me question my status as a software developer.
I mean I guess I’m not professional, but you need to back that up with some evidence. Because I’m going to justify why saying someone who works 40 hours a week is enough. I’m going to justify why Uncle Bob is wrong.
The Secret Developer’s Experience
Some of the best developers I’ve known do not spend time outside their working hours. Some don’t even have formal qualifications.
I’ve noticed that it takes dedication and hard work to become a great software developer but not necessarily time studying. Life can take different twists and turns and it’s entirely possible for software developers to be professional, have children and not have time to study.
The Case Against: No Profession Contains professionals
Doctors Aren’t Professionals?
Doctors work long hours, and I claim that they are professionals. They are required to study and keep their skills up-to-date.
If we take Uncle Bob’s claim that professionals must study 20 hours, it seems that no doctor meets this bar. In the UK and US, it is virtually impossible for a doctor to study an extra 20 hours on top of their working schedule.
If doctors cannot meet the bar for Uncle Bob’s level of professionalism, I think we should question the logic of this endeavor.
Lawyers Aren’t Professionals
Lawyers study hard to enter practice. According to Uncle Bob though, they aren’t professionals even if they study during practice. That’s because in California they only need to complete 25 CLE study hours each year. In New York 24 CLE study hours each two years are required.
So, in order to be a professional lawyer the time requirement is yearly rather than weekly (as required by Uncle Bob).
My question is why would software engineers need to study 12 times longer than similarly paid lawyers to be declared professional in their domain?
Engineers Aren’t Professionals
Engineers work 50 to 60 hours a week. Sure, students study 20 hours a week (however they do not need to work and study simultaneously) but there doesn’t seem to be anyone in the engineering community (or Reddit) who recommends practicing Engineers study 20 hours week. I guess because that would be seen as unreasonable.
So…
According to Uncle Bob no profession contains (well) professionals. Except software development, which has a band of professionals who have the time and energy to spend 20 hours a week studying on top of full time jobs.
This doesn’t make sense to me, I’m afraid.
I think…It Depends
You know what, I understand what Uncle Bob is talking about. I’ve seen my fair share of lazy developers and people who do not want to improve. Setting an expectation that software developers study to improve isn’t unreasonable.
It wholly depends on the situation, so let us bring the editor into this and think of a list of what the amount of study ‘professionalism’ might depend upon.
Here is an (incomplete) list of dependencies:
The developer’s personal circumstances (family etc.)
The exact nature of a developer’s work
The experience level of the developer
What work the developer is currently performing
The developer’s plans for the future
The background of the developer
Whether the developer is full or part-time
Yet Developers Should Study IMHO
I do believe that software developers still should study, and work to better themselves. Yet it’s not the study that is the most important part, it’s the attitude of software developers in my opinion.
Software developers are more likely to study if they have a good working attitude, but they are also more likely to work well in whatever job they would work in.
Wider Study
I think there is something else to mention here. You can learn from areas outside software development to make yourself a better software developer.
That fencing club or novel can help you learn things that later become useful at work. If you are obsessed with software development to the detriment of everything else there is a price to be paid, and that price may even result in you being a worse software developer than your might otherwise be, and that is something I think we should all think about.
Conclusion
I my opinion simply working longer hours does not make you a software professional. Study does have the potential to make you a better software developer if you study the right things, but does not change your professionalism.
If anyone questions your professionalism based on how much you study, simply ask them if they consider their doctor to be a professional.