TODO: add notes on Make-compatibility; coalesce the "basic strategy" notes into something more concrete
A marketing strategy for Vesta
First steps
- What alternatives are out there right now?
- What type of market is it (novel, established, commodotized, luxury, etc)?
- Why is this product different?
What alternatives are out there right now?
(most prominent in each category listed first...)
SCMs: CVS, Perforce, SVN, Bitkeeper, RCS, Git
Build: Make, Ant, ??
Dissections of the market:
|
RCS |
CVS |
Git |
SVN |
Perforce |
Bitkeeper |
Make |
Ant |
vesta |
|
Commercial |
|
|
|
|
* |
* |
|
|
|
|
Free, open-source |
* |
* |
* |
* |
|
|
* |
* |
* |
|
guesstimated usage (SCM) |
5% |
50% |
- |
20% |
20% |
1% |
- |
- |
0% |
|
guesstimated usage (build) |
- |
- |
0% |
- |
- |
- |
70% |
20% |
0% |
|
Feature-rich, modern, cutting-edge: |
|
|
|
* |
* |
* |
|
|
* |
|
Out-dated, weak, less enabling: |
* |
* |
* |
|
|
|
* |
|
|
What type of market is it (novel, established, commodotized, luxury, etc)?
Cost: mostly free; commodotized
Innovation: very little monotonic innovation, hampered by low (zero) margins
Maturity: very well established, stuck in many ruts
Why is this product different?
Points of Differentiation: what the other products do wrong
- Perforce: very very very expensive
- RCS: too few features for anyone to care
- CVS: BROKEN! Corrupts data! (shout it loud: don't let anyone forget that their source code every day is one dice-roll away from corruption, with NO WARNING: all your backups will be poisoned from then on)
- SVN: ???
- Bitkeeper: ???
- Git: very immature, very focussed, mostly useless
- Make: ridiculously complex, cryptic, and encourages/creates many many bugs (memorize the quote, and repeat it to everyone you meet: "make was a really good project for a college student 20 years ago."
- Ant: even more complex, even more cryptic, less bug-creation than Make
Points of Differentiation: USPs
- Combined build + SCM: leads to a whole new world of development
- Extreme stability, correctness: essential feature to this market!
- Perfect performance: costs are O(1), speed-ups are k( developers ) !
- Meta-programmable: leads to a whole new world of development
- Full-time staff: zero margins, yet commercial-quality improvement
Points of Parity: what the other products do that is the same
- Perforce: distributed builds, big servers that replicate regularly
- RCS: exclusive checkout
- CVS: ???
- SVN: ???
- Bitkeeper: ???
- Git: same storage system, but less well-developed, poorer
- Make: scripted, saved, composable builds
- Ant: scripted, saved, composable builds
Winning Concepts
"things that should make you want to use Vesta as soon as you appreciate them"
CVS will corrupt your data sooner or later (incidentally, I heard last week that one of the commercial ones - AlienBrain - also does this, and rumours that Microsoft's Visual SourceSafe *still* also does this!)
- Source code is not sufficient to compile a program (and this is the main reason people prefer binaries, and that oss projects without binaries lose many potential users). Compiling a program requires the correct versions of all libraries and the correct build files with the correct compiler options. If this sounds complex and hard, it's because it is: and it explains most if not all the problems people have with e.g. getting linux kernels to compiled. Distributing make files with a project goes part way to achieving this, but you MUST instead distribute all the libraries you were using as well - re-compiled as necessary for each kernel + arch combination. Almost no-one actually does this because it's too much effort; their assumptions in not doing so cause the problems seen by users.
- On average a medium sized project with a 10-person dev team wastes many hours per person per week just waiting for slow re-compiles. Whenever you hit problems where you have to do a full "clean" re-build of the entire system to cure compilation problems you can instantly add another hour or more to your compile time that day. As explained by the well-known Joel on Software, the constant interruptions of waiting for long compiles waste additional time just because they slow down your progress and break your concentration.
- ...others?
Vesta, meanwhile (one for each item above):
- ...uses correct locking to prevent checkin race conditions that could corrupt data
- ...versions all the build info as well as the source - and seamlessly does so pulling-in the full source + build info for every 3rd party library (assuming it exists on the internet in a vesta repository), so that you never have to distribute the libs, every user has direct access automatically to the correct version for them for their platform - and the vesta build language makes it impossible to ever break this, by refusing to allow "dangling" dependency references
- ...performs distributed builds across all your machines on the LAN "out of the box" with only a few seconds setup required per machine. It also caches every sub-part of every build step with 100% accuracy, providing very fine-grained caching. Finally, the distributed builds are automatically parallelized whilst preserving all appropriate dependencies.
-- note: the second problem above is so extreme that these days I *never* compile any programs from source, no matter what; if I absolutely must get it compiled, I'll get someone else to do it for me - my time is too valuable to waste on this. Except ... with vesta, I have no qualms about replicating and compiling anything, because I *know* it will Just Work (on average, around 80% of linux source I downloaded the make files for didn't work first time, and around 30% still didn't work even after moderate debugging of poor makefiles, missing dependencies, incorrect library versions, etc)
Conclusions
Summary: "it's a whole new world of development – but no more complex than the tools you already use – and whatever tool you use, this one fixes some of the biggest problems you already have"
Problems with current approach:
- lists 10 great features; People care more about *benefits*: how do these features "make my life better"
- tells people what's good about vesta: people who aren't actively trying to change DON'T CARE; instead you need to tell people what's wrong with what they've got, tell them the problems they already know they have, so that they come back asking "Yeah, I know, it sucks. But it's not like YOU've got an alternative, have you?" (at which point they're ready to hear that actually, yes you do ... ). Also...people who are less skilled with SCM selection (most of them!) also appreciate being warned and educated about the problems with their current SCM of choice; frequently, being told about the gotchas that will hurt them in the future if they carry on with X (carry on building up their expertise with it; carry on putting more of their systems into it) will make them try to escape X and start actively looking for a Y to switch to.
Broad strategy:
- Make is the biggest single target to unseat: 50% of all Make users is a bigger market than any other.
- CVS is the easiest large target to unseat: smaller than Make, yet biggest in it's space and so very bad
- Target those currently evaluating/moving to SVN/Bitkeeper/etc: most of the users most easy to convince are probably not using CVS any more
- Create the idea in consumer's heads that all SCMs and BSs must be "perfect" (stable, robust, thread-safe, repeatable, etc): this immediately causes them to avoid many alternatives (CVS, Git, Make, Ant, ???)
- Show users with simple examples some "magic" from combined SCM+BS (that can't be done with non-integrated e.g. using Make + CVS): the USP where Vesta has no competitors!
- Setup easy, simple, inviting welcomes: when a user is flirting with vesta, re-assure them that this is a clever choice, that they aren't buying-in to Betamax, give them an easy migration-path specific to their background, convince them they have little new to learn
Basic Strategy
"Make is the biggest single target to unseat: 50% of all Make users is a bigger market than any other."
- Make users don't tend to think there *are* alternatives: traditionally, there aren't
- Need to capture people who are thinking Make is the only way, and then show them what they are missing (conference talks with titles such as "Why Make is no longer enough: a better way forward" to intrigue them and make them turn up when they weren't looking for such talks)
"CVS is the easiest large target to unseat: smaller than Make, yet biggest in it's space and so very bad"
- ...TBD...
"Target those currently evaluating/moving to SVN/Bitkeeper/etc: most of the users most easy to convince are probably not using CVS any more"
- Many have already made their decision (they think), although probably without evaluating most systems more than perfunctorily. They still have doubt, but they are clinging to rocks, prone to obsessing about particular features of their chosen SCM, *or* trying to find a flaw in vesta sufficiently large for them to obssess on it and excuse their decision not to use vesta (even though deep down then know they should use it!)
- the lack of windows support is vesta's Achilles' Heel: it's too easy for people to latch onto and excuse themselves from bothering to think about it. People are overwhelmed by the importance of choosing an SCM and by the bewildering array of choices, and want the minimum effort way of feeling they made a wise decision. "No windows support" hands this to them on a plate.
- the inability of a newbie to setup a laptop slave repository in 10 minutes to demo vesta is another easy target
- ...indeed, anything the clueless user might think of to try-out vesta without actually doing a complete formal evaluation, and which turns out to be prohibitively hard or to require them to learn vesta first, is a major "breaking point" in their purchasing/adoption decision-process.
question/observation: if we expect people to be up-and-running in 10 min trying things, does it follow that we will have to enable them to do so without learning SDL? What would that mean?
- Need to shock people before it's too late, before they commit; grab those who aren't looking for alternatives, who think they've found what they want.
- headline with massive features that impress the socks off them (keynotes)
- write articles in major publications (web) with titles such as "Your SCM doesn't do builds too? You're missing the best bits..."
- headline-grabbing (no such thing as bad publicity) to get the vesta name out there and known, hopefully getting some people to think "I didn't evaluate that; I'd better have a quick look")
- Many have made no decision and are looking. Every time a project ends and a new one starts, the project leads are open to changing ("upgrading") each of their tools
grab a checklist of what decisions project leads make when selecting tools, and create a website that runs down their list answering their questions for them. Microsoft's corporate sales come largely from providing, gratis, fait-accomplit complete "purchasing evaluations" for people to download, put their name on the bottom, print, and hand to their boss
- e.g. - need to show how well behaved vesta is at integrating with other tools – Debian integration, NFS environments/expertise, cross-platform support (linux, OS X [unusual!], windows [need, desperately!])
"Create the idea in consumer's heads that all SCMs and BSs must be "perfect" (stable, robust, thread-safe, repeatable, etc): this immediately causes them to avoid many alternatives (CVS, Git, Make, Ant, ???)"
- "call to arms" articles: editors like to put stuff like this (soapbox etc) on the last-page of print magazines. Also...a lot of tired, stressed people skip to the last page of the mag (that's why it's last: so it's easy to find quickly) to read something less plain, dull, and less like hard work – a breath of fresh air.
- spark off public debate (/. ?) to get other people thinking about this issue, and talking about it
"Show users with simple examples some "magic" from combined SCM+BS (that can't be done with non-integrated e.g. using Make + CVS): the USP where Vesta has no competitors!"
- Until vesta has a page "10 tutorials: 10 things that only vesta can do", the *main* USP of vesta is not being pushed out to people
"Setup easy, simple, inviting welcomes: when a user is flirting with vesta, re-assure them that this is a clever choice, that they aren't buying-in to Betamax, give them an easy migration-path specific to their background, convince them they have little new to learn"
- Imagine yourself aged 18, or 22 – an intern, or a recent graduate – tasked with writing a presentation on which SCM your dept could use (because doing the research is non-critical path and your boss is too busy to do it themself). Imagine how easy you are to scare off if a site looks like too much work to read (too many links) or "unprofessional" (too techie (ridiculous concept given the context, but the people making the initial (or even final!) evaluation often aren't specialists in the product area); something you fear your boss would feel less re-assured by, putting the onus on you to have to work harder to convince him: the last thing you want to have to do!), or un-established, immature, or unsupported (don't want to be the person everyone blames when the dev community around product X disappears or stops doing releases).
- Roadmaps, timelines showing in an obvious pictorial way that yes, this really is a heavy-development product with regular frequent releases
- Easy-to find list of support options (e.g. 5 links, one for each support channel: IRC, tutorials, wiki, research papers, mailing lists) that people don't need to read, but can see at a glance that mulitple exist!
- Clean, simple, but aesthetically pleasing site design; the minimum for 2005 is a site with a colour scheme, a navbar, a pretty logo, and content organized into mulitple pages so that it's "easier" (read: less intimidating, more "pretty"!) to browse. Packaging, sadly, has a huge effect on the buying decision of nearly everyone, irrespective of cynicism ;).
Targets
...TBD...
Subpages
/InitialReactions /SwitchAd /ThingsOnlyVestaCanDo /VestaLite |