Fog Creek Software
Discussion Board

New Articles

I just finished two articles, and I'm not really happy with the quality of them.  If you could check them out and give me some feedback, I'd appreciate it:

I'm looking for a way to make the points more clear, concise, and conclusive.  Right now, they aren't linked off my home page.

Are they fixable, or should I just let them die?


Matt H.
Thursday, September 12, 2002

Just FYI, 3rd paragraph:

"Two weeks later, the customer may decided to change..."

... on Software Anon: a 12 step program
Thursday, September 12, 2002

Regarding schedules.

Software schedules are difficult things to accurately predict.  The more investigative the work, the more difficult the estimate.  Yet this doesn't mean its a waste of time to estimate software tasks.

Just as code goes through a design, implement, debug cycle - so should schedules go through an estimate, partial implement, re-estimate cycle.  How do you minimize risk, given the nature of scheduling (predicting the future)?

1. I'd say, with continual feedback (hence Joel's "fine granularity" requirement for tasks).  With daily/weekly feedback regarding tasks completed, a first level manager can know where the problem points and blocking issues occur.

2. Bounding the unbounded.  In your estimating, your engineers should be indicating where they see the "investigative" and unbounded problems points.  These usually are not coding issues, they are usually generated by badly behaving partners and/or requirements.  You cannot code what you cannot know.  It is the responsibility of the first level manager to get these unknowns bounded as soon as necessary so that they do not become blocking issues.

You likely won't know ahead of time what the unbounded tasks are until you start writing the schedules.

On our latest project, I have just one "conceptual" (unbounded) problem on the pile to solve.  From there, the schedule becomes very easy to manage as it will proceed linearly with well defined tasks.

... on Software Anon: a 12 step program
Thursday, September 12, 2002


I've just read the mission statement one and I like what your saying.

I think you could benefit on Joels advice on being specific, possibly to humerous extreme.

Give x y and z a name, describe specific scenarios where the mission statement is relevant.

Like you did with you 'Optimus Prime was Wrong' article.  'Optimus Prime' was much more interesting to read about than 'Manager Q.'

Ged Byrne
Thursday, September 12, 2002

Or they write statements of "vision" that aren't just empty, they're self-reflectively, tautologically empty, such as this one from Dell:

"It's the way we do business. It's the way we interact with the community. It's the way we interpret the world around us—our customers' needs, the future of technology and the global business climate. Whatever changes the future may bring, our vision—Dell Vision—will be our guiding force."

Our vision is to have vision? We've gone past vision all the way to metavision? Oh, please! Does any human being ever talk this way?

Now consider this mission statement:

"People for the Ethical Treatment of Animals (PETA) dedicated to establishing and protecting the rights of all animals. PETA operates under the simple principle that animals are not ours to eat, wear, experiment on, or use for entertainment."

Clear, straightforward. Why, you could practically imagine a human being saying these words! PETA's passion is visible in the directness of its language. Or this from Ben and Jerry's mission statement:

"To make, distribute and sell the finest-quality all-natural ice cream and related products in a wide variety of innovative flavors made from Vermont dairy products."

Jeez, they flat out say they make ice cream...not "frozen confectionery consumables to enhance the global dessert and entertainment food lifestyle" or some other self-inflating codswallop.

J. D. Trollinger
Thursday, September 12, 2002

Also, instead of telling people to go to and type in "Waterfall Model"+"Software Development", give them the hyperlink:

Much easier on the reader!

Darren Collins
Thursday, September 12, 2002

"Are they fixable, or should I just let them die?"

You are such the tease Matt.

Both articles are well-written, useful and interesting.

I like the lost keys metaphor, very clever and accurate.

Is the waterfall article in response to same of the statements I've been seeing lately about how 'Any competant developer will design the project before writing a single line of code.' I may be misunderstanding, but such a statements seem to be an advocacy of the waterfall model.

Myself, I go more spiral, but always maintain shippable software. I can't think of a single product I've designed in which I knew every thing I needed to know at the beginning, nor in which it was even theoretically possible to know everything I would need to do a complete design.

