My Principles of Work
As part of a personal reflection process, I’ve been trying to itemize the principles I work by and expand on them. I’ve done some great work as a systems builder in the past 20+ years. In that time I’ve never really considered that what I do can be taught, and I’m trying to change that a little bit at a time. I expect that this will be an ongoing effort, and I’ll update it periodically. This is not meant to be an exhaustive or complete list.
- I do what I do because of loyalty and a desire for excellence, not out of obligation. I don’t expect to do work without getting paid, but that is not why I strive to do the best work possible.
- My time is my own to manage. I tend to set my own priorities and I’m a self-starter. If I’m not being productive, there’s little value in sitting in the office just to be there, and I have no problems with working remotely or late at night if that’s the best way to get the work done.
- The deliverables are the output of my work. This may be code, it may be coordination, it may be documentation, it may be training, it may be removing obstacles from team members. The process of doing the work doesn’t matter much if the end product isn’t good.
- My head is in the game even if my ass isn’t in the chair. A large portion of development and architectural work is thinking, not writing. Even when I’m not in the office, and sometimes especially when I’m not in the office, I’m turning over the system in my head, making technical decisions, organizing long-term plans, and communicating with my team. All of these things keep getting easier to do away from the office due to better tools and connectivity. (Thanks, Cellular iPad and Slack)
- Favor consistency where appropriate. It’s almost always better to follow the principle of least surprise, but this doesn’t mean “just keep doing the same thing over and over again because that’s how we’ve always done it”.
- Build vs. buy is a tough decision. My preference is usually to build, unless a solution can be bought that does exactly what is needed, but this is a calculation performed for each individual case. I am wary of pre-built solutions that make bold claims but require endless configuration to actually accomplish anything.
- Not enough people know how to be silly and professional at the same time. Maybe it’s not true for everyone, but I believe that humor is required to do good work. Embrace the cat gifs.
- Iterate but plan for the future. Shipping early is a great goal, but I’m always on the lookout for places where cutting corners is going to bite us, and which would be better addressed earlier. This is always a tradeoff.
- Strike an appropriate balance between formality and practicality. I don’t like to over-engineer short term solutions, but I’m also very wary of getting trapped into supporting bad patterns long-term.
- It is better to get results than to be right. If I disagree with you, I may argue for my own solution, but at a certain point I’ll try to recognize that it may be better to stop arguing and just get something done, even if I don’t think it’s the best path forward. Unless I see a disaster in the making, I’m comfortable raising my objections and then letting the work proceed.
- Arguing isn’t an ego contest, it’s a way to a shared truth. Often when I argue, I don’t want to convince you that I’m right, I want you to show me how I’m wrong and find some common ground we can agree on.
- Be open and honest. When I find a problem, I will raise the alarm right away, take responsibility, and fix it. Especially if it was my error.
- Constantly be on the lookout for problems that need fixing, and fix them. Preferably before they become problems. It’s usually worth the little extra effort to fix something right away than to let it languish.
- Double check before handing a problem off to someone else. I will always do as much research as is reasonable to isolate and replicate the problem. I will triple check my facts if it seems like I’m blaming someone else for an error, and be gentle in the presentation. Corollary: if it seems like I’m often deflecting problems it’s because you probably don’t hear about the ones I can fix myself.
- No one can do their best work when preoccupied with financial or personal problems. I believe in paying people what they’re worth and treating them well. Myself included.