SmoothSpan Blog

For Executives, Entrepreneurs, and other Digerati who need to know about SaaS and Web 2.0.

Archive for October, 2014

Secrets of When and How to Talk to Customers at a Startup

Posted by Bob Warfield on October 9, 2014

elephant-with-blind-menJason Lemkin says forget building wireframe UI’s and start out interviewing 20 customers, because you just won’t understand your customers until you do.  Here’s the gist of why you need 20 interviews before you do anything else:

And you have to do 20.  I know it’s hard to get to 20.  But it’s the right number:

  • You need the First 5 Interviews just to truly understand the white space and the current opportunity.  Yes, you probably think you already understand it.  But you are the vendor, not the purchaser.  You need to understand your prospective app from the purchaser’s perspective, for real.
  • You need the Next 5 Interviews to confirm your pattern recognition.  You learn from the first 5, you confirm in the next 5.
  • You need Interviews 11-20 to Nail Your Pitch and Hone Your Thesis.  Once you truly understand the white space from a buyer’s perspective, and you’ve figured out the nuances and challenges … it’s time to nail your pitch for real.  And by doing this, you’ll also hone your thesis and strategy.   That’s what interviews 11-20 are.  To get real critical feedback on what you’ve learned.  To learn about corner cases that may in fact be critical insertion points for you to win.  To dig in on what is really 10x better, not just 2x or 5x better.

And let me tell you, at least from my experience, don’t expect all 20 to be positive.  Many of My 20 Interviews in both my start-ups were very critical.  Or worse, lukewarm.  Lukewarm is even worse, because it says yeah it’s sort of interesting … but no way I’d buy … and implicitly … your idea is a huge waste of time.  I’d rather get the negative feedback 😉

I get the Steve Jobs thing.  You just have to build it.  You do.  But this is SaaS.  You’re solving a business’ problem.  They don’t know how to solve it, or what you should build.  But they do now how to express their problem.  Acutely, and thoughtfully.

Here’s the funny thing–in some ways I agree with Jason and in others I totally disagree.  It depends really on what it is you’re trying to learn from your 20 interviews.  Jason says you’re trying to understand the white space and the current opportunity and that you’re trying to nail your pitch and hone your thesis.  He’s thinking about it like a Sales Guy, more power to him, someone in your company ought to be.  But there’s more to life and startups than Sales Guys.

Here is what I worry about validating in the early days of any startup:

1.  What is the problem we’re trying to solve for customers?

2.  Is it a real problem?  Do a large portion of customers believe they have this problem?

3.  Will the solution we’ve imagined actually solve that problem?  Do the customers agree that it solves their problem?  Can we charge enough to make a real business for this solution?

4.  Do we have a pitch that communicates we have a real and effective solution quickly?

I see Jason’s 20 interviews as helping to solve #2 and #4, but not really making much impact on #1 and #3.  Moreover, I see #4 as being pretty tactical, unless, of course, you need that finely honed pitch to convince investors.  It’s tactical because we won’t need it until it’s actually time to get customers to deploy beta product.  In other words, we have quite a lot of time to solve it.  #3 is not so tactical.  In fact, if we don’t solve #3 right up front, we could easily spend the bulk of our time building a product that we think solves the customer’s problem but that customers aren’t confident in.

Let’s drop back and work on each one of these 4 critical questions and see how and when in the startup cycle they should be tackled.

1.  What is the problem we’re trying to solve for customers?

This is a tough one for many entrepreneurs.  I’ve seen a few decide to try to find a hard problem to solve by interviewing potential customers.  What keeps you up at night?  What do you hate about your job?

Ugh.  That seems so hit or miss.  None of the ones I met who’ve tried this got very far with it.  They got problems that software was just simply not the cure for or they got problems that are more conditions of the human race than anything.  Jason says customers, “Know how to express their problem.  Acutely, and thoughtfully.”  Actually, they don’t, not so much.  They know how to resonate with a problem that you’ve stated acutely and thoughtfully.  They know how to resonate when you state a problem as a near miss to how they really think about it.  But customers are not product designers nor company founders for the most part.  They’re severely myopic.  As Henry Ford famously put it,

“If I had asked people what they wanted, they would have said faster horses.”

So don’t rely on customers to tell you what the problem is.  Really on them to confirm you’ve found a problem they feel.  Later, they’ll remember it as you having discovered the problem from them, but that’s not really how it works most of the time.

There are a lot of reasons for this.  The myopia is one but another is they just don’t know much about the medium you work in–software.  They have little idea what software can do for them.  They think of most software in terms of software they already have, which is another form of myopia.

You are not going to figure out that problem, in all likelihood, through a few simply interviews.  You’re going to have to live the life of your customers for a while, walk in their shoes, and feel their pain.  You need to know their domain intimately, which is not something that’s going to happen in 20 interviews, no matter how good they are.  That’s how two great Sales Guys wound up creating two great CRM companies–Tom Siebel with Siebel Systems and Mark Benioff with  I interviewed with Tom Siebel when he had less than 20 employees and the one thing that was absolutely clear about the man was that he knew the domain and its problems cold.  That’s the kind of solid domain knowledge you really should have in your startup.  Who can you point to who has lived and breathed the problems and knows them cold?