Anyway, your article I suspect may have been inspired by some of those people's comments.

But then again, I am of the school that says the code is the design spec and the process of creating code is the process of design...

I do use paper notebooks extensively and have just recently gotten a whiteboard after being without for a few years. I like the smell of the pens but the problem with whiteboards is that they get full of stuff and then stay full of stuff indefinately. That's why paper notebooks work better for me; I can just turn the page and keep going.

Also have lots of text files with brief notes about features and how it should be done. I try to keep these organized to one feature per file.

And often will write a manual page first and work from that as a high level design document -- but it specifies interface only and nothing at all about implementation. Conceptually I like this approach best, but even so what I end up getting is often different from my idea at the manual level.

Creating applications for me is kind of like oil painting -- you're in a continual process of making adjustments, adding things, moving stuff around, under it gets to the right way in which it "just works". Never have known a method to figure out what that way is a priori when designing something completely new that has never been seen before.

blah blah blah

X. J. Scott
Thursday, September 12, 2002

Matt H.

It's 7:30 am on a Friday morning and I am already behind my desk, so I'll bite...

<disclaimer>: I tend to have a very unorthodox view of management. Having started reading the the Havard Business Review when I was aout 13, I think I may just have suffered Management-Speak-Meltdown!</disclaimer>

The fundamental premise behind my argument is that a mission statement, should answer the question "Why are we here?". What is our main reason for being?. Anything else is ancillary. According to the Collin's dictionary, a mission is "a specific task or duty assigned to a person or group of people".

Moving on from that premise, I would argue that the sole aim of a business is to make sustainable profits. Anything else is an operations question.

...Before you bring out the baseball bats, I do understand that some companies are supposadly chasing profits at all costs, to the detriment of their clients, staff or society. This is not what I am advocating. The key word that marks the difference is sustainable.

If you make shoddy products, you might make a killing, but at best, people will stop buying them. More likely in this litigous society we live in, you will lose your profits and more to your victims.

Both "Good Vision #1 and #2", while full of feel good factor, seem to leave out the profit motive altogether.

"Terrible Vision" on the other hand, does begin to address the profitability question, although it looks like it was written by someone in PR.

This is how I think mission statements should be written.
What: "The sole purpose of company X is to make sustainable profits for our shareholders."

That's it. This is immutable. Everyone in the firm understands it, and everything they do should have this one goal in mind. P-R-O-F-I-T is not a dirty word!

As management, we would then decide where our competencies lie, and what service goods we can provide in order to make a profit.

They might be in creating data conversion tools, they could be in providing e-commerce solutions for small businesses, and they could jolly well be in making widgets.

Next step would be to try and identify an existing, or forsee a future market for our product. Is anyone out there willing to pay for data conversion tools? Are they willing to pay a price that is higher than what it will cost us to provide these tools? If the answer is yes, then go into the business.

The profit motive alone is what will make you ship stuff on time, or not go over-budget. Shipping code on time and under-budget suggest a strong well motivated development team. That leads to management creating a work environment and paying salaries that attract this kind of developer.

The staff is happy, the client is happy, and I'm happy.

History is littered with companies who thought they were in the business of X, and continued to want to make the best X, even when no one wanted X at all, let alone the best X.

Stage coaches are a classic example. I am sure a few of them would have had a mission statement that says "We provide 4 wheel stagecoaches for trans continental travel, etc etc.). Where are they now? You could bring out the best trans-continental stagecoach this side of Mars, and you still won't find too many takers.

I remember reading somewhere not so long ago (might be another thread on this forum) about generals who miss the point that the object of war is not to hold a hill, but to defeat the enemy. Again, history is littered with examples where initially, a hill has strategic importance on the battlefield, and an army defends it at all costs. Thousands of casualty's and months later, the hill has lost its strategic importance, but the army continues to defend it at all costs. No one quite remembers why they were defending the hill, but hey, we can't give up now, not after holding out for so long and losing so many men. "Holding the hill",  instead of "defeating the enemy", has implicitly become their new mission.

