March 29, 2016
From nczonline.net, with love.

The Art of Delegation

Hi everyone,

I've written several times about how the most difficult part of software engineering isn't the software, it's the people. One of those people skills that is very hard for software engineers to embrace is the art of delegation. By delegation, I mean assigning work that you could do yourself to someone else. Delegation strikes at the crossroads between ego and trust, and so is particularly difficult when you first get started. However, mastering delegation is something that will serve you well in your career, so it's worth working to get better at it.

Delegation usually pops up as a software engineer is excelling at their job. Managers start asking you to teach others how to do what you do and think the way you think. They want to formalize your processes because they work so well. As a result, you spend less time coding and more time interacting with others. Less time coding means you can no longer do the same volume of work that you previously did, and your first instinct tends to be to work more hours to make up for it.

Before long, you're burned out and start getting grumpy. You're working so hard and while excited by your new-found responsibilities, things are getting overwhelming. The only real option is to do less work. You can't give up the new work you've been asked to do, so you must give up some of the coding work that was previously your entire job. This is when stress sets in.

Your ego will tell you that your job is to write code and giving that up means you're not really doing your job. Plus, how can you really trust someone else to do it? If it doesn't get done, or get done correctly, it'll be even more work for you. This causes many to double-down on working more hours to compensate. Others, however, start to ask themselves this question: "is this something that I absolutely need to do, or is it something I just want to do?" When you can answer that question, you've made your first step towards effective delegation.

Ultimately, delegation is about trust. First, you need to trust your colleagues. The reason you're not a one-person team is because multiple people are more effective than one person. You need to trust your teammates and they need to trust you. (If you can't trust them for some reason, then that's a bigger problem that needs addressing.) Give your teammates the opportunity to impress you by trusting them, just as your manager has trusted you with more responsibility. Learning to let go is difficult, but once you do, you'll be even more effective and valuable.

Be well.

-N
JavaScript WeeklyIt costs $100/month to run this newsletter, and I couldn't find a sponsor for this edition. Please consider donating to support my work.

Recommended Links

ES Module Detection in Node (wiki)
There is a massive ongoing effort to figure out how ECMAScript 6 modules will work in Node.js. Part of the problem is providing interoperability between CommonJS and ES6 modules. This wiki page gives an overview of the current state of the discussions, various proposals along with pros and cons, and which proposals have been rejected. 

The Copy & Paste Guide to Your first Service Worker (article)
Service workers are still pretty new, and good tutorials are starting to be released. This nice, short article walks you through the basics of setting up your first service worker on a site. It assumes you've never done this before and so focuses on the basics you need to understand rather than digging too deep into theories. If you've been wanting to try a service worker out and didn't know where to get started, this article is for you.

Houdini: Maybe the Most Exciting Development in CSS You've Never Heard Of (article)
As the title of the article suggests, you may not have heard of Houdini. Houdini's goal is to provide a set of low-level browser APIs that let developers hook directly into the rendering and layout engine. Imagine writing polyfills for custom CSS properties or values, or completely defining what should be drawn on the screen. Houdini aims to make CSS development as fast and iterative as JavaScript development and will likely change the way CSS evolves in the future.

Recommended Book

Randomness and probability are probably concepts you don't think too much about. Reading The Drunkard's Walk will change that forever. Through looking at real-world situations, this book explains probability and the mathematics behind it in an easy-to-understand way. What's more, it explains the many ways that people misunderstand probability and how, sometimes, such mistakes can cause significant problems. From court cases to simple coin flips, a better understanding of probability and randomness will help you to make better decisions, and this book is a great step in that direction.

Recently on NCZOnline

Mimicking npm script in Node.js
I'm a big fan of npm scripts[1] and have been using them in all of my projects instead of a standalone build system. The feature I like the most from npm scripts is the ability to run command line executables that are installed in your project's node_modules/.bin directory. That allows you to, for example, install...

Reflections on ESLint's success
It's hard for me to believe, but I first conceived and created ESLint[1] in June 2013 and first announced it's availability in July 2013[2]. As frequent readers might recall, the primary goal of ESLint was to create a linter with rules that could be loaded at runtime. I had seen some problems in our JavaScript...

React and the economics of dynamic web interfaces
I've been doing web development since 2000, and in that time I've seen eras marked by libraries and frameworks come and go. The Ajax era began around the same time as the jQuery era began, the Backbone era began several years later, and the React era really began about two years ago. Each of these...

Feedback

Love this newsletter? Hate it? Have suggestions for how to make it better? When you subscribe to the newsletter, you can just reply to send in feedback.

Ready to subscribe?

Join 2,000 others and subscribe to get the newsletter delivered to your inbox every other Tuesday. 
If you enjoy this newsletter and would like to support my work (including the newsletter, my blog, my books, and ESLint), please consider becoming a patron. I provide a lot of free content and your support allows me to spend more time doing so, and there are great rewards for patrons.
Copyright © 2016 Nicholas C. Zakas, All rights reserved.


unsubscribe from this list    update subscription preferences