Is that the only way?

No, there are plenty of exceptions.  There are proxies available too.  Finding a large online community of your desired customer can give you huge insights into what their world is all about.  What do they ask questions about most frequently?  What do they complain about frequently?  These communities are so helpful to startups both for gathering information as well as for getting out the word that I’m not sure I’d want to do a startup that couldn’t identify an online community specializing in its customers.  In this age of Content Marketing, it seems to me that such a community would be a very valuable indicator that the market was going to be reachable and at reasonable costs.  I don’t want to have to advertise or cold call my way into existence, though many have certainly done so.

To put this into the perspective of Jason’s 20 interviews, you need domain knowledge for your startup before anything else.  You won’t get it from the 20 interviews, and it is just table stakes that you have to find.  Maybe you’re counting on a founder for it.  Maybe you have the world’s ultimate advisory board.  Maybe you’ve sold to these poeple in a former life and know all about them.  Maybe you’ve spent a year studying and interacting with their online communities.  Whatever it is, you’d better have it.


2.  Is it a real problem?  Do a large portion of customers believe they have this problem?

Having gotten your domain knowledge together, you believe you’ve discovered a real problem.  Now that you can articulate that problem, it’s time to confirm it with potential customers.  Jason’s 20 interviews are perfect for this stage.  I don’t know that there is anything magical about 20 or that this even has to be done via interviews.  If you’re going to be using feet on the street to move your product (e.g. a scratch golfin’ highly paid salesforce), you should probably get started with interviews.  If your Sales Guy can’t line up 20 interviews in his sleep, there is something wrong, so may as well set him to the test.  If you weren’t planning to get a Sales Guy until later and you can’t line up 20 interviews on your own, you better get the Sales Guy sooner.  There’s a lot of good that comes from achieving the 20 interviews and here Jason and I agree wholeheartedly.

But in addition to 20 interviews, I highly recommend a few other things.

One of my mentors has used the method multiple times of creating a web site that’s all about the proposed problem and solution.  He sets it up like there’s a product ready to go, except there’s no way to order it.  You can simply request more information.  He gauges the quality of the idea by whether he can get many information requests.  And yes, he understands the need to do some tuning up before giving up.  This is a case where having online communities of your potential customers is awesome.  If you have a simulacrum site as described (looks like a real company and product), you can ask the folks in the community what they think of the company and idea.

If you don’t like that approach because it just feels a little too funky, try my approach.  I started a blog before I started my current company and I waited to see if I could drive significant traffic to that blog discussing the kinds of problems I wanted to solve.  I would talk about how people were solving their problems today, rather than how I proposed to solve them.  I measured traffic using all of the standard web analytics to see what resonated and what did not.  I built a lot of credibility and I had a following already in place that I leveraged to a significant Beta test and significant cash sales when I was finally ready to launch the product.  But, before I started building the product, I knew from how people were reacting to my writings that I understood the customers and their problems very well.  I achieved what I call “Content-Audience Fit” (a precursor to Product-Market Fit).  More about that below under #3.


3.  Will the solution we’ve imagined actually solve that problem?  Do the customers agree that it solves their problem?  Can we charge enough to make a real business with this solution?

Here’s where I probably disagree with Jason the most.  He says, “So if you haven’t started yet, as fun as it is to just build the wireframes and get a codin’ … do the 20 Interviews.”

Here’s my problem–as I’ve mentioned, the Customers really can’t articulate their problem unaided.  They can only resonate with your articulation.  We may have to agree to disagree on that, but figuring out how to resonate well is a huge function for Sales precisely because the customer can’t do it for themselves.  They often need help even in how to present it to each other to get buy-in within their organizations.  When you go interview them, you’re going to get a variation on the three blind men encountering an elephant for the first time.  One touches the trunk, and thinks it’s a snake.  Another touched the tale, and thinks it’s like a straw fan swishing back and forth.  While the third touched the legs and pronounced that elephants are like trees.

When it comes to envisioning a solution, especially in software, things get far worse.  At least they have all experienced the problem, even though it may appear to be a snake, a fan, or a tree.  But nobody outside your company even has a glimmering about your proposed solution.

I’ve done lots of focus groups over the years and lots of the kinds of interviews Jason talks about, and I am here to tell you it is pointless to do either if you expect to get feedback about a software solution unless you have at least some wireframes and storyboards to show.  With modern tools, it’s just not that hard to produce these things.  I’m working on our third product at CNCCookbook.  I was able to put together a UI prototype that is substantially what our finished product will be with about 6 weeks worth of effort.  It’s been hugely valuable in securing feedback for the product and I have learned an awful lot from it.  Perhaps the biggest problem it has is people start to mistake it for a finished solution or they assume it’ll be ready much sooner than it will and they get too excited.  They’re ready to buy immediately.