Most of the more successful, and sustainably profitable companies realise that whatever business they are in is temporal, and totally ancilliary to their main objective, which is to make a profit. They are therefore able to adapt and change to continually meet the needs of the market.

One of the more obvious examples is Microsoft. I don't like them much, but I do have to hand it to Gates et al. They have proved themselves to be one of the more astute management teams in the software industry. Whether they are able to sustain this or not, remains to be seen, but their track record thus far (emotions aside... this is not /.) can't be faulted.

They seem to understand and have the chutzpah to do what it takes to remain profitable.

Management pow wows should be about "Are we profitable? Will we be profitable in 3 years time?" If not, what can we do? Do we higher better developers, pay them more, buy them better tools?

More gut wrenching questions. Is there a market for the software we are developing? Should we be selling the software or the services around it? Should we be in the software business at all, given that we have failed to make money?

And it gets harder. Should we even be in business at all? Yes, sometimes the best thing a business owner/senior management can do is call it a day, and cash in the chips. This way, you have more control over the process, and hopefully everyone walks away with something.

Friday, September 13, 2002

Though part of your argument, you have convinced me to introduce the Harvard Business Review to my ten year olds in a few years. : )

Robin Debreuil
Friday, September 13, 2002

..."not" part of your argument I mean - dang minimalist forms!

Robin Debreuil
Friday, September 13, 2002

"The sole purpose of company X is to make sustainable profits for our shareholders."
-------------------------------------------------------------- tapiwa

Sorry, tapiwa, but this is a dreadful, vacuous mission statement.  It tells us nothing.

This is the purpose of any company.  It tells us nothing, nothing at all.

Presenting this as a mission statement is like to retelling the old joke:

The key to successful living:

Breath In, Breath Out.

Ged Byrne
Friday, September 13, 2002

Hi Ged

All I am saying is that so many companies get caught up in this great cycle, where they are out to produce the best widget, that they almost forget their main reason for being.

At some point, some wise manager decided that the corporate strategy would be to produce this widget and sell millions of them, make a killing and repeat with widget XP.

Unless you continually re-assess whether being the widget business is the most profitable path for you, you will again go the way of stage-coach builders who continued to builder bigger and better stagecoaches when no one wanted stagecoaches any more.

..Defend the hill at all costs.
..Build the best widgets at all costs.
..Get the most customers at all costs. (dot com shares anyone?)

Remember the oohs and the aahhs when IBM pretty much quit the PC making industry. I think that that was one of Lou's finest moments. At some point, you cut throught the feel-good prose on the 'mission statement' and say "Hey, we tried to make the best PC. No one was willing to pay us more than it was costing us. We created this industry, but if we are not making money, we should not be in this business. Let us explore other areas (services/consulting/big iron) where we can be more profitable."

That ruthless quest for profit, is what forces companies to innovate not only within a specific industry, but also explore other opportunities, even if it means abandoning their traditional business.

Now, if your mission statement talks about building the best CRM whatchmacallit, what do you do when the bottom falls out of the CRM market?

If you constantly remind everyone in the company that profit is good, (pretty much the only way to guarantee that there will be a company around next year to employ them) and that their daily jobs should be about adding value to the bottom line, that is a far more powerful motivation than "build the best widget".

As a CEO, you continually look for opportunities within the industry, and elsewhere, to sustain/increase profits.

As a sales manager, you bid only for the projects where you know the company will make money, either because you can charge the most, or that you have such a lean machine that you can undercut anyone. Before anyone writes off low-price businesses, look at the Walmart, or the budget-airlines in Europe.

As a coder, you do your level best to write tight/fast/bugfree code so the company widget is the best and meets customer demand.

As an office cleaner, you make sure that the programmer's work area provides him with an environment that is most conducive to a productive workday.

When you understand the ultimate goal, profit, you can make the best decisions in your day to day job to achieve that. For the cleaner in a fab factory.... we need to be cleaner than an operating room. For the cleaner in a warehouse ... just clean, and no empty crates lying around, is good enough.

Now, back to the joke.

Kurt Godel, one of the greatest mathematicians (in recent memory at least), who basically proved that there are some things which cannot be proved, died an interesting death.

He starved himself to death, because he was so paranoid that people were trying to poison his food!

So maybe there is something to this "breathe in, breathe out" being the key to successful living!

Friday, September 13, 2002


_VERY_ interesting comments.  If I give you credit (maybe reference this URL), could I use your comments in an upcoming article? 

  Mission Statements Part II:  The Feedback Loop


  The theme is pretty simple:  In his book "Quality Software Management", Author Gerald Weinberg points out that lack of a feedback mechanism causes a great deal of the failures in software organizations.

  The company makes the plan, and starts executing it, when external events render the plan useless or valueless.  (Simplest examples are projects that are running late or customers that change thier minds after "Specification Freeze")  Weinberg points out that one pattern of management is to just keep doing the same old thing (defend the hill), when another is to accept the feedback and re-act.  More advanced patterns involve anticipating change before it becomes crisis, etc, etc. 

  It's  like CMM, only different.

  So, can I get your permission on this?  Do you want credit for inspiring, or review/edit authority as a co-author? :-)


Matt H.
Friday, September 13, 2002

Estimating schedule is rather easy of you ask the developer the absolute longest a project/task could take and double it.

Friday, September 13, 2002

Matt H, I'm surprised that you are so impressed by tapiwa's ra-ra spiel. Your theme is avoiding vacuous mission statements, is it not? Analyse whether tapiwa actually says anything. Sorry tapiwa, you're just a bit over the top.

tapiwa, Most businesses run reasonably well, and are well aware of the need to satisfy their customers. They don't blindly try to produce the best widget. Your attempt to use military examples is way out of line. Military command and battle management is superb and intensely aligned with objectives at all levels.

Do you know any sales managers, tapiwa? Usually their focus is on their commissions. If corporate management is smart, then that interest is tightly aligned with the company's. If they're not, the sales manager will still maximise his or her commissions.

