Jekyll2023-12-21T16:32:16-06:00https://tims.io/feed.xmlQuips & QuirksSoftware Engineering Management thoughts and quandaries.Tim SchnellThe Director Function2023-12-15T00:00:00-06:002023-12-15T00:00:00-06:00https://tims.io/the-director-function<p>TLDR; Here’s the .PPPPT file of things to do as a Director of Engineering.</p>
<p>There’s a lot of advice out there on the internet for the entry-level positions in software engineering. Do you want to know how to be a good Senior Engineer? Solve lots of problems, ideally with a growing sense of technical, product, social and corporate complexity.</p>
<p>If you want to learn how to make the leap from Senior Engineering Manager to Director, the answer is similar but with less tangible output and outcomes to latch on to. All I can do is speak from my own experience but here is how I think about the broad categories of leadership on the manage-y side of the career ladder.</p>
<h3 id="for-managers-and-senior-managers">For managers and senior managers:</h3>
<p>You deal with the day-to-day execution and performance of your team. You unblock the team, clarify goals, set expectations and communicate to the broader ecosystem what you are doing.</p>
<h3 id="for-directors-and-senior-directors">For directors and senior directors:</h3>
<p>You are still, primarily focused on execution but the great ones are frequently learning and applying themselves to the grand endeavor of contributing to “strategy”. Not only are you responsible for <em>doing things</em> but you are also responsible that those things are the <em>right things</em> and that they generally align to the vision, mission and strategy of your company and area.</p>
<h3 id="for-vice-presidents-and-up-lets-not-separate-out-the-c-suite-today">For vice presidents (and up, let’s not separate out the C-suite today):</h3>
<p>Congratulations, you are in charge of the soul-crushing, anxiety-inducing responsibility of setting the direction and strategy. Yes, you will help with execution and you will frequently have to jump in to the messiest situations to support your directors and managers. But your primary job is to look at the vastness of time and space, the wavering and unending distance of the Sahara desert, the dense and inscrutible markings of the slightest path through the Amazon and point your finger and say, “That way”.</p>
<h2 id="the-director-function">The Director Function</h2>
<p>Today however, we step back from the abyss and we look at what it is that you will do (or perhaps currently attempt) as a Director of Engineering. In my own history, I have spent years in the nebulous “Head of Engineering” role at a few small startups and I have also spent time in a specific “Director of Engineering” role. While I have been in board rooms, “senior leadership” offsites, and managed everything from a team of four to the entire engineering vision, the Director position is the one that I have inhabited the most thoroughly.</p>
<p>So let’s break the Director role down into categories of work. Depending on the company, team size, culture, and a hundred other variables, each Director position is going to be somewhat unique and the time and effort in each of these categories will swing wildly between roles and even as circumstances change in the same role. <em>People, Product, Process, Public and Tech,</em> these are the five categories of work that you will see on your docket each and every day when you are trying to sort through all of your todo lists.</p>
<h3 id="people">People</h3>
<p>As a Director of Engineering, your bread and butter is still managing people. You are coaching and training managers underneath you on how, in turn, to coach and train their teams. You are challenging people directly when you foresee a performance problem or you are giving that extra support to a manager who needs to have a difficult conversation.</p>
<p>One of the biggest differences for people management now, in comparison to a Senior Manager, is that you will need to be able to clearly articulate how you think about managing people. When do you promote, when do you fire, how do you exert the appropriate amount of pressure into the system and when do you give someone or a team some space to sort things out on their own. You can do this sort of work by instinct as a Senior Manager, and if you are a manager with relatively high emotional intelligence, there is a good chance that this sort of work comes natural to you. It may even be difficult to explain your actions to someone new to management because you just do what is instinctually correct.</p>
<p>In an effort to hone these instincts into a proactive management philosophy here are some things that you can try:</p>
<ul>
<li>Expand your sphere of influence for people management and be seen as a leader in this space for the company.
<ul>
<li>Present to your team your approach for career development</li>
<li>Mentor a more junior manager with a difficult team member</li>
</ul>
</li>
<li>Participate in any HR-related management committees
<ul>
<li>This could be, helping to write or update the company’s career ladder documentation</li>
</ul>
</li>
<li>Plan a book club for your team on a career-related book
<ul>
<li>I recommend starting with <a href="https://staffeng.com/book">“Staff Engineer: Leadership beyond the management track” by Will Larson</a>.</li>
</ul>
</li>
<li>Get your own leadership coach
<ul>
<li>Everyone needs help and if you are struggling with making time for some of this work then find someone who can keep you on track.</li>
</ul>
</li>
</ul>
<h3 id="product">Product</h3>
<p>The greatest Directors have an uncanny sense of what is right for their product. Not only in the same broad, strategic sense that a VP would have, but in the day-to-day minutiae of building software. Product Managers work best with a strong Engineering counterpart that can help make tough trade-offs between the effort involved and the ultimate impact to the customer.</p>
<p>I don’t believe that “some people just have it” when it comes to product-sense but rather our gut feel and intuition is built on top of a strong and constant exposure to the problem and surrounding market conditions. You have to be right most of the time when influencing Product direction and you have to be confident. The toughest and most critical decisions also tend to attract the largest peanut gallery of people, all of whom are willing to poke holes in your plan but very few are willing to propose their own. To be great at this you have to be confident and resolved, while simultaneously listening to your team, peers and leaders to adjust and flex as needed.</p>
<p>If you don’t feel like you could swap into the PM role for a period of time then here are some things to try:</p>
<ul>
<li>First and most obviously, use your own product
<ul>
<li>Build something real with it, try and use it like a customer truly would</li>
</ul>
</li>
<li>Do your own competitive analysis
<ul>
<li>Hone your product sensibilities in relation to your company’s business model</li>
<li>The best way to know you are right and have confidence is to spend time doing competitive analysis</li>
</ul>
</li>
<li>Talk to Product leaders in other parts of the organization</li>
<li>Make your own proposals for specific features and show them to your PM team
<ul>
<li>Ask for critiques, often PMs will be happy to see an engineering leader willing to put skin in the PM game</li>
</ul>
</li>
<li>Join customer calls every so often, especially ones that are escalated</li>
</ul>
<h3 id="process">Process</h3>
<p>Everyone hates process. Good process is good because you won’t be able to tell that any process has happened at all. Also, it is your job to grow and scale processes so that your teams can grow and scale in turn. If you are a Senior Manager then you likely have established a few processes that work well for your team, now it’s time to apply these processes more broadly. This is a good way to learn how to influence outside of the culture of your own team. Maybe your processes don’t work well for other teams, is there a way to adapt the process to be more inclusive of other perspectives? How flexible can you make the process without losing the core value it provides?</p>
<p>Pick a few places to expand on what processes work well for your team and find ways to apply them more broadly:</p>
<ul>
<li>Create/own SLOs for bugs, flaky tests, tech debt</li>
<li>Run a department-wide team meeting</li>
<li>Improve common processes for collaborating with the Support team</li>
<li>Investigate pain points in existing department-wide process</li>
<li>Take on a leadership task that goes beyond your own scope
<ul>
<li>Perhaps this is improving documentation</li>
<li>Clean up the backlog</li>
<li>Document “unwritten” policies</li>
</ul>
</li>
</ul>
<h3 id="public">Public</h3>
<p>How much you participate as a public leader in the broader industry is completely up to you but it is a way to grow leadership presence. One of my own weaknesses and a common one for many, is practicing presentation skills. Speaking in front of your own team is one thing, but presenting to hundreds or thousands of people requires effort, timing, charisma and planning.</p>
<p>There are plenty of leaders with rough edges in this space but a great way to distinguish yourself is finding your own voice and style for broad communication. I sometimes joke that being a leader is at least 20% having an “entertainment factor”, if you can make an hour long status update (is this a meeting that should be an email?) fun and exciting, or at least interesting, your team will love you for it.</p>
<p>Here are some easy places to start:</p>
<ul>
<li>Contribute to or write a blog post either on your own blog or ideally for your company</li>
<li>Present at a local meetup group</li>
<li>Take a current meeting and spice it up…
<ul>
<li>Add some memes, tell a story don’t just rattle off things from a list</li>
</ul>
</li>
</ul>
<h3 id="tech">Tech</h3>
<p>Finally, unironically last on the list, you should feel comfortable contributing to technical decisions. This is an important aspect of the job but also the area where you have the least expertise, there are plenty of people on the team who can own technical contributions. Your primary job here is to ask questions and watch for over-engineered solutions. Remember, the technical solution must match the customer impact in effort.</p>
<p>You should have an ROI (return on investment) calculator in your head and if an engineer starts describing a multi-week/month solution to a low impact problem it is your responsibility to pull the team away from sunken-cost fallacy and find another way or shut it down. This can be a gut-wrenching, painful experience at times. Once you give an engineer a problem and they become invested it is so hard to turn it back off. You have to show the team that it is not worth solving with the current constraints. Ultimately, you should have some strong Tech lead partners in this category but you are still responsible for poor technical decisions.</p>
<p>If you feel like you have lost your coding mojo:</p>
<ul>
<li>Gain expertise in the codebase by writing a test, fixing a bug, or writing documentation</li>
<li>Understand the infrastructure model for your major services
<ul>
<li>What technologies do they use, how are they setup from an infra/devops perspective</li>
<li>What are the potential scaling and performance challenges</li>
</ul>
</li>
<li>Learn about the system your team uses for tracking performance and health in your services, become an expert on this data and what we can learn from it</li>
</ul>
<h2 id="just-do-all-the-things"><em>Just</em> do all the things…</h2>
<p>That’s it, surely you can tackle all five of these categories all the time, everyday on top of the regular fires, mayhem and chaos that you get to deal with. Unsarcastically, this is a lot to keep in your brain. Don’t feel pressure to be hitting it out of the park on every topic, every leader will naturally gravitate to a subset of skills within these major areas. That’s what makes you, you.</p>Tim SchnellTLDR; Here’s the .PPPPT file of things to do as a Director of Engineering.How to Stream Video Games to Zoom2020-04-03T00:00:00-05:002020-04-03T00:00:00-05:00https://tims.io/how-to-stream-to-zoom<p>One of the big challenges with working at a remote/distributed company is that it is difficult to replace the watercooler, off-the-cuff team bonding experience. Video calls tend to focus on business and meeting efficiency and it is awkward to try and shoot the breeze for a few minutes and learn something personal about each other.</p>
<p>One solution that my team has discovered is video games, and in this case specifically, <a href="https://store.steampowered.com/app/728880/Overcooked_2/">Overcooked 2</a> on the Nintendo Switch. For deeper thoughts on how to socialize from home, see my <a href="https://tims.io/2020-04-02-how-to-team-build-remotely/">companion article</a>, this article will focus on the nuts and bolts of getting your computer setup.</p>
<h2 id="what-you-will-need">What you will need:</h2>
<ol>
<li><a href="https://www.nintendo.com/switch/">Nintendo Switch</a> (Not the Switch Lite)</li>
<li><a href="https://www.amazon.com/gp/product/B07VHZC2T6/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">Nintendo Dock</a> (I prefer this after-market one)</li>
<li><a href="https://www.amazon.com/gp/product/B07C6KCBYB/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">Mirabox HDMI Capture Card</a></li>
<li><a href="https://obsproject.com/">OBS Studio</a></li>
<li><a href="https://zoom.us/">Zoom</a></li>
</ol>
<h2 id="setup-capture-card">Setup Capture Card</h2>
<p>The <a href="https://www.amazon.com/gp/product/B07C6KCBYB/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1">Mirabox Capture Card</a> is a bit of an investment at $99.99 but it is still on the low-end for these devices and roughly half the cost of the more premium <a href="https://www.amazon.com/Elgato-Game-Capture-HD60-PlayStation/dp/B07VWXCXM7?th=1">Elgato Capture Cards</a>. I’m not looking to be a professional Twitch streamer so the Mirabox suits my needs just fine.</p>
<p>The hardware setup is pretty straightforward. Your Nintendo Dock HDMI plugs directly into the Mirabox, which then plugs into your computer via USB 3.0. I would also recommend using the HDMI loopout to forward the signal to a spare computer monitor. Trying to play directly from the Zoom stream will prove to be too laggy to be useful.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.16.33 PM.png" alt="" /></p>
<p>Just a note, I had difficulty getting the Mirabox to register properly when attaching it through a USB dock so I ended up connecting it directly to my Macbook.</p>
<h2 id="setup-obs-studio">Setup OBS Studio</h2>
<p>So after you download and install OBS Studio, you should be able to open it and add your Mirabox as input.</p>
<p>Once you have OBS open, click the “+” sign under “Sources” and select “Video Capture Device”.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.26.19 PM.png" alt="" /></p>
<p>Next, give the device a name and then select “Mirabox Video Capture” from the dropdown menu.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.26.41 PM.png" alt="" /></p>
<p>Now you should see a stream from your Nintendo inside of OBS.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.28.33 PM.png" alt="" /></p>
<p>You can repeat this same process for audio by adding an “Audio Input Capture” device as well to bring in sound from the Nintendo. I found this process to be a bit finicky so I did have to do some googling and adjust some Mac settings the first time.</p>
<p>Ok, the last thing we need to do is view a Window preview of the screen so that we can screenshare just the Nintendo viz Zoom and not all of the OBS options and chrome.</p>
<p>Right-click on the preview and select “Windowed Projector (Source)”.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.36.00 PM.png" alt="" /></p>
<p>This will give us a new window with just the video capture screen.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.36.36 PM.png" alt="" /></p>
<h2 id="setup-zoom">Setup Zoom</h2>
<p>Now that we have done all the tricky bits, setting up the Zoom call should be pretty familiar.</p>
<p>First, start a meeting.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.54.31 PM.png" alt="" /></p>
<p>In my case I like to run the meeting from my work laptop and add my personal laptop to run the game screen share.</p>
<p>Now, share your screen in Zoom and select the Windows Project screen to share and make sure to hit the check mark to “Share computer sound”.</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.55.48 PM.png" alt="" /></p>
<p>Now you should be looking at a stream of your Nintendo Switch!</p>
<p><img src="/img/Screen Shot 2020-04-03 at 3.56.16 PM.png" alt="" /></p>
<p>That’s it! From my experience sharing the screen is useful as we usually have a few people playing and a few more spectating and rotating out taking turns. Plus, for Overcooked specifically, half the fun is yelling instructions at team members through the chaos as everyone learns how to work together. Now if that isn’t team building, I don’t know what is.</p>Tim SchnellOne of the big challenges with working at a remote/distributed company is that it is difficult to replace the watercooler, off-the-cuff team bonding experience. Video calls tend to focus on business and meeting efficiency and it is awkward to try and shoot the breeze for a few minutes and learn something personal about each other.How to Team Build Remotely2020-04-03T00:00:00-05:002020-04-03T00:00:00-05:00https://tims.io/how-to-team-build-remotely<p>In a co-located company it is easy to take for granted how many opportunities there are to get to know your colleagues as humans, there’s the water cooler, coffee maker, lunch cafeteria, weekly happy hours, company picnics, movies, holiday parties, the list is endless in all the tiny ways we learn and bond with each other.</p>
<p>When you work for a remote, fully distributed company, this becomes something to actively solve. One way to partially solve this problem is to do what many distributed companies do. Invest heavily in one or two big events a year where everyone travels to the same city, alternates between drinking caffeine and booze and spends every waking hour together for a week. I’m not knocking this by the way, this is great, it’s fun and everyone holds on to those crazy fun moments for six months or a year until the next one.</p>
<p>But now what do we do? Covid-19 has pushed everyone to be a remote company and, simultaneously, prevented everyone from this one proven solution to connect with each other.</p>
<p>Even without travel disappearing overnight, teams function better when us humans know and care about each other personally (spoken from a true introvert). The answer is to treat these social events as part of work.</p>
<p>In a co-located company you do these things because it’s almost impossible not to. You go to get a drink, there’s a person, you have to eat lunch, so does everyone, you need to decompress a bit, there’s a bar with a great happy hour a block away. In this environment, it’s easy to view these things as almost, in the way of the actual work, and they can be if that is all you do.</p>
<p>In a distributed company everything veers sharply the other direction. You can code, or write emails or documents, plan things in spreadsheets and an entire day goes by the next time you come up for air. It’s absolutely wonderful for doing individual work (once you teach yourself how to be disciplined in your home).</p>
<p>But, in this environment, the system can also be less than the sum of its parts. If everyone is moving in their own individual direction, you lose that extra magic that is capable of moving mountains. Instead, everyone is just running around pushing their own mole hills and ignoring the bigger picture.</p>
<p>Now, you can invent processes and meetings and check-ins. You can do scrum and hire black-belt project managers who know how to burndown chart and write JIRA tickets and email. This would work in an emotionless void and the trains would run on time.</p>
<p>Or, you can play video games.</p>
<p>The real solution here is a vast array of tiny things. You can do random Slack coffee chats (for extroverts), morning team coffee, afternoon team tea (for the Brits), the trick is to do two things. One, do things that expose people to others outside of their immediate area. Two, do things as a team, with the people you work with every day.</p>
<p>The second one is where video games come in. If you are already meeting as a team once a week or every other week set aside half an hour as a social call. This is a step in the right direction. If you find it hard to force a social chat on the team, playing a game is a great way to get things moving.</p>
<p>In my case, the entire team shares video games as a hobby but there are also games with a very low barrier to entry.</p>
<p>Here are some ideas.</p>
<h3 id="1-drawful-2">1. Drawful 2</h3>
<p>Right now <a href="https://jackboxgames.com/drawful-two/">Drawful 2</a> is free on most platforms to help keep people sane while we shelter-in-place. It also only requires one person to have the game and everyone else can join via a phone or tablet. I recommend getting it on Steam, it should run on a standard Macbook, that will make it easy to stream the game over Zoom while everyone follows along on their phone.</p>
<h3 id="2-jackbox-party-pack">2. Jackbox Party Pack</h3>
<p>Jackbox makes a ton of <a href="https://jackboxgames.com/party-pack-six/">low barrier-to-entry games</a> like trivia games and other party games that can all be played with a phone.</p>
<h3 id="3-overcooked-2">3. Overcooked 2</h3>
<p>This is veering heavier into gaming territory but <a href="https://store.steampowered.com/app/728880/Overcooked_2/">Overcooked</a> is just a great experience trying to work together as a team. If you have a Nintendo Switch and want to give this a try, check out my article on <a href="https://tims.io/2020-04-02-how-to-stream-to-zoom/">how to get setup to stream on Zoom</a>. The downside here is the game maxes out at 4 players, but there is still opportunity to yell at your teammates from the peanut gallery for any spectators.</p>
<h3 id="4-mario-kart">4. Mario Kart</h3>
<p>Since you’ve got your <a href="https://tims.io/2020-04-02-how-to-stream-to-zoom/">Switch setup to stream</a>, <a href="https://mariokart8.nintendo.com/">Mario Kart</a> is a great game to try a company or team tournament. Remember those dart or ping pong table tournaments you would have in the office? This is the remote version of that. This can get expensive, as every participant has to purchase a copy of the game. For the non-gamers something like a tournament is still an opportunity to tune into something social and cheer on your teammates.</p>
<p>There are a ton of other games that would work in this way, many on your phone with low overhead. We have just started scratching the surface of how to embed this into work. Right now, as a team, for whomever wants to participate, we try and set aside an hour once or twice a month to play a new game and catch up with each other.</p>
<p>Now that we’ve been doing it for a few months, I’ve noticed that everyone genuinely looks forward to these times together and hopefully we are all learning a little bit more about the humans that we work with everyday.</p>Tim SchnellIn a co-located company it is easy to take for granted how many opportunities there are to get to know your colleagues as humans, there’s the water cooler, coffee maker, lunch cafeteria, weekly happy hours, company picnics, movies, holiday parties, the list is endless in all the tiny ways we learn and bond with each other.On Hiring2019-06-28T00:00:00-05:002019-06-28T00:00:00-05:00https://tims.io/on-hiring<p>One of the first things that you have to develop as a new manager is a philosophy around assembling your team. One could even suggest that your ability to bring together a great team is the <em>entire</em> job of management. A great team can move mountains, a great team begets further greatness; it’s a perpetual motion machine if you get it right.</p>
<h3 id="hiring-senior-engineers">Hiring Senior Engineers</h3>
<p>The first time I was tasked with expanding a team I spent a lot of time interviewing senior-level candidates and I learned a few things:</p>
<ol>
<li>The really excellent Senior Engineers rarely fall into your lap, you have to work at it, have a network, and be willing to circle back with people sometimes for years until the timing can work out.</li>
<li>Attitude is everything. A Senior Engineer who already knows everything and is considering blessing you with his/her employment is probably not actually a Senior Engineer. The great ones have a growth mindset and are always looking for a new challenge.</li>
<li>Do you actually have a challenging problem to solve? Sometimes the work is a grind and a grind is more suited to junior/mid-level engineers who can cut their teeth on something and still get some personal growth out of it.</li>
</ol>
<p>So hire based on the problems you expect to solve over the next 6-12 months. Justify your hiring plan against the expected work, at least quarterly. This will help optimize the work for potentially more junior and mid-level hires. Turns out, after attempting to only hire Senior Engineers I realized that there just aren’t that many Senior Engineers out there in this hyper-competitive landscape that also match my own team and culture expectations.</p>
<p>The biggest thing I’ve learned and incorporated as part of my “secret-sauce” to hiring is to structure interviews around hiring for growth trajectory. Finding the right Junior or Mid-level Engineer with aspirations, work ethic and ambition has consistently blown me away. It is our job after all, to not only hire people that can help us but to take a chance on those early in their career who just need someone to give them a shot. Especially when considering diversity and inclusive goals, there are many more opportunities with people at a slightly earlier stage in their career that are willing to put in the work.</p>
<h3 id="hiring-juniormid-level-engineers">Hiring Junior/Mid-level Engineers</h3>
<p>Finding the right person is still very hard, attempting to measure someone with a high growth trajectory in a short interview means that you will get it wrong a few times. Also, expect 10x the resumes to sift through.</p>
<p>A few things to look for:</p>
<ol>
<li>I like to find people who maybe had a different, previous career, maybe they ran their own business or had a startup briefly. While these people may be junior in skill level, they bring a mature perspective to the job and know what it takes to get something done.</li>
<li>In general, people who have had to push through some hard extenuating circumstance are on high growth trajectories, maybe they worked their way through college or contribute to open source in some fashion.</li>
<li>People who have a real appreciation for the opportunity and bring some humility to the table are diamonds in the rough because they know how ultimately spoiled we are in tech and know what it’s like to work outside of our industry.</li>
</ol>
<p>My hope, as a manager, is that people remember me as a supportive foothold as they climb on to bigger and better things. I still wake up feeling grateful for those that took a chance on me all those years ago when I took a pay cut to go from Retail Management to Entry-level Software Developer. The best job in the world is to send the ladder back on down and then help equip and coach others to achieve their goals. Chances are, if I’m doing a great job at this, then the people working together on the team just might make a dent in the universe.</p>
<p>As it turns out, I’m hiring at <a href="https://www.elastic.co/about/careers/" title="Elastic Careers">Elastic</a>. If you see a role that’s interesting and want to chat about it hit me up on <a href="https://twitter.com/timductive" title="twitter">twitter</a> or send me an <a href="mailto:tims@email.com" title="email">email</a>.</p>Tim SchnellOne of the first things that you have to develop as a new manager is a philosophy around assembling your team. One could even suggest that your ability to bring together a great team is the entire job of management. A great team can move mountains, a great team begets further greatness; it’s a perpetual motion machine if you get it right.Thoughts on being an Engineering Director2019-05-23T00:00:00-05:002019-05-23T00:00:00-05:00https://tims.io/thoughts-on-being-an-engineering-director<p>Recently, I’ve been reflecting on my last few years in an Engineering Director role and how I would define the role today. Here are a few things I had to learn, mostly the hard way, by screwing it up at first.</p>
<h3 id="1-communicate-simply-based-on-your-audience">1. Communicate Simply Based on your Audience</h3>
<p>You will need to spend most of your time interacting with other cross-functional leaders, practice describing engineering problems as simply as possible with the direct business effects baked into the conversation. <em>“We need to move our data queue over to AWS because it is currently super expensive and insecure.”</em></p>
<h3 id="2-say-no">2. Say No</h3>
<p>Saying no doesn’t feel great but it’s what everyone expects from you, at least in my experience Engineering tends to be the first leader to think through every critical detail of a project and explain what’s hard or things we shouldn’t do. Say no to your boss, your peers, your team, to projects and distractions, to suggested promotions and firings, say no. Say yes to whatever is best for the business.</p>
<h3 id="3-repeat-important-things">3. Repeat Important Things</h3>
<p>In every Engineering meeting you run, remind yourself that your team is only going to take away one sentence from everything you say. Make sure it’s the right sentence. Repeat everything that’s important constantly. Learning how to ensure the correct take away is hard and requires iteration. Ask people in 1x1s what they took away from an important meeting, it will surprise you.</p>
<h3 id="4-your-job-is-more-product-than-you-think">4. Your Job is More Product than You Think</h3>
<p>Engineers and Product can sometimes have a hard time getting along, it’s built in to the incentivization structure. Product will want to ship and everything would be better if it was done yesterday. Maybe it’s unfair to pin this on product, think about how much better the business would be if everything was magically done yesterday. It’s your job to help them understand the trade-offs. <strong><em>People will be upset if you miss a deadline, they will be more upset if you release something shitty.</em></strong></p>
<p>Treat Product Managers like members of your engineering team and sometimes that means sitting them down to have a hard discussion. Always let your Product counterpart (Director of Product) know you did this, but don’t wait for that person to do it for you. Your miles may vary on this one, the right way to approach it depends on your relationship with your peer but at the end of the day, don’t let a situation fester because you are waiting for someone else to deal with it. One Product person can destroy a whole team of engineers.</p>
<h3 id="5-you-are-the-boss">5. You are the Boss</h3>
<p>Everything you say will be scrutinized for secret meaning so try not to make glib or overly dire remarks. You are also the man, the face of leadership and unpopular decisions. You will be frustrated with your peers or boss or decisions but your team can’t see this. Treating your direct reports like peers or friends that you can bitch to is the quickest way to dysfunction. You have to be honest without undermining your boss or company. This is hard.</p>
<h3 id="6-dont-protect-people">6. Don’t Protect People</h3>
<p>Or, strategically don’t protect people on your team who are ready to handle it. Your most senior engineers and managers should be able to sub in at the leadership table for you. There are others on the team who can’t affect things and will just have anxiety if they know everything you do about something, they don’t need to know. You job is not to be a shit umbrella but rather to prepare people to handle shit.</p>
<h3 id="7-code-is-low-impact">7. Code is Low Impact</h3>
<p>You don’t have time to code on mission critical things anymore, it’s tough to let go. If you have 2 hours and you think you want to code, first make sure your todo list is done and that <em>you have tracked down any gut feelings about things that you feel may be headed off track</em>. These will keep your team way more effective than a bug fix you hack together. Yes, figure out ways to stay sharp and technical as much as possible, but congratulations you are in management, coding skills will atrophy.</p>
<h3 id="8-be-honest">8. Be Honest</h3>
<p>As long as you keep being honest with your team they will be surprisingly resilient to everything that you throw at them. This means, be vulnerable when you are anxious or don’t understand, be candid and tough with someone who needs it, be caring and kind with someone who needs it, and be yourself, nobody else will lead exactly how you do.</p>Tim SchnellRecently, I’ve been reflecting on my last few years in an Engineering Director role and how I would define the role today. Here are a few things I had to learn, mostly the hard way, by screwing it up at first.Outcome-Oriented Thinking for Teams2019-03-14T00:00:00-05:002019-03-14T00:00:00-05:00https://tims.io/outcome-oriented-thinking-for-teams<p><strong>Outcome-oriented thinking</strong> is the ability to focus on the desired results, instead of the process, effort or tactics that you take to get there. It is the idea that nothing else matters other than achieving the results. The process that you take or the effort that you put in, while they are contributors to the final outcome, are not necessarily the drivers to focus on.</p>
<p><img src="/img/2019/03/Screen-Shot-2019-03-12-at-5.46.03-PM-830x461.png" alt="" /></p>
<p><strong>When do you use it</strong>?</p>
<p>An important distinction to make right off the bat is that different situations require us to use different mental models, in fact I would argue that we value the wisdom obtained from experience not because it gives us the answers, but because it gives us new frameworks or modalities to use when solving problems.</p>
<p><strong>Outcome-oriented thinking is best used when we are trying to achieve something experimental by design, something that will require flexibility and failure along the way.</strong></p>
<p>Examples include: inventing the light bulb, finding product/market fit, teaching/learning a new subject, etc…</p>
<p><strong>When do you NOT use it?</strong></p>
<p>In contrast, a common mental model that serves as an antithesis to outcome-oriented thinking is <strong>process-oriented thinking.</strong> Process-oriented thinking is the ability to focus on discipline and incremental progress instead of the outcome. This is a good way to think when attempting an outcome that has a well-understood path to success.</p>
<p>Examples include: training for a marathon, losing weight, saving money, etc…<figure class="wp-block-image"></figure></p>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-1024x520.png" alt="" class="wp-image-2404" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-1024x520.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-300x152.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-768x390.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-830x421.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-230x117.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-350x178.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.07.33-PM-480x244.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<h4 id="because-we-work-on-teams-with-other-humans-its-not-as-simple-as-setting-a-goal-and-saying-go">Because we work on teams, with other humans, it’s not as simple as setting a goal and saying “Go!”</h4>
<p>First let’s start with a different example. <figure class="wp-block-image"></figure></p>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-1024x391.png" alt="" class="wp-image-2406" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-1024x391.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-300x114.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-768x293.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-830x317.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-230x88.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-350x133.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM-480x183.png 480w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.15.28-PM.png 1180w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p>In 1943 Abraham Maslow released his initial work describing humanity’s hierarchy of needs.<figure class="wp-block-image"></figure></p>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-1024x558.png" alt="" class="wp-image-2407" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-1024x558.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-300x163.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-768x418.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-830x452.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-230x125.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-350x191.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.17.01-PM-480x262.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p>The idea is that humans have different, cumulative levels of needs in order to achieve happiness based on their current position in life. Once we have acquired a certain level of happiness we immediately focus on the next one until we achieve “self-actualization” or our full potential in life.</p>
<p>It would be difficult to focus on our psychological needs while lacking some basic needs like food, water and shelter. It would also be difficult to focus on our full potential while lacking a sense of belonging, personal relationships and feelings of accomplishment.</p>
<p>If the outcome we aim for is happiness, as described by achieving our full potential, we first have to establish the lower levels in the hierarchy of needs.</p>
<p>Similarly, if we are attempting to achieve an outcome, as a team, with the full flexibility, failure and trust of outcome-oriented thinking, then we first have to establish a hierarchy of trust and accountability.</p>
<h2 id="outcomes-as-teams">Outcomes as Teams<figure class="wp-block-image"></figure></h2>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-1024x504.png" alt="" class="wp-image-2409" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-1024x504.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-300x148.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-768x378.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-830x409.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-230x113.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-350x172.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.28.29-PM-480x236.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p><strong>How do we do it?</strong></p>
<h3 id="transparency">Transparency<figure class="wp-block-image"></figure></h3>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-1024x493.png" alt="" class="wp-image-2410" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-1024x493.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-300x144.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-768x369.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-830x399.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-230x111.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-350x168.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-4.51.33-PM-480x231.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p>The base of our pyramid is <strong>transparency</strong>. Transparency means that we are communicating our failures and roadblocks. Everyone understands that the outcome may require fits and starts of experimentation, there is a healthy, blameless dialogue of what is going well and what isn’t. The team is learning together and has trust that everyone is making intelligent decisions in an attempt to reach the outcome. We are asking ourselves, “how can we deliver value along the way?”</p>
<h3 id="output">Output<figure class="wp-block-image"></figure></h3>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-1024x498.png" alt="" class="wp-image-2411" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-1024x498.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-300x146.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-768x374.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-830x404.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-230x112.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-350x170.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.03.27-PM-480x234.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p><strong>Output</strong> is the middle layer of the pyramid. Output is the work that we are producing on a daily basis. We are working hard, with a sense of urgency, but we also know our own limits and when we need a step-function increase in results we stop and think about how we can work smarter instead of even harder. Heroics, while sometimes necessary, are a negative influence to a sustainable, repeatable process. Most importantly, output without learning and without achieving the outcome means nothing.</p>
<h3 id="table-stakes">Table-stakes</h3>
<p>Transparency and Output are both table-stakes to outcome-oriented thinking as a team. They have to be there but they are not the level to optimize against for accountability. In order to produce outcomes as a team we need trust and accountability, because transparency and output are table-stakes we default to trust that our team is being transparent and producing output and we leverage accountability at the outcome level.</p>
<h3 id="outcomes">Outcomes<figure class="wp-block-image"></figure></h3>
<p><img src="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-1024x494.png" alt="" class="wp-image-2412" srcset="https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-1024x494.png 1024w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-300x145.png 300w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-768x370.png 768w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-830x400.png 830w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-230x111.png 230w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-350x169.png 350w, https://tims.io/img/2019/03/Screen-Shot-2019-03-12-at-5.20.38-PM-480x231.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure></p>
<p>Because we are holding ourselves accountable to producing the outcome, we ask ourselves every day, “Does this matter?” instead of wasting time completing work that is no longer valuable.</p>
<p>We break down the final outcome into milestones that we communicate and deliver, which shortens the time between each hypothesis and expected value, instead of leaving stakeholders anxiously awaiting a binary result from months of work.</p>
<p>We push ourselves as a team to ruthlessly prioritize what’s important and to accept failure along the way, instead of politicizing and pointing fingers at the first sign of trouble.</p>
<p>We debate each other to arrive at the best solution, instead of becoming attached to our favorite ideas.</p>
<p>We succeed together, so we help each other, instead of focusing on showing off our own individual effort.</p>
<p>We succeed together.</p>Tim SchnellOutcome-oriented thinking is the ability to focus on the desired results, instead of the process, effort or tactics that you take to get there. It is the idea that nothing else matters other than achieving the results. The process that you take or the effort that you put in, while they are contributors to the final outcome, are not necessarily the drivers to focus on.How to take your Company Remote2018-09-07T00:00:00-05:002018-09-07T00:00:00-05:00https://tims.io/how-to-take-your-company-remote<h2 id="why-remote">Why Remote?</h2>
<p>The benefits to having a remote-friendly environment are many and worthy of their own article, but the primary ones include:</p>
<ul>
<li>Talent is not limited by geography, opportunity historically has been
<ul>
<li>Or rather, access to hiring the best and brightest means looking beyond your home city</li>
</ul>
</li>
<li>The data on Employee satisfaction and work/life integration is available and positive</li>
<li>If you have one remote employee, congrats, you have a remote company
<ul>
<li>Otherwise you have a second-class citizen employee who likely won’t last long</li>
</ul>
</li>
<li>Need to run 24/7 support or on-call shifts? Turns out timezones can help with this</li>
<li>Productivity increases!</li>
</ul>
<h2 id="ok-so-how">Ok, so how?</h2>
<p><a href="https://tims.io/img/2018/09/Decoding-Dilbert-4.png"><img class="aligncenter size-full wp-image-2397" src="https://tims.io/img/2018/09/Decoding-Dilbert-4.png" alt="" width="979" height="307" srcset="https://tims.io/img/2018/09/Decoding-Dilbert-4.png 979w, https://tims.io/img/2018/09/Decoding-Dilbert-4-300x94.png 300w, https://tims.io/img/2018/09/Decoding-Dilbert-4-768x241.png 768w, https://tims.io/img/2018/09/Decoding-Dilbert-4-830x260.png 830w, https://tims.io/img/2018/09/Decoding-Dilbert-4-230x72.png 230w, https://tims.io/img/2018/09/Decoding-Dilbert-4-350x110.png 350w, https://tims.io/img/2018/09/Decoding-Dilbert-4-480x151.png 480w" sizes="(max-width: 979px) 100vw, 979px" /></a></p>
<p>If you are a brand new company, it will be much easier for you to start with a remote-friendly culture, but for the rest of us, completely changing the office dynamics is a bumpy road. At <a href="https://www.cratejoy.com/">Cratejoy</a>, we decided to switch to a remote-friendly environment about 3 months ago, so we are still relatively new to it but here is what we have learned.</p>
<p>First, “remote-friendly” needs to be defined. We already generally had people working from home if they needed to occasionally. A trip to the doctor, an electrician, or car repair would be enough to sign in from home for the day with little issue. However, this doesn’t create real “remote” issues. Previously, we would move meetings, catch people up later, skip meetings, and generally make important decisions whenever said person was back in the office. You can’t do these things if people only come to the office twice a year.</p>
<p>So, when we said “remote-friendly” we meant some version of: on any given day we don’t care where you are physically, we should be able to accomplish all of the same things (if not more) than we would in the office.</p>
<h3 id="advice">Advice.</h3>
<p>As the volunteer leader to make this happen, one of the first things I did was find as many people to talk to that had made a similar transition. The number of companies embracing remote work is only increasing and I found quite a few companies that were 6 to 12 months ahead of us in the process.</p>
<p>The best advice I heard over and over again was:</p>
<p><strong>“It has to be the whole company, including the leadership team.”</strong></p>
<p>and</p>
<p><strong>“You don’t have to go full remote all at once.”</strong></p>
<p>It has to be the whole company, including the leadership team because ambitious and smart people at the company will emulate what they see successful leaders doing. So if you want to drive real adoption, you have to do it too. But more importantly, everyone has to feel the pain. When we started, our conference rooms didn’t have real video conference equipment, so we dragged laptops in and set them on the table. We thought we were fine because we would ask remote people, can you hear us? Sure, they’d say because they don’t want to be a bother. When you are that remote person you realize that you are only going to hear about 60% of the conversation and your ability to contribute drops to basically zero.</p>
<p>You don’t have to go full remote all at once because, well, you have an office space probably and like every other change, this one is going to require some adjustments. It’s a good insurance plan to still have some time where you can clear up communication issues, reset expectations and check in in real life.</p>
<h3 id="step-one">Step One.</h3>
<p>Ok, so you have your advice, your reasons to do it, and your grit all ready to go. What’s first? The other important advice I got was to be ready to upset some people. This surprised me a bit because I thought I was about to announce a huge perk for everyone, and while that was true for a majority of people, there were people who liked the office and seeing people and other generally extroverted things.</p>
<p><strong>Do an experiment.</strong></p>
<p>Pick a small amount of time and announce that you are going to do an experiment for said amount of time where people can choose to work remotely or from the office. Then, empower your teams to come up with a few things:</p>
<ol>
<li><strong>We need a clear way for how we are going to track progress and communicate about our goals.</strong>
<ol>
<li>You probably were doing this to some degree already but now you need to communicate, online, asynchronously and pay attention more closely to not just goals but productivity as well <em>(measure output as well as outcomes, this is a post for a different day)</em></li>
</ol>
</li>
<li><strong>Schedules, in our case we decided Mondays would be a full-company onsite day and teams could choose to be onsite additional days if they wanted to.</strong></li>
<li><strong>What does success look like? How do we know if we should keep doing this or not?</strong></li>
<li><strong>Don’t start the experiment too soon after announcing to the team, they will need time to adjust: talk to their families, figure out their home office, etc.</strong></li>
</ol>
<h4 id="my-mistakes">My Mistakes.</h4>
<p>At least the above is what I would have done for my first experiment. I ran an experiment before getting advice and here is how I messed it up.</p>
<ol>
<li><strong>I started with just the Engineering department, that is my department why not start with it?</strong>
<ol>
<li>Every other department immediately reacted, as they should, wondering why and how they could be involved.</li>
</ol>
</li>
<li><strong>I announced it on Monday, we started it on Thursday.</strong>
<ol>
<li>This was not enough time for people to acclimate.</li>
</ol>
</li>
<li><strong>I forced everyone to stay away from the office, I leaned too hard into “feeling the pain” and didn’t think about the people who may have a tiny downtown 1-bedroom apartment and hate it.</strong></li>
</ol>
<p>Despite these mistakes, it was a resounding success. At the beginning, our primary concern was if working remotely could actually be as productive as being in the office. How do you know what people are doing? What keeps them from goofing off the whole time?</p>
<p>One of the tools I use to measure Engineering velocity is <a href="https://www.gitprime.com/">GitPrime</a>, I highly recommend it as an Engineering leader as a quick gut check for how things are going. Here is the velocity chart I showed the rest of leadership after this experiment.</p>
<p><a href="https://tims.io/img/2018/09/remote_velocity.png"><img class="aligncenter size-full wp-image-2396" src="https://tims.io/img/2018/09/remote_velocity.png" alt="" width="974" height="412" srcset="https://tims.io/img/2018/09/remote_velocity.png 974w, https://tims.io/img/2018/09/remote_velocity-300x127.png 300w, https://tims.io/img/2018/09/remote_velocity-768x325.png 768w, https://tims.io/img/2018/09/remote_velocity-830x351.png 830w, https://tims.io/img/2018/09/remote_velocity-230x97.png 230w, https://tims.io/img/2018/09/remote_velocity-350x148.png 350w, https://tims.io/img/2018/09/remote_velocity-480x203.png 480w" sizes="(max-width: 974px) 100vw, 974px" /></a>We had a hackathon the week before the experiment so that primed the productivity of the team as well.</p>
<h3 id="step-two">Step Two.</h3>
<p><strong>Do another experiment.</strong></p>
<p>After a few weeks back in the office, we did another experiment and this time I got it right. The whole company went remote, but we all showed up to the office on Mondays and people could choose where they work otherwise. This second experiment was scheduled to run a month but after a month, it was the new normal and so we extended it through the end of the year for now.</p>
<p>During this time, I ran weekly company health surveys to ask for feedback. Were there communication issues? Are you happy? Do you feel like you know what’s going on? I also worked with the rest of the leadership team to release a company-wide report on productivity of each department and if we are achieving our goals. This helps everyone feel like they know what their virtual neighbors are up to and that everyone is still working hard to make the company successful.</p>
<h3 id="some-cool-things">Some Cool Things.</h3>
<p>As part of the survey I also asked if anyone had an opportunity to do something new or fun because of working remote and a few patterns started to emerge.</p>
<ul>
<li>People eat better and exercise more.</li>
<li>They fit appointments and errands into their day to minimize time away.</li>
<li>They go on lunch dates with their spouse (kid-free).</li>
<li>They feel more rested in the evening, so they go out and be social during the week.</li>
<li>They stop yelling at traffic every day.</li>
<li>Some of them have a hard time turning off work, it’s too easy to work constantly.</li>
<li>They are more satisfied and in control of their day.</li>
</ul>
<p>Like I said, we are new at this and there are going to be new classes of problems to solve as we get further into it. But so far, there’s a lot to be gained by working more flexibly.</p>Tim SchnellWhy Remote? The benefits to having a remote-friendly environment are many and worthy of their own article, but the primary ones include:Subscription Box Accounting Spreadsheet2018-08-26T00:00:00-05:002018-08-26T00:00:00-05:00https://tims.io/subscription-box-accounting-spreadsheet<p><strong>TLDR; Use this Google sheet template to track your subscription box finances month to month.</strong></p>
<h4 id="httpsdocsgooglecomspreadsheetsd1levodaddyx6o06m0eaxfrakf9uc-ggnoboxe9tx46mm"><a href="https://docs.google.com/spreadsheets/d/1lEVOdAddYX6o06M0eaXfrAKf9uc-GGNoBoXE9Tx46mM">https://docs.google.com/spreadsheets/d/1lEVOdAddYX6o06M0eaXfrAKf9uc-GGNoBoXE9Tx46mM</a></h4>
<p>#</p>
<h2 id="setup-guide">Setup Guide</h2>
<h3 id="step-1-download-transactions-from-cratejoy">Step 1. Download Transactions from Cratejoy</h3>
<p>The above spreadsheet is designed to work with Cratejoy’s “All Transactions” export which is kind of hidden within the General Analytics section of the dashboard.</p>
<p><a href="https://tims.io/img/2018/08/Analytics_•_Cratejoy.png"><img class="aligncenter size-large wp-image-2383" src="https://tims.io/img/2018/08/Analytics_•_Cratejoy-1024x551.png" alt="" width="1024" height="551" srcset="https://tims.io/img/2018/08/Analytics_•_Cratejoy-1024x551.png 1024w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-300x161.png 300w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-768x413.png 768w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-830x447.png 830w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-230x124.png 230w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-350x188.png 350w, https://tims.io/img/2018/08/Analytics_•_Cratejoy-480x258.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p>From the “General Analytics by Month” screen, select a date range that makes sense, then click on the Export button and select “All Transactions”.</p>
<p><a href="https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy.png"><img class="aligncenter size-large wp-image-2387" src="https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-1024x545.png" alt="" width="1024" height="545" srcset="https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-1024x545.png 1024w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-300x160.png 300w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-768x409.png 768w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-830x442.png 830w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-230x122.png 230w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-350x186.png 350w, https://tims.io/img/2018/08/The_Preschool_Box_•_Cratejoy-480x255.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p>This will download a .csv file that you can open with Excel or Numbers.</p>
<h3 id="step-2-copy-transactions-to-google-sheet">Step 2. Copy Transactions to Google Sheet</h3>
<p>Once you have the document open in Excel (or Numbers) you can copy/paste all of the relevant transactions into the Google Sheet on the appropriate month tab.</p>
<p><a href="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets.png"><img class="aligncenter size-large wp-image-2388" src="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-1024x523.png" alt="" width="1024" height="523" srcset="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-1024x523.png 1024w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-300x153.png 300w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-768x392.png 768w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-830x424.png 830w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-230x118.png 230w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-350x179.png 350w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-480x245.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<h3 id="step-3-manually-add-other-expenses">Step 3. Manually add other expenses</h3>
<p>Go to the “Totals” tab in the Google sheet and fill in the blue columns with the appropriate values for your business.</p>
<p><a href="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2.png"><img class="aligncenter size-large wp-image-2389" src="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-1024x495.png" alt="" width="1024" height="495" srcset="https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-1024x495.png 1024w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-300x145.png 300w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-768x371.png 768w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-830x401.png 830w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-230x111.png 230w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-350x169.png 350w, https://tims.io/img/2018/08/2018_Preschool_Box_Accounting_-_Google_Sheets-2-480x232.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<h3 id="step-4-customize-inputs-tab">Step 4. Customize Inputs tab</h3>
<p>In the Google sheet, you will notice a tab called “Inputs”. This tab should be updated with the appropriate values for your business. Most notably, it needs to know the cost of your box for Month to Month, 3 Month, 6 Month and 12 Month prepays. It uses these values to attempt to figure out how many future boxes were purchased in the event of a prepay purchase and calculate future cost of goods for those boxes.</p>
<p><a href="https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM.png"><img class="aligncenter size-large wp-image-2390" src="https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-1024x563.png" alt="" width="1024" height="563" srcset="https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-1024x563.png 1024w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-300x165.png 300w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-768x422.png 768w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-830x456.png 830w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-230x126.png 230w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-350x192.png 350w, https://tims.io/img/2018/08/Screen-Shot-2018-08-21-at-2.14.15-PM-480x264.png 480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p>That’s it! This spreadsheet is hopefully a good starting place and can be customized to your liking. If you have more than one subscription product for example, you can take out the Inputs and manually calculate COGS if that is easier. I have found this spreadsheet to provide a good high level account of how you are doing but in conjunction with other tools such as Quickbooks to get detailed accounting. I’m sure there are better ways to do some of this so please send feedback to timductive@gmail.com!</p>Tim SchnellTLDR; Use this Google sheet template to track your subscription box finances month to month.5 Kinds of Subscription Boxes2018-08-12T00:00:00-05:002018-08-12T00:00:00-05:00https://tims.io/5-kinds-of-subscription-boxes<p>One of the primary differences between subscription boxes and traditional ecommerce is how much the fulfillment process is part of the overall experience for the customer. Fulfillment tends to be thought of as table stakes for running any online store, something that just has to work but not be part of the value, at least not since Amazon and others have commoditized fast, reliable shipping and fulfillment. However, subscription boxes are providing curated experiences that sometimes rely on subscribers receiving the latest experience at roughly the same time, or receiving the next sequential experience in their journey, OR maybe receiving a randomized shipment that doesn’t contain any previously curated items for this particular customer.</p>
<p>Understanding these different fulfillment scenarios for subscription boxes might help us think about what patterns are evolving in this unique industry and what kind of tools we need to continue to provide world-class experiences for our subscribers.</p>
<h2 id="1-theme-of-the-month">1. Theme of the Month</h2>
<p>“<strong>Theme of the Month</strong>” boxes are subscriptions that build their brands on a new curated theme for each box, some examples include <a href="https://www.lootcrate.com/">Loot Crate</a>, <a href="https://musthave.popsugar.com/">Popsugar</a>, and <a href="https://www.shakerandspoon.com/">Shaker and Spoon</a>. <a href="https://fabfitfun.com">FabFitFun</a> does this but on a quarterly basis instead of monthly. Qualitatively, this is what many people think about when they think of subscription boxes. They want to buy a curated set of products that are centralized around something they love, much like one might subscribe to a magazine for a curated/created set of articles to read.</p>
<p>One of the challenges with running this kind of box, especially as a new business, is product sourcing. At the beginning, managing inventory expectations during a volatile time as your subscriber base grows (and shrinks) can be difficult and unforgiving. Many business owners learn to supplement their core experience with an ecommerce shop as a way to help shed excess inventory. So figuring out how to forecast 3 to 6 months into the future, especially if sourcing product from overseas can make or break this kind of business.</p>
<h2 id="2-sequential-experience">2. Sequential Experience</h2>
<p>A “<strong>Sequential Experience</strong>” box is a subscription box that provides the same experience to it’s subscribers in a way that builds on top of itself in a sequential order. So every new subscriber gets the same box 1, box 2, box 3, etc… Some examples of this kind of box include <a href="https://www.huntakiller.com/">Hunt a Killer</a>, <a href="https://www.creationcrate.com/">Creation Crate</a>, and <a href="https://www.thepreschoolbox.com/">The Preschool Box</a> (shameless self promotion, sorry). This option is ideal for boxes where the experience needs to build on top of itself and is great for education-based content.</p>
<p>The challenges with this setup are, in many ways, opposite from the <strong>Theme of the Month</strong> crowd. Typically you are building out large chunks of content up front and worrying about replenishing inventory but not sourcing new and novel product on a monthly basis. The side effect is you are also taking on a larger quantity and more diverse set of inventory to manage every month.</p>
<p>Many boxes attempt to solve some of the challenges from <strong>Theme of the Month</strong> and <strong>Sequential Experience</strong> by taking a <strong>Hybrid</strong> approach between the two. Typically, this may look like a standard “Box 1” experience that every subscriber receives and then swapping them into the <strong>Theme of the Month</strong> queue for “Box 2” and beyond.</p>
<h2 id="3-randomized-inventory">3. Randomized Inventory</h2>
<p>“<strong>Randomized Inventory</strong>” works well for existing ecommerce businesses that are looking to expose their customer base to a broader range of products. Typically, these boxes have a few key types of items in each box that are swapped out in a random or semi-random fashion. For example, a beauty box may contain a lipstick, brush, and eye shadow with the particular brand/color/kind changing each month. Some examples of this kind of box are <a href="https://www.birchbox.com/">Birchbox</a>, <a href="https://www.boxycharm.com/">Boxycharm</a> and <a href="https://www.ipsy.com">Ipsy</a>.</p>
<p>Keeping track of inventory as well as historical shipments received by subscribers is key for this setup. You want to broaden exposure to products but without repeating items in each shipment for your loyal subscribers. This can take expert-level excel skills, robust fulfillment center integrations and a strong attention to detail.</p>
<h2 id="4-shop-and-return">4. Shop and Return</h2>
<p>Made popular by big clothing subscriptions, <strong>Shop and Return</strong> boxes are specifically designed to allow subscribers to pick a few items that they receive and return the rest with an included return label for convenience. <a href="https://www.stitchfix.com">Stitch Fix</a> and <a href="https://www.warbyparker.com">Warby Parker</a> are the big brands that come to mind with <a href="https://www.getwagging.com/">Get Wagging</a> and <a href="https://www.toylibrary.co/">Toy Library</a> providing more unique experiences that fit into this category.</p>
<p>The overhead that comes with handling returned items and building 2x the shipping cost into your product makes this a difficult subscription box to pull off. Similar to <strong>Randomized Inventory</strong> this type of box will require a fairly complex inventory management system to keep track of items that are both coming and going.</p>
<h2 id="5-choose-your-consumables">5. Choose your Consumables</h2>
<p><strong>Choose your Consumables</strong> is typically represented by food-based subscriptions where you may log in on a weekly or monthly basis to select your next round of food or goods to be shipped your direction. Some good examples of this kind of subscription include <a href="https://www.graze.com">Graze</a>, <a href="https://www.blueapron.com/">Blue Apron</a> and <a href="https://drsquatch.com/">Dr. Squatch</a>.</p>
<p>Making a simple experience for the subscriber while providing them with full control over what they receive and when is a complicated and difficult job. These boxes usually spend a lot of time on their website and account management systems in addition to providing a great customer support experience to keep the trains running on time. This can be a fairly technical business and probably requires a technical founder or team member to tie everything together.</p>
<p style="text-align: center;">
***
</p>
<p>If you expand the context here to include all subscription-based or recurring options. I think you would start at the top with “Subscribe and Save” but I’m leaving this one out of the list because I don’t think it is relevant to a more closely defined subscription box industry. If you like to buy the same air filters, diapers, and paper towels on a recurring basis then you are automating away the recurring part of online ordering but not really opting into a curated experience that subscription boxes specialize in.</p>
<p>I’ve attempted to simplify the big patterns here but I’m sure there are more. Send me a quick note if you think I missed something big and vote in the poll below if you run one of these businesses! If you are just starting a subscription box, check out the <a href="https://tims.io/subscription-box-checklist/">Subscription Box Checklist</a> to get started.</p>
<p>[socialpoll id=”2515093″]</p>
<p> </p>Tim SchnellOne of the primary differences between subscription boxes and traditional ecommerce is how much the fulfillment process is part of the overall experience for the customer. Fulfillment tends to be thought of as table stakes for running any online store, something that just has to work but not be part of the value, at least not since Amazon and others have commoditized fast, reliable shipping and fulfillment. However, subscription boxes are providing curated experiences that sometimes rely on subscribers receiving the latest experience at roughly the same time, or receiving the next sequential experience in their journey, OR maybe receiving a randomized shipment that doesn’t contain any previously curated items for this particular customer.Subscription Box Checklist2018-08-04T00:00:00-05:002018-08-04T00:00:00-05:00https://tims.io/subscription-box-checklist<p>Starting a subscription box business can be incredibly difficult but often figuring out what steps to take first can be the most daunting part. Should I start with a prelaunch campaign? When do I figure out how to source product? How do I pick what day to start shipping? The following checklist is meant to help you get started but is by no means an exhaustive list of things to do!</p>
<h2 id="prelaunch">Prelaunch</h2>
<div>
<strong>Start immediately with social accounts</strong>
</div>
<div>
<input type="checkbox" /> Setup <a href="https://business.instagram.com/getting-started">Instagram</a>, <a href="http://twitter.com">Twitter</a>, <a href="https://www.facebook.com/pages/creation/">Facebook</a> accounts
</div>
<div>
<input type="checkbox" /> Start posting content regularly
</div>
<div>
<input type="checkbox" /> <a href="https://tims.io/instagram-challenge/">Instagram Challenge</a>
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Setup a prelaunch email campaign</strong>
</div>
<div>
<input type="checkbox" /> Buy a website domain name from <a href="http://namecheap.com">Namecheap</a>
</div>
<div>
<input type="checkbox" /> Setup <a href="http://mailchimp.com">Mailchimp</a> account
</div>
<div>
<input type="checkbox" /> Setup <a href="https://support.google.com/analytics/answer/1008015?hl=en">Google Analytics</a>
</div>
<div>
<input type="checkbox" /> Build a prelaunch page (using <a href="https://www.launchrock.com/">launchrock</a>) with Mailchimp integration to start collecting emails
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Get beta product</strong>
</div>
<div>
<input type="checkbox" /> Source product for 20 test/review boxes (Amazon, Etsy, find wholesaler later)
</div>
<div>
<input type="checkbox" /> Find a box/sticker supplier from here:<a href="http://subscriptionschool.com/services-resources/"> </a><a href="http://subscriptionschool.com/services-resources/">http://subscriptionschool.com/services-resources/</a>
</div>
<div>
<input type="checkbox" /> Make sample boxes
</div>
<div>
<input type="checkbox" /> High quality product photos are important
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Create <a href="http://cratejoy.com/register">Cratejoy</a> Marketplace Listing</strong>
</div>
<div>
<input type="checkbox" /> Setup Marketplace listing with pictures
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Design Website</strong>
</div>
<div>
<input type="checkbox" /> Design product website with clear, concise value propositions
</div>
<div>
<input type="checkbox" /> Subscribe Flow Images and text (Do you need product variants or a survey?)
</div>
<div>
<input type="checkbox" /> FAQs
</div>
<div>
<input type="checkbox" /> TOS and Privacy Policy
</div>
<div>
<input type="checkbox" /> Test your checkout flow
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Don’t forget to the business setup</strong>
</div>
<div>
<input type="checkbox" /> Setup an LLC with <a href="https://www.legalzoom.com/business/business-formation/llc-overview.html">LegalZoom</a> or maybe <a href="https://stripe.com/atlas">Stripe Atlas</a>
</div>
<div>
<input type="checkbox" /> Learn sales tax rules/Apply for Sales Tax Certificate (This will depend on your state)
</div>
<div>
<input type="checkbox" /> Open business bank account
</div>
<div>
<input type="checkbox" /> Setup/update <a href="http://stripe.com">Stripe</a> account
</div>
<div>
<input type="checkbox" /> Setup <a href="http://quickbooks.com">quickbooks</a>
</div>
<div style="padding-bottom: 10px;">
</div>
<h2 id="launch">Launch!</h2>
<div>
<strong>What to do on launch day</strong>
</div>
<div>
<input type="checkbox" /> With a prelaunch you have been collecting emails for hopefully 4-6 weeks so start with a Mailchimp blast out to all of your leads
</div>
<div>
<input type="checkbox" /> Find 5 influencers to launch with
</div>
<div>
<input type="checkbox" /> Highly engaged 5000+ instagram followers should do it for the cost of a box
</div>
<div>
<input type="checkbox" /> Preferably 1 bigger influencer, may cost $100, release to 20-30k followers and blog post
</div>
<div>
<input type="checkbox" /> Lots of calls to action over social media ahead of launch day
</div>
<div style="padding-bottom: 10px;">
</div>
<h2 id="post-launch">Post-Launch</h2>
<div>
<strong>Get ready for your first ship day</strong>
</div>
<div>
<input type="checkbox" /> Design and Update the Cratejoy subscriber-facing emails with your branding
</div>
<div>
<input type="checkbox" /> Use <a href="https://www.pirateship.com/">Pirateship</a> for buying postage
</div>
<div>
<input type="checkbox" /> Purchase and setup <a href="https://www.amazon.com/DYMO-LabelWriter-Thermal-Printer-1755120/dp/B002M1LGJ4/ref=sr_1_2_sspa?ie=UTF8&qid=1533418458&sr=8-2-spons&keywords=dymo+label+printer&psc=1">Dymo label printer</a>
</div>
<div>
<input type="checkbox" /> Buy shipping boxes/product for 50-100 subs, depending on how big your launch estimation is
</div>
<div style="padding-bottom: 10px;">
</div>
<div>
<strong>Ship day</strong>
</div>
<div>
<input type="checkbox" /> Breathe
</div>
<div>
<input type="checkbox" /> Over-communicate on social media/email!
</div>Tim SchnellStarting a subscription box business can be incredibly difficult but often figuring out what steps to take first can be the most daunting part. Should I start with a prelaunch campaign? When do I figure out how to source product? How do I pick what day to start shipping? The following checklist is meant to help you get started but is by no means an exhaustive list of things to do!