Yes, it may be fun to build wireframes, but it is also fun to have real meaningful conversations with prospective customers about your proposed solution.  You’re going to learn so much more about everything if you can do that around a real demo.  You’ll learn about positioning, sub-problems and edge cases that as Jason says are critical insertion points to win.  You’ll learn whether your proposed solution really fixes the customer’s problem in their eyes.  You’ll feed on the enthusiasm they have for what they see, and that enthusiasm is valuable fuel for your startup, for convincing critical new hires, and for any potential investors you may have.

If it’s really going to be hard for you to get interviews with 20 real prospective customers, people who are solid citizens in their markets and who are not your buddies.  People who will give you the straight scoop, help guide you, and who you’re hoping will be early adopters.  If it’s that important and that tough, I can’t imagine wanting to do it without bringing along a UI mock up.  It isn’t just my current venture, I have done this at every single one of the 7 startups I’ve been with.  I have done it for every new product release.  It’s actually integral to how I approach the Agile Software experience.

If your Sales Guy can’t get 20 meetings, get another one.  If your Product Guy can’t get you a UI prototype quickly, get another one there too.  Both are equally as important.

One more thing–that last part, “Can we charge enough to make a real business with this solution?”  That’s critically important to answer ASAP.  It’s also nearly impossible to get a very good answer to it without a UI prototype.  Yes, they will give you some answers, but I am talking about real answers that will hold water when it’s time to cash the checks. Don’t you want to know whether customers will pay up for what you’re going to build as early as possible?


4.  Do we have a pitch that communicates we have a real and effective solution quickly?

This is what I call “Content-Audience Fit“.  I believe achieving that fit needs to come ahead of finishing the product if for no other reason than that you won’t know if the product is finished nor will you be ready to efficiently leverage content for product traction unless you do.

Jason’s 20 meetings go towards this end, but it’ll take more than 20 to really nail your pitch.  Personally, I don’t like to burn real perspective customers, investors, or other scarce as hen’s teeth resources for a company if I can find another way to test this stuff out and perfect it.  The online world and Content Marketing are your gateway to doing so. Once you can resonate with those audiences, break out the Rolodex (kids you’ll have to look up what that is) and start asking for meetings.  You’ll be bringing to that meeting a laundry list of good-as-gold asssets:

–  By this point you have a UI prototype to demo.

–  You have verified that you can talk about the problem and with the audience with enough credibility that they’re at least starting to come to you for answers.

–  You’ve had the opportunity to test a number of things with your growing audience.  You’ve probably even been able to do some surveys.

–  You have a corpus of content that you can point potential meeting invitees to that helps establish your bona fides and gets the conversation off on the right track.  If done right, this can be a warm call and not a total cold call.

Most importantly, none of this is all that expensive or time consuming.  You can do it on your own nickel without waiting for a Series A VC round.  I know I have more than once.  I’d set a goal of 3-6 months to get to this point.  If everyone is firing on all cylinders, you’re producing good content, you’ve gotten through your UI prototype, and you’ve made contact with a decent sized audience, you’ve accomplished a lot at your startup.  You’re right where you need to be.  Now line up those 20 meetings, get in there and make those 20 people your first Beta tests, and hit the ball out of the park for them.  They’ll love you for it and you’ll have set the stage for your next 6 months as you drive to launching the Beta and eventually real Sales.

Posted in bootstrapping, business, enterprise software, saas, strategy, venture | 1 Comment »

Microsoft’s 4 Real Problems that Gates, Nadella, and Ballmer Can’t Fix

Posted by Bob Warfield on October 8, 2014

WushuI just finished the Vanity Fair piece on Gates, Ballmer, Nadella, and whether Microsoft can be rebooted to its former glory.  It’s a good article, but it’s all about the past mistakes and there’s little about the future there.  Mostly, it is the account of how two best friends (Gates and Ballmer) broke up over the internal stresses of running Microsoft.  Ballmer characteristically doesn’t accept blame for much (we missed search and phones, but our real problem was the Longhorn project which the article implies he blames equally on Gates) and Gates never really talks much about what went wrong at all.

I’ve written a little bit before about what I see as the problems, but wanted to do a full treatment of it.

Problem number 1:  Microsoft Was Never Agile

Remember the old saw about how Microsoft products were never very good until the 3rd release?  Add to that the notion that the minimum product cycle was about 2 years and often 3 or 4 and you begin to get an idea of just how non-agile the company is. There are claims that this is being fixed, but it is a huge cultural problem to fix.  Microsoft is run by committees chaired by Product Managers and MBA’s.  Those folks are not agile by their very nature, meaning they don’t understand concepts like “Minimum Viable Product” nor how to work off a strictly prioritized agile backlog.  It’s just not how the culture works and it will take Herculean upheavals and new tissue grafts to ever make it very agile.

I’ve been through this conversion on more than one occasion, and it’s never easy.  Unfortunately, the very tenets of agile done right are at odds with how Microsoft makes its decisions.  Gates, Ballmer, and Nadella grew up developing software the Microsoft Way, which is not the Agile Way.  They may pay lip service to Agile, but until they have lived and breathed it, or brought in those new tissue grafts who have lived and breathed Agile, it’ll just be a lot of talk and Microsoft will continue to move far more slowly than Agile competitors.

