How to work from home without going insane (purple monkey dishwasher)

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

So you’ve decided to work from home. As a rookie-veteran of working without a traditional office for one year I’m here to tell you that it is the greatest and worst thing that can happen to your work life – much like being transferred to a glitter-packing facility. What follows is a quick two minute guide of what you need to know before you take your pants off and turn up those old Hootie and the Blowfish albums.

Interruptions

Working from home completely changes your interrupt cycle. At a typical desk job you are interrupted constantly due to meetings, cake feasts, fire drills, people coming over to tell you about what the lake was like on Saturday, daydreaming about tripping said individuals, etc.

When you work at a location of your choice you can control what distracts you. If you want to work for 4 hours and not use the bathroom you can do it; if you want to work with 2 lbs of nachos taped to your face like a beard while wearing a sombrero filled with nacho cheese for snacking you can do this. Most people think they will be far more productive due to being able to control large blocks of time, but I found that the experience was quite jarring.

What you will realize is that outside of your normal distractions your body has learned to not focus for very long on anything. In my case after years of working in an environment where I was constantly interrupted I couldn’t focus on anything for more than 20-30 minutes (about the longest free period I had on average). I would internally interrupt myself constantly: twitter, facebook, doodling, trying to clean nachos that fell onto the keyboard from my nacho beard, calling the manufacturer of said keyboard after the ‘s’ key stopped working, writing a strongly-worded letter calling the manufacturer a bunch of “lazy jackae”, picketing outside their headquarters, etc. Typical stuff.

When you work in an office you don’t allow yourself to constantly be interrupted internally – you simply can’t watch every video that looks funny, you can’t read each article on The Morning News everyday, you can’t keep up with Hacker News like you think karma points are worth money.

The way to get over this is pretty simple – practice. I for one spent about a month making love to The Pomodoro Technique (meta: learning to make love using this technique is experimental and not recommended by most doctors) but it worked quite well for me in training my brain to recognize interruption events and stop them. Now I can go over an hour without eating a nacho.

Pressure

When you have a ‘bad’ day at a normal job you still feel a sense of accomplishment – you drove to work, you drank some coffee, you attended a few meetings, you chatted with some co-workers about how little progress you were making – you did some concrete tasks.

Working from home alone you have days that you feel like you get *nothing* done. As soon as you get going you are interrupted, you spend a few hours working on something that you later scrap and start over, you can’t figure something out. These days happen in an office but when you are alone with them they create extreme emotions. The thing you need to remember is that one day like this can be followed by a sugar-rush Work-From-Home monster day: a day in which you get as much done in a day as you remember getting done in a week at BigCorp. An entire feature imagined, mocked up, coded, then just plain mocked, debugged, re-tooled, polished, stabilized, and then shipped.

Crippling Depression – ride it like a wave

If you work at home for long enough away from other real people you will be surprised how much you will miss the interaction. The annoying “did you see the game?” water cooler talk and “OMG Its Friday!!” chit-chat that used to make you want to hide in a conference room is actually a pretty effective social convention to avoid The Question: “Why am I working right now when I could be doing XYZ?”.

While working you will have many moments when you will think things like:

  • I work from home now, I could go take a walk – right now!
  • I work from home now, I could go eat some yogurt – right now!
  • I work from home now, I could ride a bike – right now!
  • I work from home now, I could watch The Wire – right now!

In the spring these thoughts are tough and you will stare out the window and cry a single slowly descending tear before turning back to your semi-colon delimited job and push through. In a normal office you don’t think about the difference between working and playing hooky because the threat of getting fired for playing Grand Theft Auto III at your desk is very real.

In addition you will need to take steps to keep in touch with others in your field less you become a Work-From-Home monster like many that I have met. Signs you are becoming cripplingly depressed without realizing it from working from home:

  • You see a former co-worker and talk for 20 more minutes than would be normal. Even after they have gotten up and left the stall you continue.
  • You are way too active on twitter, facebook, g+, etc. and constantly send videos to your friends like you work at Tosh.0.
  • You watch TV instead of listening to music and you talk back to the characters.  You think you hear Ferb talk back to you.
  • You drink Diet Pepsi just to let the pain make sure you can still feel something.

