http://www.bennorthrop.com/Essays/2021/always-do-extra.php * Home * Essays * Popular * Resume * Me * [rss] Always do Extra (7 comments) October 13th 2021 --------------------------------------------------------------------- With all the stresses and demands of development that seem to send many of us to the exits early, how is it that some stick around? What's the secret to longevity in this career? One thing I've noticed over the years is that there is at least one thing that seems to be common to every good, veteran programmer I know. They all follow the same deliberate and dare-I-say selfish rule to how they approach their time: Always do Extra. Now before you call "bullshit", let me explain what I mean... Assume there's a reasonable amount of work you need to do to fulfill the base expectations for your job (i.e. your Normal Work) and then there's a little time left over. (I know some may argue this "left-over time" thing, but just go with me). In this remainder time you have a choice: you can do More, Extra, or Nothing (i.e. surf the interwebs). And it's with this decision that every reasonably happy, veteran developer I know distinguishes themselves. They all choose Extra. [AlwaysDoEx] But aren't More and Extra the same thing? No! They sound similar, but they're actually very different. Here's a simple example: Say for this sprint you're assigned two form screens that take user input and then persist it to the database. Pretty straight-forward. This is your Normal Work - the default expectation of what you need to get done to be in good standing on your project. Doing More would be completing those two screens and then taking on a third screen that's just like it. Yes, this would help move the project along faster and make your manager happy, and that's great, but in the long-run, More doesn't give you much. Extra is different than More. Extra is finishing those two screens, but then researching a new library for form validation that might reduce the boilerplate code. Or it's learning ways to protect against common security vulnerabilities from data entry. These little off-ramps from the main highway of Normal Work could be dead-ends and not have any practical value to the project. But they might also be important contributions. And that's the thing with Extra. While the tangible value to the project is uncertain (it could be nothing this time or it could be something), the value to you is real. Extra gives back in a couple ways. The first is philosophical. Extra is about having free will. It's about not being just a drone who monotonously does exactly what their told, but someone who asserts a little control and shapes their our own contributions and experiences in a way that's interesting or meaningful. More practically though, Extra is also good for our careers. Our employability has everything to do with the diversity and depth of our experiences, and so Extra is what helps us broaden ourselves beyond just what's useful on our narrow project. Whereas grinding it out to finish that third screen wouldn't add any new skill or insight to our toolset, a little bit of exploration from Extra could. Now there are of course caveats. Over the years I've seen developers get carried away with Extra. Extra is all they want to do. They spend their days researching new validation frameworks or security vulnerabilities, and then can't get their Normal Work done, those two basic screens. And sure this might be more fun for them, but it sucks for the rest of us because we have to pick up their slack if we want to deliver the project on time. So there are rules to Extra. The first rule is this: Extra must be balanced against Normal Work. Real stuff still needs to get done. This is how we get paid. Shirking our Normal Work in favor of Extra might be more interesting, but it makes us shitty teammates at best, and unethical at worst. Note: there are a few "lucky" among us who find their way into roles where Extra is their Normal Work, and we call these people Architects. ;) The second rule of Extra is that it must be aligned with your Normal Work. If what's on your plate is two form screens, Extra can't be learning about evolutionary algorithms or building a mobile app for your side hustle. It's got to be something that could help the project. It's never something we need to hide, but instead it's something we're eager to share with our teams - ala "hey, I did some research on X, and maybe this is something that could be valuable for us to try". In the end, I hope it's clear that I'm not arguing that we neglect our Normal Work. This is what is expected of us, but the choice is what we do beyond this: Nothing, More, or Extra. In my experience, those who have had longevity in this field always choose Extra. I'd love to hear your thoughts. [BenNorthro] I'm an "old programmer" who has been blogging for almost 20 years now. In 2017, I started Highline Solutions, a consulting company that helps with software architecture and full-stack development. I have two degrees from Carnegie Mellon University, one practical (Information and Decision Systems) and one not so much (Philosophy - thesis here). Pittsburgh, PA is my home where I live with my wife and 3 energetic boys. [tech_rez] I recently released a web app called TechRez, a "better resume for tech". The idea is that instead of sending out the same-old static PDF resume that's jam packed with buzz words and spans multiple pages, you can create a TechRez, which is modern, visual, and interactive. Try it out for free! Got a Comment? Name: [ ] Website: [http:// ] Are you human: [ ] [human] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Comment: [ ] [Post] Comments (7) LarryLobsterino October 13, 2021 Great article, doing extra is what will grow you as a dev. However, I'd argue that sometimes the answer is doing nothing and keeping your sanity. Keep up the good work! DingleBopper October 13, 2021 This is like reading propaganda. Doing eXtRa just makes your employer more money and I highly doubt if you're already a "super veteran excellent engineer" you're gonna learn a whole lot. If you finish what's expected of you, log off and go outside. Ben October 13, 2021 Thanks for writing the article, it puts into words something I've felt before but hadn't seen written out. After finishing my work for a sprint, it's so so tempting to start working on tasks that are planned for next sprint. But you're so right that it's much more sustainable to do something slightly fun, slightly extra with that time. Satire Spotter October 13, 2021 Always do extra for yourself. For your employer, just do your job. Excess growth is burning the world, not saving it. Dean October 13, 2021 Awesome, you were able to put what I've been doing for years into words. Finished ticket(s) ahead of time? Spend some of this time learning new or better ways of doing things. Unlike More Work, Extra Work isn't"free" work for your employer. Sure, it may improve your Normal Work over time, but mostly it improves your skills as a professional. Paul Graham October 13, 2021 I've found that the best engineers spend their time either reading or writing essays about software. Philip October 13, 2021 I think some people are misconstruing "Extra Work" as burning the midnight oil. That's not the case. "Extra Work" might be 15 minutes of investigation at 2:30pm after you've picked up a ticket from the sprint backlog. Great article. Code Snippets | Highline Solutions | Cruft4J