Problem Number 2:  Microsoft is a Commoditizer, not an Innovator

Microsoft has always been a commoditizer.  They take someone else’s Great Idea, build a high quality facsimile, and sell it under the brand and monopoly umbrella.  That worked well for a long time, but the combination of frictionless product discovery via the Internet, the pace of agile software development, and new business models such as advertising make the role of commoditizer, at least as Microsoft plays it, very difficult.

In the past, people bought the commodity for a couple of reasons that are not nearly as strong today:

–  Brand:  The power of brands has greatly diminished, Microsoft’s brand has become tarnished, and there are many new brands to choose from.  If nothing else has happened during Microsoft’s corporate life, the world has learned that relative unknowns become Big Brands in a very short time.  There’s not nearly the stigma buying lesser names that there used to be. Brand is also about getting noticed, and the increasingly frictionless web has made it easier and easier for upstarts to get noticed.

–  Price:  When I was a General in the Office Wars, Microsoft beat Borland and my Quattro Pro product on price.  It was clever pricing too–who wants to buy individual best of breed products when you can get such a great deal on a suite with everything you need?  Today, Microsoft is hard pressed to be the low cost provider.  Open Source and Advertising Models have completely destroyed that advantage.

–  Interoperability:  This is Microsoft’s last bastion.  We buy Windows because so much that we depend on in terms of applications, data, and hardware needs Windows to function.  But this is not a particularly strong barrier.  It amazes to me that companies like Google haven’t worked harder to eliminate it.

Problem Number 3:  Microsoft is Not Especially Good at Strategy

I know this will come as a shocker to many, especially those inside Microsoft, but it’s true.  Once Microsoft’s essential monopolies were cemented, their strategy consisted 100% of holding onto them and milking them for every last penny they could.  You could call that strategy, but it isn’t competitive strategy, and that’s where Microsoft have been losing their shirts.

When you’ve been so successful for so long with such strong monopolies, it isn’t surprising that strategy becomes atrophied.

When you’ve gotten there by copying and commoditizing the Other Guy’s Ideas, who will deliver the next great Strategic Ideas that change the terrain meaningfully to Microsoft’s advantage?

Strategy is what you do to make winning easier.  When you have a very hard time admitting you’re losing badly and you think you have all the time in the world to fix it with overwhelming force, why bother with Strategy?

Perhaps Nadella is a strategically subtle Guy, but he hasn’t shown that side yet.  Sure, there are some decent tactics at play, but aren’t they more finally accepting the Other Guy’s Playbook than genuinely inventing any new plays yourself?

Problem Number 4:  Microsoft is Clueless About Creating Insanely Great Products

This has been clear for a long time.  As they commoditize Other People’s Ideas, the results have never been quite as good.  It’s like there’s a little extra noise each time you copy a tape.  By that 3rd generation where Microsoft supposedly gets it right, there’s quite a lot of noise.

The blame here goes squarely with Microsoft’s Product Management Culture.  There has been a misconception about Product Management for a long time in High Tech.  Many see them as the ones who write the stone tablets that are product vision and hand them to engineers who then laboriously transcribe those visionary ideas into products.  While a tiny percentage of Product Managers may be good at that, the vast majority are not, though their organizations give them that power for a variety of historical and political reasons.

Here’s the thing:

Product Managers are the only people in the organization whose sole job is to listen to the customer and help inform product direction of that feedback.

That’s it, that’s all, it’s a full time job, full stop.  They pass those customer insights on to whomever really does do the Product Vision.

The other shoe that drops is implementing laundry lists of literal customer requests does not a product vision make. Instead it creates the cluttered messes that are what we hate about Microsoft software today.  Synthesizing all of those requests to understand the real underlying problem customers want to solve may inform at least a portion of the vision.  But most of the real visionaries take this input as just a set of anecdotes.  They derive a vision far larger than the input because innovation cannot be deduced it can only be imagined and concieved.  The results may even be at odds with the customer input.  Most game changers are.  Characters like Steve Jobs and even Henry Ford (if I’d asked customers what they wanted they’d have said a better horse, not a car) worked that way.

By this stage, Microsoft software usability is hugely tarnished to the point of embarrassment.  No fiddling around with the current Product Management-based culture will fix it.  Real Product Vision is a fairly dictatorial process.  Until Microsoft finds and empowers some real visionaries, little will change.

Whither Thou Goest, Oh Microsoft?

Four tough problems that the current and past leadership and in fact the very culture at Microsoft are not well equipped to deal with.  Yet there are some mitigating factors.

Hardware and the Steady March of Moore’s Law Will Help to Buy Microsoft Time

I recently acquired a Microsoft Surface Pro 3.  It’s a fantastic piece of hardware–every bit the equal of Apple’s iPad or Macbook hardware.  The software is flawed, but relatively fixable.  When I use it, I can’t help but wonder if it were a little bit cheaper and the usability flaws were fixed, why would I care about iPads or Android tablets?