If any of these things happen put some pants on and go to a coffeeshop.

The greatest thing about working from home is your kids. They are also the worst thing.

This might be a personal problem as:

  • I work on the same floor of the house as my kids typically play.
  • My wife currently stays at home with the kids.
  • Before I worked from home I never listened to music while working (due to a deep-seated and irrational fear of being caught singing out loud a Jon Secada song)

I was very stressed with the noise of my kids and the general stress that kids cause when you do concentration-based work. I felt like a bad Dad because I would have to tell them 8 times that I wasn’t “done yet” but was just coming out to go to the bathroom, refill nachos, etc.

Once I realized that working at home meant more time with my kids I just mentally substituted the time spent in the car with time on the floor with them, and my stress melted away awkwardly like reheated queso.

Less informal communication means more organization

I’m an organic and an improviser. I’m not naturally organized. But working from home in the absence of informal methods of communication means that you need to have prepared the following:

  • a to-do list that you can share (workflowy, RTM, etc.) in less than one minute
  • a general daily plan that you can recite at beginning, middle, end of day.
  • a weekly plan of what you want to get done and what you did last week
  • a plan for when you will meet with the client, boss, parole officer next

Enjoy it

I know that at some point my work from home life will be put on hold or go away. And I decided when I started that I wanted to do a good job and to enjoy it enough that when I looked back I wouldn’t say that I regretted much. To remind myself of this I wrote “San Diego means a whale’s vagina” on my whiteboard (since this kinda isn’t the sort of thing you can do in a normal office).

So go – enjoy it. And please just go take a shower.

I’m writing a book about successfully working from home; click here if you want to know when it is complete.

Great discussion, as always, on Hacker News.

Republished on Lifehacker.

Obstacles adults face in creating

All children are artists. The problem is how to remain an artist once he grows up.
— Pablo Picasso

I am amazed at my daughter’s productivity. She makes things at an astonishing rate – pictures, ideas, animals, pretend situations, etc. All day, everyday. Really all night too – she wakes up and tells me about dreams that she has had that blow me away. Then she sits down and draws a handful of pictures while telling me a story about her pet elephant as she makes up words with her cereal.  And then I go to work and can’t think of a single idea.

What can I learn from her?  And after thinking about it for 27 seconds I’ve realized: she just avoids 3 common obstacles to creation that all adults face.

#1 Thinking you need more skill before you start.

Kids don’t sit down to fingerpaint and think ‘I’ve never taken a class on this, I don’t know how to do this’.

#2 Being afraid of bad ideas, ‘wasting time’, of being mocked.

Praise decreases as we get older. Part of why kids create is that they are encouraged in most things they do. Adults rarely feel their work praised but often see it ignored, mocked, or dismissed as being a waste of time. (Skeptical of this? Write a blog, make a hat, or draw a picture and put in on your cubicle wall and then ask people what they think of it)

Something inside you has to value the act of creating in order to just ignore this type of feedback. You have to value the act not the result before you can focus on doing the act more.

In terms of fear of bad ideas I think the thought chain looks like this:

Hmmm -> I can’t think of any ideas for this t-shirt -> Cause I’m not creative

or

What if we put a bunny on it? -> That sounds stupid -> I’ll be made fun of since bunnies are girly -> Forget it

You think children think like that?

#3 Evaluating ideas as they are generated.

If you combine the first two and make the process more efficient you end up with what I think is the most common problem with people being able to imagine as they grow up – they have gotten very good at very quickly dismissing what their imagination leads them towards. This ‘clogs the pipe’ so badly that they simply stop generating ideas – its more efficient to just have only safe ones.

The trick is to separate the act of creating from evaluating it for dismissal. As you are making something you are constantly evaluating it and improving it, but this should be done by your taste and not your experience. And this difference is the difference between children and adults.

Have you ever sat in a brainstorming meeting with people that don’t believe that they are creative? (i.e. have you ever pulled your own eyelashes out with pliers?) They normally start with silence until somebody starts throwing out really bad ideas and then people don’t immediately criticize them. Smart organization focus on *not* evaluating ideas while they are being made.

Generating ideas good or bad will always be a good thing to practice and bad ideas when mutated, combined, or twisted sometimes become really good ideas. But only if you don’t listen to the little voice telling you that you don’t know how, you will be mocked, or that the idea won’t be good.

Working at a startup is like riding a bike (off a cliff)

My life the last six months has been consumed by two activities: training for a long bike ride and trying to help get a startup profitable. I’ve been surprised to learn that I can take lessons learned from each and apply them to the other.  So I present (with no commercial interruptions) three lessons:

Know your limits going in and don’t change them

When you get on your bike for a training ride you have to decide how much stuff you want to take with you – the more stuff you take the harder the ride is:

  • 1 or 2 water bottles? Will there be more water down the road?
  • 2 spare tubes, CO2 cartridges? wrench? phone? credit card? spare bike? cab fare?
  • food: gu, Honey Stinger, chicken biscuit, rack of ribs, hot pocket? (or all of the above)

Once you get on the bike to do a 30 mile ride you can’t easily decide to do a 130 mile ride as you will run out of food, water, and daylight.

When you decide to take on a startup as a founder or an early employee you have to decide how much risk to take, and it’s not a good idea to suddenly change that risk equation during the life of the startup (as you most likely will be tempted to do so):

  • Pay: how much equity vs. raw salary? How long can you survive on a lower salary?  (Are you willing to switch to cheap toilet paper?)
  • Time: What are you giving up: sleep, family vacations, taking the family to the zoo on Saturdays, hobbies (what you used to do before you had kids), time for friends, time for extended family, time to read a newspaper or cereal box, time for TV (How many seasons of Jersey Shore are you willing to miss?)
  • Opportunity: how long are you willing to go and say ‘No’ to every additional job/opportunity/sudden trip that comes along during your tenure at the startup?

You can’t take 70% of your salary with massive options vested in 4 years and then run out of money for skittles 2 months in. And when the company tells you that they can now only pay you 60% of market you shouldn’t try to make it work as you will, just as in cycling, run out of food.

A better way to say this that works for both: you and your family should know the terms/conditions going in:

  • I’m going on a 120 mile training ride and will call you at mile 60; I’ll be home and showered in time for dinner.
  • I’m working for a startup for 6 months at 80% of market rate, I will work normal hours and from 10:00PM until I go to sleep after everyone else, doing it for experience, do not expect options to ever be worth much, we will reassess in August.

Getting your rules of engagement out in the open makes you not get lost in the excitement of good weather, good market conditions, or temporary good feelings. And this, my friend, brings us to the next point.

No matter how good or bad you feel, it won’t last

This is a very common saying in endurance racing and is quite effective in calming nerves during a monster event. I have experienced the thrills of riding my bike for eight hours and feeling completely invincible only to feel like I should call an ambulance 10 miles later. In my experience on long rides you start out feeling good then go through period in which you start to feel crappy and doubt why you are doing the ride at all. As the ride progresses these good/bad periods start to jump back and forth and the highs get higher and the lows get lower.

There are parallels in the startup world. For the first month building something from scratch you will feel great – no HR BS, no this no that, no limits. As you crank out code rather than sleep or see your friends you will let doubt creep in and wonder if your rules of engagement need to be adjusted. You will go through lows unlike anything you can experience at a big company. Short of rare events, you simply can’t have the same feeling as you do at a startup where you need to complete a feature of fix a bug for a demo the next day or *almost literally* you will lose big – let your partners down, potentially lose you and your partners money, and perhaps lose friends all the while having spent massive time away from those you love in order to execute your failure.

That being said, the highs at a startup are higher than anything you can do in a normal employment situation. Seeing a famous company use your application, getting chosen as a key partner, watching as an on-the-fly demo with a famous person goes crazy smoothly (all with software you wrote last week), watching the revenue numbers grow, watching as people go from beta to entering their credit cards, watching as customers start complaining because they see value and *want* what you are building. And of course the biggest high of all – the potential to make more money in a few years than you could in many more than a few years.