And I will tell what office cleaning is about. The cleaner gets $12 per hour (if she's lucky) from the cleaning contractor and has to do 10 floors in three hours. That's not enough time to do 10 floors. She has to be home by 7 am to get her children ready for school. She does the best she can and pays particular attention to offices where people have complained to her supervisor. She wants to make sure her kids don't have to work as cleaners.

Friday, September 13, 2002

Tapiwa's "ra-ra" spiel - actually, I think spiel is spelled "schpiel".  Anyway.

I agree that with many salesmen their only concern is their commision - hence the pharmacist who was diluting chemo drugs with saline.  Y'know who blew the whistle on the pharmacist?  The saleman who wondered why his commisions didn't match the volume of chemo sales from the pharmacy.  It took greed to check on greed.

I did like like your cleaning lady analogy - thought it was accurate.

The point is to persuade your employees, and formulate your business, such that what's in your business's best interest is also what is in your employees'.

You want to keep the best employee's for the money?  Then get rid of the dead wood.  Nothing saps morale than having lazy people drawing the same paycheck as those who genuinely care.  Nothing tears the heart out of a company than having your options diluted by slackers.  Make an example of them, fire them.  Its the best motivational speech you'll ever make, and you won't have to hire some promotional cheeze-ball to do it.

Here is something to ponder:  Rick Beluzzo, a former HP executive who worked for Microsoft, was let go after, I recall, 18 months employment (time escapes me, sorry if I'm off on his tenure).  Microsoft just wrote down the $15 Million they loaned him on his incentive options (which are now worthless).  OK, Question 1:  Does Rick have to declare $15 million on this year's income taxes?  Q 2:  How do you think that makes the average 1-4 year employee feel when his options are under water and he is genuinely contributing sweat and stress?

I think the goal is not to just say "well, it sucks, but it is what it is".  The goal of effective management is to fix what is broken, and not just write off problems as biz as usual.

... on Software Anon: a 12 step program
Saturday, September 14, 2002

"Nothing saps morale than having lazy people drawing the same paycheck as those who genuinely care."

Except layoffs.

Daryl Oidy
Sunday, September 15, 2002

" You want to keep the best employee's for the money? Then get rid of the dead wood. Nothing saps morale than having lazy people drawing the same paycheck as those who genuinely care. [...] Make an example of them, fire them. Its the best motivational speech you'll ever make [...] "

This assumes you can perfectly separate the "lazy people" from "those who genuinely care". If you can do that, then you're probably a good enough manager that you don't have any "dead wood" in the first place.

Adrian Gilby
Sunday, September 15, 2002


I fully agree with the need for feedback loops.  Everybody in the company needs to know their contribution to the bottom line.

However, I don't think the mission statement is the correct tool for achieving this.  Simply saying 'We will make lots of profit' is not enough.  If it were that easy, then anybody can do.

The directors get payed more money than the cleaner because they are supposed to have abilities that are lacking in the majority of people.  They need to work out the best strategy for the company, and then guide the company according to that strategy.

The mission statement is a tool for conveying that strategy.

Poor old Kurt, he didn't die because he stopped breathing, he died because he stopped eating.  So breath in, breath out isn't enough.  You need to eat, too.

What if the only food available is at the bottom of the a river.  You need to dive for it, holding your breath.  You must temporarily stop breathing to keep living.

Ged Byrne
Monday, September 16, 2002

Ged, I think that you missed the spirit of my post.

Let's start with Kurt. All I was trying to say, was that life is about breathe in, breathe out, eat, and a couple of other ancilliary actions. Most of what we do allows us to continue these most basic of functions which we might take for granted. True, Kurt might not be the best example, but he is an example of a genius who seemed to forget that eating is a requisite for life. Without life, you can't have a *great* life.

Again, while most of us move up Maslow's heirachy of needs in our quest for better lives, let us not forget that all of these higher ideals are dependant on being able to satisfy the most basic of needs, without which we cannot survive.

Similarly, companies, in their quest to make the best widget, or deliver the best enterprise-whatchamacallit-solution, should not forget that their very existence is dependent on making a profit.

The need to communicate the goals of the company is just as important, if not more so, as the need to align the interests of the employee with that of the company. In a lot of societies however, profit seems to be a  taboo word.

Instead of stating clearly, without shame, that the goal of a business is to make a profit, and that it is only by achieving this goal that everything else follows, (including jobs, delivery to customers, payments to debtors), managers turn to that wonderful prose known as the Mission Statement.

Just saying "we will make lots of profit" certainly will not guarantee that you will. Not realising that your primary goal as a business is to make a profit will almost certainly guarantee that you will not.

If you take a straw poll, in any sufficiently large organisation, how many employees below middle management will be able to articulate it. One of the best anecdotes I have ever heard (doubt its true) was that Budweiser's mission statement was "We exist to make great beer and sell it". Simple and sweet, (the best I have heard), but as far as I am concerned, still not good enough.

My question is, how then do you communicate the need to make a profit to the stakeholders, if not via the mission statement?

Put all the wonderful prose in the job descriptions. "Your job is to deliver the tightest, fastest, bugfree code this side of mars"

Put it in your marketing copy. "We deliver the tightest, fastest bugfree enterprise-solutions this side of the sun!"

The truly great managers are able to identify area where they can sustainably make profits, and exploit them. That is strategic management.... being able to identify where your company's area of competence, and being able to use that knowledge and expertise to bring the best value to your shareholders.

Two typical kinds of bad managers.

1. We are in the business of making X. We will make the best X in the world even if we die trying. (Fairly typical of small businesses still run and largely owned by the founder who had a passion for X and turned it into a business)

2. We will do whatever it takes to make profits. Hey, looks like the XY industry is doing good. We will try and ride that wave. Oh shit, there is money to be made in ZA business as well. We'll give that a go too! In the end no one quite knows what the hell is going on in the business.

"food at the bottom of the river". I totally agree with you here. Again, a wise manager will be willing to sacrifice short term profitability in order to ensure the long term profitability and survival of the company. (also known as chewing your foot to get out of the trap).

Business is a risky affair, and some of the gambles that management take will not work! FACT! However without any feedback and reassessment  of corporate strategy, the decisions more and more become gambles, or irrational pursuits of some ideal widget, instead of being informed guesses.

Monday, September 16, 2002

Tapiwa, I remember reading a couple case studies on Ben & Jerry's.  One interesting thing they do is refuse to expand production, until they can't resist the challenge.  This is because they fear most of all that the quality of their ice cream will suffer, and they don't want people they don't trust just pumping "product" out a factory for profit.

The upshot is that when I'm in Europe, I pay $5 per pint of variable-quality B&J at the English Shop, that was shipped from the US and possibly refrozen.  (Kinda worth it though.)

I'm curious what you'd say to this; I think that you're trying to exclaim, "Nail down the fundamentals," but maybe you're overemphasizing them.  While management might be able to be motivated by profit, workers just can't rally around that.

Tuesday, September 17, 2002


Exactly what I'm trying to say.

Ged Byrne
Tuesday, September 17, 2002

Sammy wrote "be motivated by profit, workers just can't rally around that"! Tell that to the steel workers at NuCor

Not sure which part of Europe, but one of the most quintessentially english stores (the name eludes me, but the queen is supposed to shop there) has in the last couple of months decided to open for trading on a Sunday.

One might very well look back through their history, and find marketing copy that they were so exclusive that they did not open on a Sunday when all the other hight street stores were flogging their wares.

Now, the great thing about Ben and Jerry, is that one of the reasons people buy their icecream is that it is perceived to be extremely good quality. Which is all dandy, because Ben and Jerry are (supposed to be) very passionate about their product.

To merely churn out buckets of goo with the Ben and Jerry's would be to shoot the goose. A couple of bad batches later, and no one wants to buy B & J icecream.

My arguement is that due to technological, economic, social, climatical (your get the picture) changes, one cannot assume that what worked will continue to work.

One of the current "in things" is organic products. Whether B&J have an organic range or not, I do not know. Lets play devil's advocate.

Let's assume that via come GM process, someone comes up with milk that produces really thick/great icecream with no fat. Let us also assume that this gets really popular (hey people eat all that McD cuisine anyway). Now if the mgmt at B&J got really stuck up, they could pass the new milk/cream as a fad. Worse still, they could say that they will never use GM products in their process, or that they have always made the best icecream in one way and will not change.

Best case scenario, B&J would become a smaller niche ice cream manufacturer. More likely, they would be taken over by some young Turk, who has recognised what the market (not necessarily what some 'guru' says is the best), and is able to provide that.

At some point, I totally take my hat off to the record labels. RIAA and stupid licencing aside, they discovered a market for the boy bands, and Britney lookalikes, and exploit it to make money. Whether the music is good or not (as far as we are concered) is moot. The point is someone is willing to pay for it.

I think it was Joel himself who wrote about how lotus held back the release of their windows version because they were looking to optimise it.... it ran slowly on 286s. Their management seems to have been obsessed with delivering fast, tight code, and seems to have missed the trends and changes that were taking place in the rest of the computing industry.

By the time they released it, they 286 optimisations were moot, as people were upgrading to faster 386 machines. By this time, the microsofts of this world had pretty much caught up.

Tuesday, September 17, 2002

Matt, I perused your site.  I see that you're trying to mimic Joel On Software and presumably build a similar following, but I have to be honest and say that it won't happen based on the current content.

The articles are simplistic and lacking in substance.  A couple of them start out well but they fail to grab and hold my attention for the duration.  You raise some valid points in the course of the essays, but fail to deliver any solid conclusions or recommendations based upon them.  After reading them I find myself saying "Yeah, so what?  Tell me something I don't know".  On the other hand, Joel never fails to deliver that knockout punch that defines the whole purpose of the essay.

Please don't interpret this as a random, anonymous slam.  I think the potential is there, but I respectfully suggest that you dive deeper into the subject matter instead off giving us random superficial ramblings.

Sunday, September 22, 2002

*  Recent Topics

*  Fog Creek Home