Those older devices have the compromises that were needed to make them work given the hardware limitations of their day. As it becomes possible to offer anything that could run on a PC in that form factor, such devices seem increasingly anachronistic.  This is a wide open opportunity for Microsoft to re-emerge if they can fix the usability problems of Windows 8.

Unfortunately, I don’t see Windows 10 doing that, but that’s a subject for another article.

Microsoft’s Chief Rivals are Not What They Used to Be

Apple and Google may be bigger than ever before, but their inevitability is much more in question than at various times in the past.

Apple is sorely missing Steve Jobs and has had a raft of problems lately ranging from privacy breaches to the painful task of propping up a stock price that already touches the sky.  In may ways Tim Cook could turn out to be Apple’s version of Steve Ballmer.  He’s certainly no Steve Jobs, and the question will be whether he can create a sufficiently Jobsian substitute in the already extant Apple Culture to keep the pace of innovation on.  The longer they keep up with ho-hums like the iPhone 6 or their wrist watch (battery life of one day and most of my friends have completely stopped wearing wrist watches) the more the world will begin to wonder.

Every day brings Google closer to being unable to sustain the growth needed for its multiples on its core search advertising business.  Every day customers are educated more fully that they are really not customers–in an ad-driven business model they are the inventory, and they’re not treated nearly as well as customers expect to be.  Google is so far another Microsoft milking its monopolies while it thrashes around wildly looking for new revenue sources that are big enough and profitable enough to matter.  Most of their acquisitions die with a whimper.

Microsoft Have a Monstrous Huge War Chest

The acqusition of Minecraft and Nokia makes that clear.  If Microsoft can find suitably strategic targets of opportunity, they certainly have the cash to acquire them.  The trick is in finding the right targets.  All too often this becomes an excercise in tying two stones together in hopes they float better than one.  Most of these acquisitions wind up net destroyers of capital.

Nadella has the Honeymoon Period’s Willing Suspension of Disbelief

He has time, perhaps two more years, to start making meaningful progress out of the quagmire.

Gates is no dummy either.  In fact he is probably the smartest person I’ve ever met.  Vanity Fair got it wrong when they said he’s a big picture guy.  I spent an afternoon debating deep product architecture with him as he considered acquiring my company and at least at that time he had deeper product knowledge than any CEO I’d ever met.  Unfortunately, he has little knowledge that’s relevant to the 4 big problems I’ve outlined.  But, he has always been the sort to throw himself deeply at problems, even intractable problems of the third world as the Vanity Fair piece suggests.

The trick for both of these gentlemen is focusing on the right problems to solve.  If they can, they’re likely to make a difference.  If they can’t, there will be change visible but it will be for naught.

What odds do you give them and what are the right problems for them to focus on?

Posted in saas | 2 Comments »

How I Helped Start the Agile/Scrum Movement 20 Years Ago

Posted by Bob Warfield on October 2, 2014

ShopFloorTeamI’m a day late, it was 20 years ago yesterday that Dr Dobbs published James Coplien’s article on how my Quattro Pro team was building software at Borland.  Jim sent me a very nice note of reminder on it:

20 years ago today, the famous Dr. Dobb’s article on Borland QPW was published: foreshadowing agile and Scrum’s daily standup (Jeff got the idea from an earlier draft floating on the web).
Thanks for being there 🙂

This is a good occasion for me to tell that story of how (with Jim’s article!) I helped start the whole Agile/Scrum thing going.

The article came about because Coplien was studying software development productivity while he was with Bell Labs.  He was interviewing various groups, measuring their relative productivity, and trying to figure out what the most productive teams were doing differently.  At the time, Borland was very much in the throes of launching a slew of products that were brand new code bases for the then very new Windows platform.  I agreed that it’d be fine for him to come in and study our team’s efforts.

I didn’t know an awful lot about how other companies were developing software, heck I didn’t know too much about how Borland was doing it either except that our team seemed to be smaller than a lot of the other ones out there (including many Borland teams) and that we seemed to be more nimble (avoiding the use of that loaded word “agile”).

I was very young back then, having started my first company straight out of grad school at Rice University.  I never did get that PhD in Computer Science because instead of writing a thesis, I decided to write a business plan instead.  One thing I will say for Rice is that it was a great education in CS.  It was also the genesis of my ideas about how to build software.  One of the most interesting things that went on there was they brought in guest lecturers who gave us some impression of what was happening elsewhere in the Computer Science world at large.

I vividly remember the first “famous” software developer I met as a guest lecturer.  It was Stu Feldman from Bell Labs who had invented a program called “make”.  We all used it constantly to discover which files had been changed and speed up the compilation process so that only those files had to be recompiled and they were recompiled in the right order.  This is so basic few even talk about it anymore, but back then it was worth noticing.

What was interesting about Stu’s talk was that what he had to say about “make” was a side I had never even considered.  It was obvious to me how it worked when I saw it first, but Stu was there to talk about programmer productivity moreso than “make,” and what he had to say really caught my attention.