These highs and lows need to be tempered just like in long-distance riding. Sure – we are feeling good now but let’s still stop and eat and refill water while we have the chance. Ok, this looks like it’s working but let’s hold off on doubling-down on equity or buying that new mobile margarita machine just yet.

Embrace being different and enjoy its rewards

And, of course, the first similarity that struck me was this: you need to embrace the consequences of doing something different.

Cycling is a weird sport. Very, very tight clothing, little of the professional sport on TV, lots of tension between driver and cyclist, an unmanly image, and a big upfront cost (the bike) keep most people away from it and in company softball leagues and on their couch. But if you move away from what the “masses” do you will find bigger rewards – cycling trains your heart to recover unlike any sport, you get to travel massive distances that you can’t in other sports, you get to climb mountains that stress your car, you get to feel the raw joy of going fast that reminds you of flying, and of course, you get the simply joy of feeling that you were meant to move.

Working at a startup is also weird – isn’t a job sort of about getting guaranteed money on a frequent basis? Sure, but only at a startup can you feel what it means to create something from nothing. A startup is a no excuse situation – no I’m-the-only-one-who-cares, no blaming teammates, no blaming corporate IT policy, no reason to be any slower than the fastest you can be. And in that situation you will learn and move faster than you thought possible.  And only in a startup can you really feel that you were meant to create.

Questions to ask in an interview

The questions you ask in a job interview are important.

They reveal your level of experience, ability to form complete sentences, how much you were actually listening, passion level, and how seriously you take committing to an organization. While the goal of an interview is to get an offer, deciding what to do with that offer requires you to proactively seek information.

Feel free to ask questions even if you get to the end of the interview and you’ve managed to:

  • pronounce C# as “C-tic-tac-toe-board”
  • use airquotes every time you said “database”
  • completely bomb the technical interview (“Sir once again – you use the other end of the whiteboard marker to write”)
  • made a joke so lame everyone just looked down in shame (“Well, I think I would fit here because I-BM’d this morning! Get it?“)

If the interview is going well the questions you ask will arm you with critical information to do the right things in your first months on the job, and if the interview is going badly insightful questions can still be valuable – every interview is an inside scoop on how a particular company operates, what they value, and a chance to meet new people who are good at what they do – don’t miss it.

How to ask hard questions

The real questions you want to ask are at times too direct; they are the equivalent of asking a first date overly-intimate questions (“So what does you mom look like – does she have that eyes-too-close- together-Will-Ferrell thing going on too?”). While figuring out what you can get away with is an art and not a science, I’ll offer these random bits from my own experience:

  • You’ll regret the question that you don’t ask. It will haunt your dreams and bring shame to your family
  • It’s much easier to read people 1-on-1. If an interview is six people each talking to you for 15 minutes you can pick and choose who to ask based on what you read off of people – who seems to like telling stories from the “good old days”, who is an engineer and therefore stereotypically honest, who is going to give you the brochure answer? [Side note – some of the best information can be gathered from asking good questions of multiple people and comparing notes]
  • If you get invited to a lunch interview it’s a much better situation than in an office; the bar is lowered and people are more honest with their answers.

In the end the basic information you are trying to pull out of the interview process:

  1. Is the work-life balance what I’m looking for?
  2. Is the risk/reward situation what I’m looking for?
  3. Will I fit in, learn, and thrive?
  4. What are they trying to do?
  5. What happens when things go wrong?

Is the work-life balance what I’m looking for?

First things first, I’ve seen the following three things crop up time and time again in my own personal experience as possible “two weeks later” deal-breakers that just aren’t always known upfront.

  • What percentage of travel is really expected? When is my first business trip? Is being on the road something that can affect how well I do here?
  • What is the real, honest, number of hours I’m expected to work? (The smaller the company the more important this question is)
  • “If Ricardo likes it then surely it is awesome so no further questions”. Research a company even if your friend works there. Sure you and your buddy worked great together at the last place, but little did you know he loves traveling, getting yelled at, and loud smelly office conditions and you don’t.

Will I fit in, learn, and thrive?

Is this a place where you see yourself being successful after 90 days? Do you see yourself liking or tolerating the people you’d work with and for? Will they help you to succeed?

  • Tell me about your mentoring and training strategies.
  • How many new hires have started in the last year?
  • What success rate are you seeing with new hires?
  • How has the company changed since you started working here?
  • Tell me a story that you are tired of hearing about this place.
  • What are you guys really bad at (i.e. what do you not value)?
  • Does anybody hang out together after work?
  • Has anybody here worked together elsewhere before?

Is the risk/reward situation what I’m looking for?

Before you leave you need to know how stable the company is and where it is on the risk/reward scale between a two person startup and the IRS. This is sometimes as simple as looking around and seeing how many people are in the building and how tired they look, but most of the time you need to dig deeper to confirm your gut feel:

  • How big is this industry?
  • Who are your competitors?
  • Give me a two minute company overview.
  • What are you current business challenges? (Dig deeper if the answers are: grow, become more profitable – how?)
  • When was the last time you had to perform layoffs?

What are they trying to do?

  • Why are you hiring?
  • Walk me through the architecture of your system(s).
  • What do you hate the most, and what’s the things you guys are most proud of?
  • What was the hardest part to get right?
  • What part of the system do you wish you could build?
  • What are you plans to fix your current problems? [Do people agree on the problems and solutions, or are they still up for debate?]
  • What sort of technical debt do you have?

What happens when things go wrong?

How a company acts when things go badly reveals who the company really is. In an interview they may paint the best possible picture, but asking about recent project delays is a great way to get passion and real information out of the interviewers.

  • Talk to me about the last time a project was late (or cancelled), and what actions were performed.
  • When you miss a milestone, do you start to track it more or less?
  • What has been your biggest project failure in the last year?
  • When a project is late, do you ever add people, and is it always the same group of people?
  • How does the client / industry react?
  • When things are behind do you expect more or less individual (vs. group) accountability?
  • Do you perform post mortems?

Speaking of post-mortems, make sure to be able to effectively close the interview by asking them if there is any additional information they need from you in order to make a hiring decision. Then hopefully in a few days you’ll be asked “When can you start?” and positioned with the knowledge mined in the interview you’ll be able to answer.

How to complain

Let’s talk about one of the ills facing any group of people who are passionate about their work – ‘complaining about how bad things are’.  I’ll list some personal do’s and don’ts on effective complaining, and ways that organizations can help it not destroy morale.Every person that cares about their job complains.  How they complain, the level of detail of the complaint, and who they complain to are different for each person. People complaining badly in an organization that isn’t listening will destroy morale and lead to the sort of stagnation that destroys good organizations.

Personal complaining

Complaining badly is a waste of your time. So, the rules:

Complain only to someone that can help you change what you are complaining about.

All other complaining is effectively gossip.  While it’s certainly not a bad idea to discuss possible solutions with coworkers, if you find yourself complaining about the same thing at lunch with your coworkers over and over without discussing solutions pat yourself on the back – you are part of the problem.

Don’t passively complain

Passive complaining is most complaining – “The government spends too much of my money.”, “I wish I was taller, I wish I was a baller”.  In a professional setting people need solutions.  If you complain about something, don’t let the complaint block you from a solution, and view the opportunity to give feedback as a chance to list problems and present your own solutions.

Common complaint patterns

“John sucks.  They should just replace John”

If they replaced him with you, what would your first actions be?  Take some time to think this over – imagine yourself giving suggestions directly to John.  Suggest those actions instead of replacing John.

What this company needs is leadership.  We need vision from above to tell us what to do.

Be more specific – do you need instruction on how to do your job, what to work on, or is there a clear vision ambiguity? If not, then you are basically sending the message: “I can’t self-manage, and need further instructions from my bosses to do important things.” Again, if you were in their position, what vision would you cast – what are your solutions?

If we could just take three months and clean-everything-up, then we’d be able to get our head above water.

The only companies that are able to stop current work and ‘clean-up’ are dying companies.  I hate to break it to you, but The Great Big Rewrite Of All Our Software isn’t going to happen.  Solutions that allow companies to continue working while improving are much more important than greenfield ones.  It’s a great exercise to actually write out a business case for the “Take three months” plan and really think through the true business value.  Pick five simple things that can be done now and figure out a way to do them.

