Friday 23 January 2009

The E-Myth Applied to Software Startups

In his book "The E-Myth", Michael Gerber asks why most small business don't work, and what to do about it. His main point is that people who go into business on their own tend to do so in order that they won't be working for someone else. Moreover, they tend to be the "worker" or "technician" type (not the manager, or strategist), who is good at creating the widgets/loaves of bread/furniture/other product. So they open a widget workshop/bakery/carpenter's workshop/other place as a one person venture.

So far so good. The new business probably works well, because the owner has enthusiasm and is skilled in what they do. However, the owner spends all of their waking hours attending to the work of producing the product. Gerber gives the example of a pie shop, where pies are baked early in the morning, sold throughout the day, and cleaning is done in the evening, all by the owner. The owner probably neglects areas of the business they don't know much about, such as book keeping. Neither do they get any time off. Crucially, they don't sit down and think where the business is heading (strategy).

Gerber argues that most of these people need to let their inner entrepreneur blossom. They need to own the business, rather than the technical work that goes into product manufacture. They do this by having a vision of the future of the company, and shaping the company to it, rather than shaping the future by what routine dictates. As they grow the company, they need to impart this vision to their new employees, and begin to make that vision a reality by taking on more of a managerial, and less of a technical, role. Part of this, Gerber, argues, involves documenting all the processes (e.g., how to make pies) that go on in the business, in order that the owner no longer has to check up on every step of production done by his/her employees. The result is a business that is easy to franchise.

Whilst this all makes sense for a business that produces something tangible, how can we apply it to software startups? Whilst not having a huge experience in this area, I thought I'd have a go at answering this question.

Firstly here are some of the differences I can see between the two situations:
  • The capital cost of writing software is relatively small, unlike the initial investment required to rent a retail unit for a shop, or build a factory. This means that non-software businesses have to go and find funding, which normally means other people will take a look at their business plan before the business is set up. If you're spending life savings then it's different, but if you're writing software you're doing that too (just to keep food on the table)
  • One doesn't tend to want to franchise software production. Outsource, possibly, and certainly bring new developers onboard. But the procedures that the startup uses won't be set in stone by the owner: they'll change as the company grows. What revision control system you use, or bug tracking software, or code format only needs to be specified at a later stage than what recipe is used for pies in a bakery.
  • The cost of modifying software is very small. The cost of changing every widget that you have in stock because there's a flaw in it is at least linear in the number of widgets, so you'd better get it right first time. With software you can "plan to throw one away" (Fred Brooks; see my post The Mythical Man Month: Still Applicable Today).
  • If a software product is intended for mass market, it's likely that its users will not understand how it works, and can't easily reverse engineer it to find out how. This is very different from most tangible products: most people understand vaguely how a pie is made, or have a mental model of how a car accelerates from standstill.