Programmer Productivity was a pet of mine at the time, and I had visions of going forth in the world to create the world’s greatest programming tools–tools that would radically increase every developer’s productivity.  My first startup actually built some tools like that, but that’s a story for another post.  Suffice to say that when Feldman went down that path, he had my undivided attention, because he said “make” had come about because he was tilting at the same windmills I wanted so badly to attack.

Feldman boiled the central problem in productivity down to very simple terms.  Essentially what he said was that we didn’t know how to get very many people successfully working together on a project.  After maybe 10 or 12 developers, adding more generally degraded the group’s overall productivity more than the new developer’s additional productivity could help. The central problem, according to Feldman, was communication.  “We just don’t know how to get more than 10 or 12 communicating together effectively nor how to keep them all on top of what’s going on so they could do their jobs well.”

Of course I immediately went forth after that seminar and started to soak up any wisdom I could about these issues.  Brooks Mythical Man Month (you can’t use 9 women to make a baby in a month) was also a huge influence.  In the course of reading such things, it became clear to me that software tools were not enough.  What we needed were processes and cultural changes to manage those communication problems.  This realization led me to some very basic conclusions that have informed the culture and methodologies I have used for software development ever since.  They were alive and well when Coplien analyzed the Quattro Pro team.  In fact, they were 4th generation by the time James got to see us in action.

I haven’t changed these things much.  I go through an Agile or Scrum book every so often.  They make sense, but I don’t know that they’ve influenced me to change much.

Here are the fundamental tenets I follow from these experiences:

1.  Keep teams to 10’ish or smaller in size.  I’ve never really tried to push this envelope much.  In fact, not too long after Coplien’s work came out, I wound up in charge of all Engineering at Borland and one of the things I did was to insist on all teams fitting within this parameter.  Specifically, we cut back to 10 developers, 10 QA, and 3 writers on every project.  That included consultants and part-timers.  It was met with a high degree of skepticism and emotion as you would imagine, but it worked.  We cut costs and kept all the projects within the schedules that had been set before we scaled back.  The exception to the rule is projects where you can create solid API firewalls between components and put 10 developers on either side of the firewall.  Classic for Enterprise Software projects.

2.  If you can only have 10 on the team, they’d better be the very best that you can find.  Sure seems obvious to me, but I am continually surprised at how seldom it is followed for all the wrong reasons.  Get the best you can find means you’d better be prepared to do a lot of things:

–  Make engineering a first class part of the company.  You’ll often hear me saying, “They’re called Software companies, not Sales, Marketing, or Finance companies.”  If developers are second class citizens, they’ll smell it a mile away and won’t come near.

–  Pay what it takes.  Yeah, I know, every HR group on the planet will wave a bunch of studies saying compensation is not a motivator.  They’ll tell you, “We like to pay at the 70th percentile,” if you’re lucky and it’ll be 50th if you’re not.  Most studies of most things describe very eloquently a regression to the mean.  If you’re happy being on the mean, do what they have to say.  If not, ask yourself what you’re going to do differently.  I had the whole nth percentile pay conversation with probably my favorite PR professional in the industry.  This individual is probably also the most famous for various reasons.  Eventually I had to go to the CEO of the company to make the point about why we had to pay what we had to pay and after that, I believe this individual added it to her bag of tricks.  The bottom line is that the developer may not care about any specific bonus.  But they know they have the talent and they know when they’re being paid less when others of similar talent.  That’s a very bad thing to let happen, trust me.

–  Give them a high performance environment to work in.  Today, cubicles and often desks packed as tightly as possible together are being pushed as the ultimately productivity tools.  That’s horse hockey.  Writing software requires laser-like focus and concentration.  I am all about communication, that’s how I came up with all this, but communication needs to be engineered into the process and not slapped on by osmosis.  Maximize the distractions for these kind of people and you will minimize their productivity.  I can’t tell you how many places I’ve worked that just don’t get this.  Typically, you have to cheat it into the system with a liberal work-at-home policy.

–  Parallel Career Tracks for Pure Techies and Management.  This is another one that non-developers don’t get.  The worst days on the job for someone like me are when one of their very best individual contributors asks for a one on one, comes in all tense, and announces they’re ready to be made a manager.  I always start that discussion out by asking them why they’re attracted to the job.  If I get any variation on the flavor of, “I want to make the decisions because I have the most talent and will make the best decisions,” that individual gets counseled out of being a manager.  If we reach a point where they insist or they’re leaving, well, I tell them I will miss them.  Better to lose a great architect that turn them into a lousy manager who will no doubt piss of their team and then you lose a lot more.  As I said, those are among the worst days in my career when those things come up.