We need better communication.

Be more specific – are two groups working on the same thing?  Is only half the office showing up to company parties?  Is half of the company selling poison while the other sells antidote? [Actually, that’s not a bad idea]  This statement is just too general.

Joe should be fired.

Even in extreme cases of ethical violations, the open criticism of someone in this way should be avoided.  In the extreme case the complaint should be registered with the proper channels given the rules above.  Focus should remain on the specific behaviors and consequences of said behaviors rather than the person, and you should feel comfortable telling the person directly everything that you tell anyone else.

This place sucks.  This has to be the worst-run company in the world.

If you aren’t allowed to complain, all solutions are blocked, and there is nobody to actually complain to you can still list out your complaints anyway.  You learn from every single experience if you allow yourself to pay attention and you never know when having your thoughts organized will help.

Organizational complaint handling

Let’s talk about the suggestion box.  You know, the one that people put old cigarettes in, and the one where in the movies some brilliant idea shows up from a low-level worker, causing them to rise to sudden fame?  The suggestion box is a sign of certain organizational fear of open criticism, not its opposite.  How can an organization accept open complaining without causing fear and demoralizing its employees?

First, only accept criticism that is inbounds.

See rules above.

Be open to criticism as a means to change.

When an employee complains ask questions, take notes, pay attention.  Even if you have heard the problem and same solution from a different person, tried it, watched the failure of it, and wept openly at the awkward post-mortem (“Seriously guys who thought the beanie baby Christmas bonus was a good idea?”) continue to listen to the new perspective.  The person in front of you is extending themselves and is passionate about the issue and dismissing them in anyway is dangerous.

Be open to criticism that follows chain of command, and discourage other forms.

Start conversations with “Have you talked to John about this?”  [Make sure that somebody named John works for you].Politics can destroy open communication of this form.  How to handle ideas within an organization is a larger subject, but in order to counteract the natural problems with the chain-of-command-only communication pattern, setup chances for higher level management to communicate with people in the details enough to see problems.  Sometimes the first level of management (tech leads, managers) cannot see process issues as they still have one foot in each camp.  In addition a more experienced manager might recognize a solution that others miss.

View complaints and criticism as a sign of a healthy organization, and don’t take it personally.  In the same way that hard conversations are needed in real relationships if you don’t hear complaining it’s a bad sign.  Your employees are complaining, but they might be doing it to the wrong people, and in the wrong way.

Key considerations for your next development job

As a developer, your basic job is to create things. Since the world needs software in every industry you might think that one is the same as the next, and you’d be shamefully wrong. Outside of the obvious questions you should ask yourself when looking for your next gig – how sharp are the coworkers, how good is the tech, how hard are the problems, how good are the tools – you should also ask: “Who are we working for?” It turns out that who you produce for can more directly impact how much you like your job than you might think.

Internal* vs. External client

Internal clients don’t matter as much as external ones. Yeah I said it, wanna fight about it? Working for a bank on their internal accounting software is not the same as working on banking software that is sold to banks. Period, close bracket, EOF. The reason for this is that one is a profit center with real financial pressure, and the other is a cost center, with pressure to simply exist cheaply. A profit center has direct competitors that you sometimes have to react to, but a cost center rarely implements new product due to hearing that an internal customer at another company is happy.  The internal vs. external switch plays itself out in multiple subtle ways:

Rate of Change

A profit center tries multiple things, watches competitors to match features, explores new lines of business, etc. A cost center does not take much risk, and thus is more setup for small improvement or the support of company growth.

Rate of spending

Another way this plays out is in lack of budget flexibility – since a cost center is under pressure to lower costs their budgets are smaller and less innovative. The type of managers that run these organizations are the special type of demon that is good at finding ways to save money – like on hardware or crappy coffee.

Rate of Respect

In a profit center the business leaders interact with the technical leaders and producers enough that they begin to understand their importance. Over time a mutual respect grows and is a healthy team behavior. In a cost center at times the cost center is in a servant position and the IT functions are not held in the same level of respect.

Producer vs. Maintainer

There is another subtle difference in “software developers” at times that can play out in affecting you position. Some people build tools and processes and some people build deliverable product. In the software realm the tools can include continuous integration modules, deployment tools, operational helper tools, code generators, etc. Product includes things that directly sell outside your organization. If you are a developer working on the toolset *primarily* you are secondary to those working on the end product – you are in effect serving an internal customer.

Deadline driven vs Shame-driven

When we interview someone we always ask how the end game of projects work – “Do you work off of deadlines?”, “Who sets these deadlines?”. Many internal customers have false deadlines because there is no competition – are they going to go use another internal accounting department? The same fire does not always exist in those working in internally-facing companies. Just because your coworkers are smart this doesn’t mean they have any hustle.

Industry and Economy

The industry that you are building solutions for can matter because the level of tolerated innovation differs across industries and product categories. My first full-time programming job was working on an audio-dispatching call center product that was sold to air traffic controllers and 911 call centers. The sales cycle for this product was very different than other industries – if a client saw a demo and a single thing went wrong they would typically say: “We will reevaluate changing our product in 5 years, get back to us then”. This is obviously different than the change cycle for a web-based project management tool that might receive changes every two weeks.

Customer distance

How “close” you are to the customer matters as well whether that customer is internal or external. While only some developers are interested in directly speaking to customers, the dev team’s distance to the customer can affect whether or not what they are building matters. As a producer you should care very deeply about whether you are building the right thing.

* Internal clients means full-time – if you are working on a project for an internal client the effects are more minor. Most of what is mentioned above is when you wake up everyday to a world of internal client demands only.

Complexity

In software development there are three levels of complexity that are in play.  You should focus on the primary complexity: taking a complex business problem within its native domain and designing a technical solution.

Examples of primary complexity issues are designing a strategy-based plugin architecture for mortgage calculations, designing a star schema to later use for predictive analysis of snack cart Skittle consumption on college campuses (spoiler alert: finals week and wild berry are a solid marriage).  Secondary complexity in software include items that the folks in the domain don’t understand but the technical folks need to do their work quickly. The QA team, the fact that you need to upgrade Visual Studio every two years in a Microsoft shop, your check-in policy and coding standards – these are typical examples of secondary complexity.  Tertiary complexity are items that the domain folks and the technical folks don’t fully understand. The fact that Steve and Ralph freaking hate each other, the morale impact of low raises on a team, the fact that communication can kill a team over a certain size, poor meeting practice, etc. are all examples of tertiary complexity. This type of complexity is colloquially referred to as “bullshit” (in some provinces “horseshit” or more rarely “dogshit”)

Consequences

The levels affect each other predictably. If the problems of one level are not solved, they affect levels above them. If half of your team are French and the other half hate French people, that’s a tertiary complexity problem that will lead to awkward code reviews, poor rework throughput and affect your ability to ship software that solves domain problems. If your QA and UAT databases “timeout” more than a cranky 2 year old, you can’t ship software.

Talent Effect

By “effect” I don’t mean slow down only. If you have too many secondary and tertiary problems, the people that work in the primary domain will grow frustrated. In software development these are creators – developers and those that feed them information (BAs, User Interface folks, reedit). This is a dangerous situation. If you hire a talented pizza chef but all the pizza shows up two hours late (or not at all) you have secondary problems (failed delivery channel – broken down Civic) or tertiary problems (your delivery guy likes pot more than tips) eventually the chef will feel that their work doesn’t matter and leave.

Management

If you make the move from developer to manager, you are effectively saying that your team will handle the primary work while you work on secondary work (processes) with their input, but try as much as possible to shield the tertiary problems (bullshit) from them. Where this gets more complex is when tertiary complexity is high in an organization. The most striking example of tertiary complexity in some organizations are middle managers jockeying for promotion position – this activity does not improve processes or help with production, but creates a situation in which these things are harder.The balance of tertiary vs. secondary complexity is indicative of where a company is and whether it can heal its key problems. If the tertiary complexity is low, then there is enough management capacity to solve secondary issues and allow producers to create great things.