Skip to content →

The Allens Posts

Guidance for My Staff

I’ve been managing software development teams for about 20 years at this point and have developed 3 primary guidelines.

Don’t surprise me

I really don’t want to hear bad news that you knew about from someone outside our team. I’d rather hear from you that something is about to go wrong so we can figure out the best way to deal with it proactively. Things do go wrong – sometimes caused by you and sometimes not. I’m not interested in fostering a blame culture, rather a “how do we fix this” culture.

This hold true for promises you’ve made as well. If you said you’d be done on Friday and Friday comes and goes, I’m not going to be happy. After all you gave me the timeline. If you come to me on Wednesday and let me know that you are not going to make the Friday timeline for <insert reason> then we can discuss the impact and and how to mitigate it.

Loop me in

One of the primary jobs of a manager is to be the line of communication with the rest of the business, both into and out of the development team. That is why we spend so much time in meetings – either gathering or dispersing information.

My specific guidance is to CC me on any communication that isn’t internal to the team. Emails to the VP of Basket weaving? CC me. Emails to that vendor’s support team? CC me.

Why? Mostly because I don’t want to waste your time or mine asking you if you responded to that email. Since there is a zero cost way to keep me informed take advantage of it. It also lets me know if I should step in should things spiral out of control. Mostly I’m a silent bystander.

Take a moment and think

I have an open door policy (a virtual door these days). I want you to come in whenever you’ve run into an issue. Not that I’m all knowing and can give you an answer, but I’m happy to work it through with you. The mere fact of verbally trying to express the issue will often trigger new thinking.

However, before you come to me I want you to take a moment and think. The saying I use is:

  • One idea isn’t a choice
  • Two ideas are a dilemma
  • Three ideas are a choice

Software development is a nontrivial activity within a company of any complexity, which is why most of us enjoy it. When I hire people I treat them like professionals and expect them to act like professionals. A big piece of that is recognizing that software fits into a larger puzzle and other people depend on us doing our job well. That builds trust, and trust can overcome the occasional bump in the road, especially when there is good communication between all parties.

And that is the crux of the 3 guidelines – communicate and communicate well.

Comments closed

His nightmares with engineering estimates

Hiten Shah wrote an article titled “My nightmares with engineering estimates” where he blames everything on estimates. Now I get that he is using a little hyperbole to gather interest on his next post which is going to reveal The One True And Righteous Way™ but I need to get a few things off my chest.

Before we get into this I do speak from experience. I’ve been building software for 30 years in all sorts of roles and team sizes. I’ve been thinking about this estimating stuff for a long time as well. See my 2008 post on estimating.

No Estimates

Hiten describes how they got started with KISSmetrics without creating estimates and how they got to a point where it was going to take 90 days to make the system performant for customer demand.

We were screwed. All because of no estimates.

I have to call BS here. They got to this point because they traded speed to market for quality (by his own admission) and didn’t think about the non-functional requirements (such as performance). Not many of us have the problem of too many customers. Sounds like a great problem to have.

Had we estimated during our 30-day buildout instead of after, things could have turned out really differently. The business could have grown faster and been bigger today.

I have a hard time believing this as well. Having estimates doesn’t mean you have a high quality product that meets all the customer’s needs. I’ve worked on many systems over the years that were estimated at the start of the project and it still didn’t meet the overall goal of satisfying the customers or stakeholders.

Hiten lists 3 no estimates pitfalls:

  • No Tradeoffs Made
  • Too Much Time Communicating
  • Tasks Aren’t Broken Up

Part of product management’s job is to evaluate the opportunity vs. the cost which means making trade offs. Estimates are one input into that decision making process. I would claim it is a second level factor not the primary driver as he appears to be asserting.

Comments closed

Product Characteristics

Every now and then I get a product where there was limited effort put in to translating the description or instructions. This is the latest one:

This product is a new science and technology product and made with high and new science and technology. It can illuminate only placing it in rhythm.

No need any power, no environmental pollution. Low noise and health. Comparing with common torch it can be several times on lift.

Constantly using the health torch it can benefit to your palm, arm and shoulder stretching and blood circulation, so as to let your hands relax and brian clever hand and brain coordinate and promote your brain memory and health composition.

Comments closed

Back end vs. Front end

A co-worker sent me this today. So representative of many systems.


Comments closed

The demise of the checkout counter?

John Stewart wrote a piece called Payments Execs Already Foresee the Store Checkout Yielding to ‘Uberesque Approach’ where he identifies a number of situations where the traditional in store checkout process is disappearing.

Technology already exists that allows customers to order ahead and pay, to order while standing in the aisle in front of the merchandise, and to pay for services like car rides without an actual checkout. Now some see these processes ultimately rendering in-store checkouts obsolete.

This is an interesting take on the demise of the checkout counter. I can see this happening in situations where the customer knows what they want and there isn’t any value in standing in line to pay (Starbucks) or the transaction is essentially pre-approved via some other action (Uber).

The take and bake pizza chain Papa Murphy’s has introduced online ordering with a separate counter to pick up pre-paid internet orders. The convenience for me is fantastic, but I wonder if the overall store revenue will go down due to the lost opportunity to upsell at the time of checkout. Obviously you can do this in the mobile app – time will tell which is more effective.

I would really love to see this in my grocery store. Standing in line so the cashier can handle everything I’ve already put in my cart is something I wouldn’t miss.

I really don’t see this in markets where the final price is unknown or the customer is looking for advice/expertise. Automotive repair springs to mind as the technician needs to evaluate the vehicle and discuss with the customer what work they want done and how they will pay for it.

Comments closed

Why Uber and Tesla are not “disruptive” companies

“Disruptive” is another one of those word that get thrown around and gets applied to everything.

Disruption theory as described originally by Clay Christensen has 3 parts:

  1. Customer dependence – low end, niche market, incumbents don’t care about or don’t see. The existing solutions are overkill and too expensive for the customer.
  2. Fundamentally different business model – allows you to serve the niche market profitably.
  3. There is a technological accelerator (enabling technology) – allows you to serve the mainstream with the new business model.

Disruption theory describes a pathway of how a small startup can succeed against dominant incumbents. It doesn’t describe the impact to the market. Building a better mousetrap is not disruptive.

Let’s take a look at Uber.

  1. Is Uber selling to a low end market that the taxi companies were unwilling to serve? Nope, the number of rides in New York has been constant before and after Uber showed up.
  2. Does Uber have a fundamentally different business model? Maybe, using privately owned vehicles, but still charging per mile.
  3. Is there an enabling technology? Doesn’t matter since they are not moving from an underserved niche to the mainstream.

How about Tesla?

  1. Is Tesla selling to a low end market that other car makers don’t care about? Nope, this is the primary market for Mercedes, Lexus and BMW.
  2. Does Tesla have a fundamentally different business model? Nope.
  3. Is there an enabling technology? Doesn’t matter since they are not moving from an underserved niche to the mainstream.

A lot of this content was spurred by an interview with Michael Raynor on the A16z podcast.

Comments closed

What is the Sharing Economy?

You Keep Using That Word, I Do Not Think It Means What You Think It Means

The “sharing economy” it is a phrase being thrown around a lot and has a pleasant connotation – after all didn’t your mom tell your that sharing is nice?

But what is it really? Say I need to get downtown for a meeting. In the old days I might call you up and ask for a ride or you might loan me the car for a couple of hours. But only if it didn’t conflict with your need for the car.

Enter Uber. Uber is a car “sharing” service. You create an account with Uber, then when you need a ride somewhere you use the app to request a ride. Someone then shows up and drives you to your destination – for a price.

The last time I checked sharing didn’t require payment. Also how is this different than calling a taxi service?

Airbnb is a home “sharing” service. But it really isn’t any different than any of the other short term rental services than have been available for decades.

What is really going on is that it has become effective to set up two sided markets since both those who have something (suppliers) and those who need something (consumers) are now online. The company setting up the market provides an easy way for the 2 parties to connect. Given enough suppliers there will always be availability for the consumer. Since the job of the company is to ensure there are plenty of suppliers for the consumers rather than purchasing and maintaining the product there is little overhead other than marketing.

Even this isn’t a new concept. I once did some work for a company whose product was a catalog of other companies that had manufacturing waste such as scrap steel and construction debris. They spent all day on the phone calling other businesses looking for someone who wanted these things. What is different now is the cost of finding these people.

What is new is that since it is so cheap to connect suppliers and consumers now it becomes effective to rent items that are less expensive. I don’t have to have a fleet of cars, I can just rent the one I have and only when I want to. The market of suppliers provides coverage when I am unavailable.

All the suppliers are also listed in one place (not really since there are competitors to Uber) so it is easy to find one. Additionally there is typically a reputation system so that both the supplier and the consumer can rate each other. This keeps the system in balance and encourages both parties to be nice and do a good job. However, that reputation is only good for that market. I can’t take my Uber rider reputation and use it at

I get that the term “sharing economy” is here to stay, and that’s fine. But the next time I share my cookies with you expect a bill.

Comments closed

What I look for in a Remote Employee

I hire technical people primarily. Each position has a number of key technologies that need to be accounted for. I use the “audition” approach wherein the candidate does what I actually want them to do as an employee (e.g. write code). I’m not all that interested in how well they interview (although it does helps me understand their soft skills).

Hiring in-person  for a position in our office is different than hiring a remote employee who will interview and work remotely.

Beyond the basic technical abilities which are teased out during the audition the key traits in a remote employee I’m looking for are:

  • Good communication – not too little and not too much, gets clarification when needed.
  • Follows direction – we do things a certain way for a reason, but we are open to change if it improves things.
  • Experience as a freelancer or a remote employee.
  • Proactive – doesn’t wait for permission to do what they know is necessary.
  • Willing to take and act on feedback – they will do something wrong at some point and we will tell them so, what they do next is key.
  • English skills – they don’t need to be Shakespeare, but we shouldn’t always be requesting clarification.
  • Workspace – good internet, good computer, dedicated quiet place to work.
Comments closed

Electric Vehicles and Infinite Torque

I’ve seen/heard a couple of references to electric vehicles having “infinite torque” and something seems to be lost in translation. What they are referring to is that electric motors have “peak torque” available at 0 RPM. Essentially their torque curve is flat unlike internal combustion engines.


Image courtesy of

Note that the torque curve doesn’t stay flat forever, eventually the limitations of physics prevent that.

Below is a comparison of a Tesla Roadster and Chevy Camero from


The following graph shows the torque each car’s rear wheels experience during an all-out run from a stop. The dips in the Camaro’s torque are the shifts between gears, which happen quite quickly and are among the smoothest you’ll see. Note that the Tesla has no interruptions. Between 0 and 55 mph, the Tesla is the clear winner, even though by 40 mph, the Tesla’s AC motor output begins diminishing.

Comments closed