3.  Great teams build great software relatively cheaply.  Nothing is more expensive to a company than having a lousy team build lousy software.  Where am I going with this?  Forget outsourcing, offshoring, consultants, and all the rest of the silly things companies do to try to save a dime here or there on software development.  Lots of very smart people argue with me on this one constantly, but it’s true.  Look, if you’re hiring all the uber talented 10 person teams you can lay hands on and going offshore is just a way to hire even more (Google, you know who you are), it’s fine.  But if you can build anything with 10 or fewer great engineers, how much savings potential is there really in going offshore versus how much risk?  Which really awesome products in this world were built entirely offshore or outsourced.  And if communication is the biggest challenge affecting developer productivity, why would you put one team half a world away, make sure there were tons of cultural disconnects, make sure there were time zone challenges, and then just to be double darned sure you interfered with communication as much as possible make them talk over the two tin cans and a string called Skype to save a few more nickels?

4.  With only 10 on the team, they can know everything that’s going on.  OK, now we’re onto communication principles.  With only 10, they can all sit in a room together and know everything that’s going on.  Why not have them do that, every single day?  They’ll help critique each other’s work.  They’ll get fired up and empowered.  They’ll know things that the others don’t and share them.  They’ll all be on the same page, for goodness sake.  Wait.  Oh my, I hear the complaints and jeers.

Meetings are such a time sync.

Yes they are if you can’t manage one effectively.  What, did you think that you Mr Manager, were in that meeting solely so that  your subordinates could make you more efficient?  Hell no.  You’re in that meeting to make your team more efficient.  Use an agenda, keep the meeting short, make sure it starts and ends on time, change up the format to make sure people pay attention, assign everyone homework for the meeting so it doesn’t go stream of consciousness, make everyone present something, and when all else fails, make it fun.  Build the camaraderie.

I’m an extroverted management by walking around kind of guy.  Having meetings like this every morning was my attempt at letting everyone share the joys of that.  It was a crucial part of our productivity, and today it is a cornerstone of Agile/Scrum where it is called a “Standing” meeting or a “Stand Up” meeting.  Apparently some folks took it a bit literally and started doing the meeting without chairs.  That’s fine, I think I’ll keep the chairs in my meetings, but they’re short enough that not having chairs shouldn’t be a problem.  I used to tell people to get them to the meeting on time that there’d be two fewer chairs than attendees, but that was just my lame joke and I don’t recall actually every doing that.

5.  If communication is the challenge, focus the communication, make it count, and minimize unnecessary communication that just sucks up bandwidth.  The best way to do that is laser-like focus that fiercely attacks each challenge and finishes it before moving on to the next.  Thus was born the Agile Backlog on my teams.

I’m a compulsive list maker.  I always thought of them as ToDos, I made them long life documents, and I constantly evaluated priorities, deferring as much as possible until later.  Imagine my surprise the first time someone asked to see my “Agile Backlog” and I had no idea what they were talking about.  After a laborious explanation, I trotted out the “ToDo” for that project and they were invariably overjoyed.  Nothing like fancy terminology to elevate an obvious idea to sainthood, lol.

My role in the meetings was to present the near-term portion of my Todo, um, I mean the Agile Backlog, to the team.  Keep them focused at 2 week intervals was and is my mantra.  Keep dragging the highest risk most poorly understood items to the front of the Backlog so they get hammered down and solved.  That latter I got from a book on military strategies and was credited to Rommel, the Dessert Fox, who always believed on focusing his guns on his most dangerous adversary on the battlefield, moving to the next most dangerous, and so on.

6.  Make it clear with pictures.  UI Mock ups and Storyboards beat pages of narrative time and time again.  People hate PowerPoint, but that’s usually because they didn’t consider the alternative of reading a 70 page document that accomplishes the same purpose.  I am a big believer in building the UI first to this day, so we can argue usability and understand what the underlying engines will be called on to do right from the start of a project.

7.  Code Reviews.  I always made my developers present their major subsystems twice.  First was an architectural review before much code had been written.  Here’s the problem we’re trying to solve, here’s how we’ll solve it, here there be dragons, here we’re not so worried.  This was done in the morning meetings and everyone chimed in with thoughts. Everyone got to hear the underlying assumptions and could squawk if they saw a bad one.  The second meeting was a demo meeting when whatever it was got to “Beta” quality and a “Here’s what worked and what didn’t” if there was no demo.  The what worked and what didn’t often wound up being a dive into the code.

8.  Interactive Middle-Out Programming.  That curious phrase is one I had way back in my distant past.  I was greatly enamored and possibly warped by the first computer language I ever learned:  LISP.  That phrase referred to building up the “bones” or what I called the scaffolding as much as possible before adding the meat.  Don’t insist that everything be finished before you connect it all up.  Connect it up with dummy responses at first and then build out the most critical and highly traffic portions next.  Fill in the details after that.  Most of all, keep something working every single build.  This was the precursor to the Continous Release mindset that we see today.  It’s the beginnings of Minimum Viable Products.

I always presented roadmaps to my management and to customers.  My goal in doing so was twofold.  First, I wanted them to get used to the idea that releases are small potatoes.  Don’t get hung up on what’s in a release, worry about the longer term vision.  Most customers are extremely understanding of that and much more willing to take a lesser product now if they’re sure you’ll eventually get where they need you to be.  Second, I always asked a lot of prioritization questions in those meetings and took every opportunity to defer things that didn’t seem high priority to later releases.  We did this right from my very first startup, so I guess we were early to the MVP bandwagon.