(I'm sure there are more: comment and let me know!)

I do think that technical people are as susceptible as any others when it comes to "working in their business rather than on it" (Gerber). But what exacerbates the issue is that software startups don't need initial cash, and hence owners aren't obliged to have anyone looking over their shoulders! Add to that the ease of (radically) changing their product, and suddenly the software startup is one where it's far more acceptable to have no real vision or idea of what you're doing. It's therefore very easy to waste time and then fold.

Software engineers are highly technical. In my experience, many dislike having to explain to a customer how a product works, and would hate to provide a dreaded technical support helpline. Instead, they argue that software can be made good enough that no support is needed, or those that do need support are evidently so lacking in intelligence that they don't deserve it. Yet this is crucial to getting the product sold to a mass market! Customer service is perhaps most needed in this business, and yet the software engineering stereotype is the worst-placed to provide it!

Linked to the previous point is the observation that performing market research is difficult. For a pie shop it's pretty easy: "Do you like apple pie, or would you prefer blackberry?" Software isn't as easily understood by the man on the street: "Would you like to buy my new super-fast sorting algorithm?" doesn't mean much. It requires the software engineer to divorce themselves from the beauty of the technology, and concentrate on its use by potential customers.

Another interesting issue with the low cost of modifying software is the speed at which new technologies (languages, tools, plug-in modules) become available. Unless a lone entrepreneur has a strong vision and will, it is very easy to frequently change to the newest technology, in the belief that this will create a better product. Of course, sometimes it does. But change has a time cost, which is much harder to quantify than the capital cost of buying a new piece of hardware, say.

Finally, as noted above, documentation of processes is far less important (in my opinion) for a software startup than for widget production. Gerber argues that documentation means practically anyone can read the "manual" and then achieve good results. I would argue that software is different in that it requires excellent people, as code quality can only be influenced by procedures to a small extent. In addition to good software engineers, there is a real need for one person with an overall view of what the aim and uses of the product are: they can then ensure that all the developers work in concert towards the vision of the company.

Thursday 22 January 2009

If You Get a Little Better at Sales, You'll Be Way Ahead of the Market

In my dealings with fellow Computer Scientists, I've noticed that many don't see the point of sales and marketing. Instead, they focus on technology. That is not to say that they are all totally unaware of sales/marketing, but if they do see the point, they see it as someone else's task, definitely not one for them to get involved in. In another excellent presentation from the Business of Software 2008 conference, Paul Kenny (of Ocean Learning) talks about how to be a better salesperson. Crucially, he dispels many of the myths that technical people hold about the role, addressing those in startups in particular. Here's the video, with my notes below it.




  • If you have a bad opinion of salespeople, it's likely to be because you have experienced the "bad apples", rather than sales being a terrible thing in principle.
  • Myths
    • Products "sell themselves". (False, though great products can sell themselves to an extent.)
    • Our customers "don't like being sold to". (Actually, they don't like being sold to badly!)
    • Techies don't "get" sales people. (Not true! You sell to VCs, to your friends/family supporters, to your first employees.)
  • How many of the people who, say, view your marketing video, call you for a demonstration? If it's only 5% (likely!) then you need a person to follow up: normally it's not something wrong with the product that stops someone buying it; it's other things getting in the way.
  • The people who have the need for your product are probably not the people with the money. You need a salesperson to go and talk to the people higher up, to make them feel the need.
  • Talk about specific uses/users, not the science/how the product works. If you can convince your buyer that a user they know personally will benefit from it, that is a powerful sell.
  • Users have "needs behind needs". People will tell you that the reason they buy an SUV is because they like the 4WD or stability. In practice they actually like SUVs because they make their families safer when driving, or for the feeling they get when they are able to look down on other drivers.
  • Be prepared to go one-to-one with customers to understand their particular situations and what features they will use.
  • Sales are very dependent on the emotional impact of your product. You need to position your product in people's minds. Trade-off between perceived cost and perceived value. Note that it's perception that matters, which can be managed by a salesperson.
  • If you want a salesperson, don't recruit a stereotype! Start with what you need them to do: fast response (cheap product), or in-depth service (expensive product, high risk for client). They require different skills.
  • What is your company culture? Will the salesperson you are recruiting exude that culture? Don't stitch customers up.
  • Don't worry about admitting that your product isn't suitable for a customer's needs; they will remember you, as you'll probably be the first person who was honest with them in that way.
  • Don't hire experience, hire attitude first (then experience!). You can't train attitude into someone. If a candidate hasn't researched your company much at all, or is lax in some things, don't hire them: they will be the same about your customers.
  • Skills: self-starting/self-motivated, intelligent in questioning/listening, sounds/looks like they mean it, can deal with resistance, persistent.
  • Sales take huge amounts of energy: have a dedicated person, rather than combining with other jobs. If you can, have more than one salesperson to spread the load, and motivate each other.
  • If you have no dedicated person, and all of you in the company do some sales, come together and do it at the same time.
  • Don't just reward deals: that will result in salespeople who don't care about the customer. Instead, reward contact with customers, and show interest in those skills.
  • Sales can be boring: how can you vary your salesperson's job, on a regular basis?
  • Train your salespeople regularly. They will go off the boil otherwise.
  • For high-value salespeople, bonus them over 6-12 months, as such sales take a long time. Low value sales are different, probably bonus over short term.
Ultimately, show your salespeople that they are hugely important to you, motivate them, and ensure that they develop relationships with customers.

Wednesday 14 January 2009

Why £10,000 Isn't Enough For Good Teachers

The UK government has recently announced a measure to encourage teachers to work in underperforming schools. They will be paid a £10,000 lump sum if they work in one of said schools for three years. "Brilliant," you say, "that means that we'll get good educators where they're most needed!". Well, yes and no.

Firstly, let's note that for 3 years, that's only £3,333 a year, hardly a huge pay rise. If you then note that the (minimum) starting salary for teachers in inner London is £19,827, rising to a minimum of £26,000 in the second year, then you're talking about a salary of around £30,000 for a teacher in their second year in inner London. For a teacher in the Midlands, this works out at about £24,000. (I'm using minimum figures mainly because I don't have any others, but also because I doubt most under-achieving schools are paying radically higher salaries.) Forgive me if I sound doubtful as to whether you'd be encouraged to go and be a teacher at £24,000 (in a difficult school, to boot). The inner London salary sounds more plausible, but then if you worked in the City you might get £50,000 in your second year... Will someone please explain to me how we're encouraging the best to teach?

Secondly, it turns out that government only funds 50% of the £10,000, so schools have to find the other £5,000. Admittedly I'm no expert on how much control schools have over salaries that they offer, but it seems to me that if they had extra £5k cheques lying around, they'd already be using them on salaries? Hence I can't see where the money is magically going to appear from.

Thirdly, what happens after the third year? Do the teachers leave? Are salary increments in the third, fourth, and fifth years going to amount to a total of £3,333 (equal to 12% of 2nd year salary in London, or 16% in the Midlands)? That would mean a rise of 3.8% per year in each of the three years in the Midlands (2.9% in London), which seems unlikely if the government wants public sector pay to rise at 2% per year.

So will it work? I doubt it. Far better to think about how to give teachers a sustained increase in pay, so that they can, for example, afford to live close to the schools they work in. Thomas Friedman has it right when he says that the US should give teachers a tax cut. That has the advantage that it doesn't involve increasing the budget for education, but instead squeezing tax revenue somewhat. If the UK wants to educate its children, that might be a good start.

The Mythical Man Month: Still Applicable Today

I recently read Fred Brooks' "The Mythical Man Month" 20th anniversary edition. It's a collection of essays on software engineering, mostly from a management perspective, on topics such as what sort of teams work well for writing software, what management mistakes tend to be made, and what hope there is for speeding up the process of writing software. Definitely worth a read.

Although most of the essays were written in the 1970s, I came away with some interesting conclusions which are still applicable today. In particular:
  • Adding man-power to an already late software project will just make it later (otherwise known as Brooks' Law, this effectively expresses the non-equivalence of men and months).
  • Constructing programs for commercial release takes about nine times as long as for private use, because of adding generality, integration, and testing.
  • Teams modelled on surgical teams work well. One lead programmer, supported by a subordinate programmer, both of whom know all the code in their module. They are supported by administrative and QA staff. This means that in a team of up to 10 (perhaps fewer now?) only two are really programming, the remainder take care of all the rest.
  • Architecting software and implementing software should be separate. This allows the architect to think clearly (and cleverly) about the design, and the implementer to intelligently make that design reality. Both are hugely important and demanding roles.
  • Ultimately, there needs to be someone in control for the system to be architecturally sound as a whole: hence there is a tree-like chain of command. However, socially (for communication) relationships should be more of a network, not having to pass through intermediaries in the tree.
  • The second system built by a team is likely to be bloated.
  • Ensure that architectural decisions are communicated to all the team. This includes telephone/e-mail clarifications made to implementers (use a wiki?)
  • Documentation writing for the entire system should be the work of just one or two people, to ensure consistency.
  • In a team, the roles of producer and architect are unlikely to both be assigned to a single person. The former is a project manager (finance, schedule), the latter is the technical director.
  • Giving teams CPU cycles/memory bytes/bandwidth allocations for their modules avoids overall bloat.
  • Flowcharts for software are only useful for the most high-level of view points.
  • Plan to throw one interation of software away, i.e. be prepared to construct a pilot, show it to the customer, and then re-write from scratch.
  • Technical and management staff should have career ladders that have rungs of equal status (office size, salary, administrative support...)
  • Get an outside group (not the developers) to analyse the initial specification for holes.
  • Have a schedule with well-defined milestones. This avoids developers deceiving themselves as to whether an ill-defined milestone has been reached.
  • Have "scheduled" dates and "completion" dates. The former is what the plan says, the latter is what the developer team's manager says is likely to be date of completion. The boss needs to avoid trying to do the team manager's job by suggesting changes to the implementation in order to change the completion date.
  • Documentation needs to give a wide overview, then zoom into the detail.
  • No silver bullet: it is unlikely that there will be a significant advance in software engineering that reduces the complexity of the process by an order of magnitude, any time soon.
Brooks evaluates the above 20 years later (1996?), finding that they still hold true. They also sound very relevant to me now!

Wednesday 7 January 2009

Does Congestion Have a Cost?

Many of the costs of driving are fixed (see the AA's driving table of driving costs...). However, that doesn't change the fact that they exclude some people from owning/driving a car (as does a congestion charge, i.e. it's not really any more of a social discrimation factor than other motoring costs). As regards whether they influence whether people use their cars or not, if we do want to discourage car use then more of these costs must be made variable, i.e. if one drives less one pays less. Some steps have been made towards this, e.g. pay as you drive insurance (Norwich Union being one example). If road tax were also usage-dependent (as well as on emissions and vehicle weight) this would further encourage people to carefully consider each car journey.

Does congestion itself have a cost? I would say "definitely". Before listing a few example costs, one interesting point to consider is the price people are willing to pay to avoid congestion (which hence puts a value on it). Clearly people do place a value on getting round congestion, as evidenced by people using toll roads (e.g. the M6 toll) instead of alternatives. What costs does congestion have? A few are:

  • Longer journey times, which means less time at work, or with family. Either results in lower productivity and hence lower incomes. For some businesses, such as multi-drop deliveries, more congestion means more vans/drivers are needed.
  • Air quality is considerably worse with large numbers of cars idling, then continually undergoing stop/start transitions (as in congested cities). Higher levels of pollution cause long term health problems (asthma, probably lung cancer...), which then cost the tax payer via the NHS.
  • Journey costs are increased to the driver themselves, as congested conditions will mean less efficient fuel burn, plus extra wear and tear on the vehicle due to continual stop/start behaviour.
  • Congestion has been linked to higher incidents of vehicle collisions, which both increases health costs and insurance/repair expenses.

All of these costs have significant values (hence the £12bn/year estimate I gave in the post titled "Road Pricing & Delivery Vehicles"). This is both in costs to individuals and to society as a whole. However, clearly these costs aren't ones that the average driver considers when planning a journey (e.g. every time I go to the shops I don't think about the tiny increase in the probability that I'll get lung cancer). Moreover, such costs are paid for by everyone, regardless of whether they drive. It seems fairer to charge those who are causing such costs accordingly.

Further details of the costs of congestion can be found in section 5.5 of VTPI's "Transportation Cost and Benefit Analysis".

A congestion charge could indeed be used to raise tax revenues. However, there is nothing to stop a government, in principal, committing it to be spent on transport. This has been the case in London, Bergen, and Stockholm. Such revenue hypothecation is one of the characteristics of successful congestion charging schemes (if only the UK government would learn that).

In terms of high fuel duty not affecting congestion, that is correct: it simply increases the costs of driving, regardless of when or where (apart from using more fuel in congested areas). A congestion charge (particularly time-variant) provides an economic disincentive to people from travelling in congested areas at peak times (i.e. causing congestion). Petrol prices do have an effect on how much people use their car, as was seen in the USA recently when prices were particularly high (estimate of 58 billion fewer miles travelled in first seven months of 2008). However, that just penalises everyone wherever, whenever.

Overall a government needs to be clear on whether they want to reduce congestion, which is discouraging people from travelling at certain times in certain places, or to reduce total vehicle miles, which can be achieved by increasing the proportion of the total cost (but not necessarily the total cost!) of running a vehicle that is distance-dependent. Of course, we probably need to do both, (carbon dioxide emissions now being hugely significant will require us to cut down total vehicle miles; congestion costs us all, as described above).

So: does congestion have an economic cost? Yes, definitely. But do people really take that cost into account at the moment? No.

(Cross-posted from the thread on congestion charging over at the Cambridge Network social network.)

Does Road Pricing Force the Poor Off the Roads?

The short answer to this question is "yes".

The long answer is more interesting. I agree that road pricing/congestion charging might price some people out of using the roads at rush hour. But the same could be said of petrol prices, or road tax, or insurance... The key point is that roads are not free to use for any motorised vehicle now. The aim of a charge is to make road users (effectively) pay the economic cost of the congestion they cause: yes, this means that the rich can cruise in more quickly than before. But today the rich can use their private car versus having to use the (cheaper) bus service. The poor have less choice.

If the charge is set correctly, and there is a viable public transport alternative, the (really) less well-off in society end up with a more affordable and efficient public transport service than at present. The issue is that congestion is damaging to a country's/region's economy as a whole, and the only way to reduce that is by reducing the number of vehicles on the road at rush hour (i.e. somehow people are forced to change journey timings or move on to public transport).

Jon Davies makes another interesting observation: if a congestion charging scheme is made revenue neutral (i.e. total revenues raised by government are the same as currently under road taxation), then it might in fact become cheaper for the less well-off to drive at certain times (e.g. midnight). That might mean some people could afford to use the road who cannot at present.

For some facts and figures on cost/benefit of cordon-based road pricing, see the results of the Stockholm trial. The last page details benefits of reduced journey times, cleaner air, etc..

Ultimately, is being able to afford to use a car a "right" or a privilege? If we had good public transport I think I'd regard it as more of a luxury... Thoughts?

(Cross-posted from the thread on congestion charging over at the Cambridge Network social network.)

Road Pricing & Delivery Vehicles

At the risk of this blog losing its (already vague) focus, I thought I'd post some of my thoughts on congestion charging, a form of road pricing. Over at the Cambridge Network social network there's been a thread on this precise subject, as there are proposals for such a scheme in Cambridge, UK. So I'm now cross-posting my thoughts here.

As regards congestion charging being good/bad for business, it's really dependent on the increased value it generates versus the costs. In the case of deliveries, it can be argued that the less time spent in traffic jams, the lower the fuel costs, and also the more deliveries per day a single van can make. If deliveries during rush hour are essential, then the above benefits apply. If not, then (with a time-varying charge) the delivery firm would not incur the charge.

Meanwhile, if a charge means that people spend less time in traffic jams and more time at work or at home, employers are likely to benefit. The real problem with evaluating many congestion charging schemes is the cost that's attached to current levels of congestion. Estimates in 2004 were £12bn/year for all of the UK (Feasibility Study of Road Pricing in the UK, Dft, 2004). Similarly, in the USA, the 2003 estimate in the Texas Urban Mobility Report was $63bn/year.

The real question is therefore whether people appreciate what the cost of their causing congestion is.

Monday 5 January 2009

Rebooting America: Applicable to the UK?

Thomas Friedman, author of the excellent book "The World is Flat", argues in an article in the New York Times titled "Time to Reboot America" that Americans need to subscribe more to the "tax and spend" philosophy, and less to the "borrow and spend" ideal. Good plan.

His writing concerning the USA resonates with my thoughts on the UK's economy. True, we don't have a history of such enormous government debt (currently the USA has $10 trillion), but as a population we do have this mad mentality of "we want more public services, and lower taxes". Governments therefore attempt to cut spending in areas that the public won't really notice, particularly long-term projects that have no short-term political pay-offs, and in addition try to show that public services are getting better by creating targets. (One example of an ill-conceived success measure is the number of people who have stopped smoking with NHS help: it's measured by number of people who have not smoked for 4 weeks after the treatment program. In practice it's not clear what "not smoked" really means... See Assessing smoking cessation performance in NHS Stop Smoking Services.)

What does this result in? Hospitals, schools, and local authorities all spending disproportionate amounts of time on taget-related paperwork and skewing their activities to fulfilling those targets (e.g. by moving patients out of Accident & Emergency departments quickly, then leaving them in over-crowded wards, or "teaching the test" for SATS exams). More worryingly, progress on energy policy, long-term sustainable transport, and actually making the UK a knowledge-based economy is glacial.

Ultimately, if the UK wants to remain one of the world's most powerful economies, it cannot rely on manufacturing (we've seen that go East long ago, for the most part). It can remain so if it continues to climb educationally higher, i.e. if its population continues to have greater intellectual capital than others (see Friedman's book for more on this). At present this clearly isn't happening, despite what government targets would have us believe. Students at the top universities in the UK are becoming more international, particularly at postgraduate level: in 2006-2007 2,926 students at the University of Cambridge were from the UK and EU, whilst 1,856 were from the rest of the world (see University of Cambridge Facts & Figures), implying that home grown education is by no means the best in the world. Meanwhile top universities have expressed concern over the standards of the pupils applying to them (and difficulty using A-Levels to differentiate between them), and institutions such as the Royal Society of Chemistry have shown that O-level/GCSE exam question difficulty has dropped.

So, what's to be done? The UK sits between the USA (low taxes, little state welfare) and the countries in Scandinavia (high taxes, huge amounts of state welfare). I don't believe this helps anyone, as the UK population expects Scandinavian welfare, and USA taxes. If we are seriously committed to a welfare state, we must increase our levels of education.

Why do I think this? Because until people have higher levels of education, it will not be easy for a government to convince them that certain "painful" decisions are necessary. If people understood that 20% of the UK's power is produced by nuclear stations, how most of those stations will close down in 20 years, how new stations take about a decade to design and build, and how renewables alone are not going to satisfy our energy demands (see David MacKay's book Sustainable Energy -- Without the Hot Air) they might be more pro-nuclear. I don't think it's a coincidence that Finland has one of the highest public library borrowing rates (loans/head of population) in the world (in 2002 this was 20.7 compared to the UK's 6.8 [see LibEcon Public Library Statistics, and the Finnish Ministry of Education's Public Library Statistics]), and them being the first country in Western Europe since 1991 to build a new nuclear reactor (note that Finland is a lot closer to Chernobyl than the UK). Of course there are lots of other factors. But I don't think it would have been approved by the population had they not understood the good reasons for it. Lorry charging on a per km basis is another issue that the government has wasted huge amounts of time and money on, whilst not actually achieving anything. Meanwhile, the German and Swiss governments have used the time to implement systems that work well, and moreover are now being upgraded to the next version (see my paper titled "A Survey of Technologies for the Implementation of National-Scale Road User Charging" (Transport Reviews, 27:4, Jul 2007).

In addition, paying people who actually generate long-term value is hugely important. (I'm somewhat biased having read for a PhD, but anyway.) If people with PhDs have no job security in going into research, and moreover can earn 2-3 times as much going into jobs in the financial sector, they will do the latter. That means that 20 years down the road a lot of research that could have generated new products, jobs, and hence economic value hasn't been done. Similarly, if teachers aren't paid enough to attract the very best people to the profession, we will miss out on educating the next generation of knowledge workers. Oh, and by the way, we're trying to become a knowledge economy... If those teaching children science or mathematics do not really understand what they teach, or have enthusiasm for it, why are we surprised when applicant numbers for science/maths degree courses fall (2005)? (Though that decline may now be being reversed, 2008.) Note, however, that there are many good teachers. My point is simply that, in a very general sense, you get what you pay for. Can we afford not to invest wisely now, to obtain long-term gains?

Conclusion: the economic outlook is bleak. We can try to borrow in order to prop up existing ways of doing things, or we can try to re-invent ourselves as a truly knowledge-based economy. That will take time, but is more sustainable than sticking our heads in the sand and asserting that the government should bail us all out of our economic misery so that we can keep doing what we've always done. Oh, and whilst also protesting against the increased taxes that would be necessary to fund such an endeavour.

Any thoughts?

Update: Jon Davies suggests that one reason people expect government to provide more services for the same, or less, tax revenue is that they think the government wastes this money. I suspect Jon is right, and moreover that there is wastage. However, I suspect society thinks the wastage is far more than it is. Or perhaps not...!