9.  Embrace Change.  Software is the most malleable medium in the engineering world, yet it can be brittle when timeframes are too short.  What you can’t do is ignore the inevitability of change.  We learn new things every day that can result in change.  We can fear change, or we can embrace it as opportunity.  So many aspects of the methodology I’m describing help you to embrace change when you need to:

–  Keeping the Backlog short-term focused means you can churn the heck out of the part the team hasn’t visited yet with impunity.  Re-prioritize.  Add.  Delete.  Most of all, Learn and React.

–  Middle Out Programming surfaces weakness in the interconnecting structure, the architecture, sooner.  So does UI prototyping.  Ignore the details that are not costly to change and focus on validating what is.

–  Small Teams of Uber Developers are inherently more able to change.

10.  Communicate Face to Face.  Make any documents as temporary as face to face communications.  In fact, make them only as needed to facilitate the face to face.  The software is the only long-term document to worry about.

11.  Lead, Don’t Manage.  Sell, Don’t Tell.  Everyone has to be sold.  Your team, the business side, and the customers.  Don’t hide out and expect the final product to be so dazzling you won’t have to sell.  Don’t hide behind your title secure that your people have to do what you tell them.  As soon as you get the idea, go to all your sounding boards.  As it resonates, grow that audience rapidly.  Make each meeting a learning experience on how to sell the next audience even better.  When people are sold, they become passionate.  Nothing is more valuable to the team than passionate talent.

12.  Don’t Prematurely Optimize, But Manage Technical Debt Consciously.  Middle out programming encourages the avoidance of premature optimization.  Always code it up as quickly as you know how.  But know as best you can where you think changes will have to be made.  And in so knowing, know how hard those changes will be.  If the write bones are there, the changes are confined inside particular internal organs.  If we have to change all the bones, every organ will be impacted. You don’t want Technical Debt in your bones because it becomes pervasive in a hurry.  A little technical debt in the organs is fine and can be dealt with quickly when the need is proven.

13.  Do Post Mortems and then Experiment.  After every release, we’d do a post mortem on our productivity.  What worked, what didn’t, what were the problems.  Then we’d ask for ideas on how to change.  We’d pick one or two of those and implement them on the next project.  Then, at that project’s post mortem, we would evaluate their efficacy and decide whether to continue the practice or not.

14.  Be a Software Factory, Not a Release Workshop.  I like this one to be the capstone of the principles I’ve used to guide my teams over the years.  You want everyone on the team as well as the rest of the company to think of the team not in terms of each release, but in terms of their efficacy as a Software Factory.  No competitive war is won with a single release.  No market is dominated by a single release.  Rather, it is the ability of the team to be a better Software Factory than any they compete with that wins the day.  If they can turn the release crank faster, if they can anticipate what customers want better, if they can deliver higher quality, and if they can do some combination of that more cheaply than the competition, they’re doing everything that can be expected of a Software Development Team to win the war.

Many types of investment in Software Development have to be understood in these terms because they can never be justified for a single release.  If your CEO insists on being exclusively release focused, he is going to have you mostly chasing the puck instead of skating to where the puck will be.

Today’s Agile:  Lean Manufacturing

I’ve followed those 14 tenets almost from my start.  They were certainly completely baked into my software development efforts by the Quattro Pro days, and I haven’t found much need to add to them since.

I can’t decide whether it’s ironic or inevitable, but today I am doing many of the same things I had focused on for developers for the CNC Manufacturing world.  Coplien and Scrum Founder Jeff Sutherland comment that Scrum was inspired by the Toyota Production System.

I knew nothing of Toyota when I created my methodologies (and have carried on without spending too much time on Agile or Scrum either).  I did what made sense to me based on the influences I’d had as I’ve explained.  But my bootstrapped company, CNCCookbook, is intimately involved with the CNC (Computer-Controlled Machine Tools, 3D Printers, and the like) Manufacturing World, so it was probably inevitable that I would eventually write a series of articles on Lean Manufacturing.

The series is not finished yet, but all the key concepts are there.  I can absolutely see similarities between Agile/Scrum and Lean Manufacturing, but with that said, I find them more cousins than siblings.  The Toyota work was done quite some time ago.  It’s lessons are still quite relevant to manufacturing, but I believe that what we (I) have learned about Agile methodologies are relevant to manufacturing.  CNCCookbook is currently developing a new product called G-Wizard ShopFloor that will bring that to light in a modern collaborative environment that emphasizes these hybrid methods.

The first “grainy photos” from ShopFloor are starting to come into focus, the UI prototype is done, we’re starting to show it to a few friendlies and the interactive middle out programming process is fully underway.  I’m having a lot of fun with it and can’t wait to see if the manufacturing world can benefit as much as software development has from these techniques.

I’m really having fun with it!

Posted in saas | 6 Comments »

%d bloggers like this: