Those of you who know me or who simply follow my various ramblings and musings through this blog will probably know I’ve been out there in the trenches for a while now. I first started back in 1998 as a “temporary” contractor with a new product division of Microsoft. The product was a giant beast of a creature we’d now call an “ecosystem” in today’s project speak parlance. It was aimed at small to medium sized businesses and incorporated elements of a new product called “Exchange” as well as elements of a soon to be deeply integrated MS Office suite. The product ended up shipping as Windows Small Business Server, but I bring it up because now because that was the first time I began hearing the phrase, “we’re really more like a startup. Of course it was all poppycock, and you can bet it will be poppycock as well when you hear some one else make the statement about any other company or group. The reason I can make this claim is companies or groups operating in a startup mode or state do not have to self-identify as a startup. The fact they have no money, customers, equipment, or support sort of does the talking for them. Working with a fixed budget on a project with no guarantee of success does not immediately equate your work to a startup. It simply means you’re working on an interesting project that could blow up in your face, but probably not. So why do so many companies, departments, and people self-identify with the “startup” some of us have actually done time with?
Unfortunately the startup company has a particular place of honor in the mythology of the software development and information technology industries. The startup ranks up there with the coder who’s arcane understanding of mathematical systems and processes departs a special knowledge rendering them superior to other humans. It’s actually only slightly below the conceit of computers (and software) running or controlling the world (see “brothers, Wachowski” for more on this). The myth of the startup is something along the lines of a small group of dedicated enthusiasts joining together in a quest to create something innovative and world changing. The enthusiasts are generally credited with enough foresight and altruism to justify little to no immediate financial security while pursuing their dreams. Certain versions of this myth have the enthusiasts eventually becoming rich(ish) but treating the monetary rewards as trivial, even losing them all with a smile on other companies and products.
So the primary aspects of a startup according to the myth are frugality, innovation, enthusiasm, egalitarianism, and camaraderie.
These are all laudable traits, but unfortunately they are nowhere near the ones truly defining a startup and its culture. The really unfortunate part of this problem is rooted in the general positive value assignments of all the traits. Because they’re essentially positive, a lot of groups, companies, departments, or teams like to call themselves “basically a startup” or “following a startup model.” I’ve actually talked to groups with multi-million dollar budgets, hundreds of active customer accounts, and offices in three continents who referred to themselves with all seriousness as “still essentially a startup company.” Of course no one who was actually at the company when it was in startup mode was still around to laugh in these people’s faces, so there was no one to correct them. That’s why I don’t really blame them for their mistaken belief in an archaic system. All I can do is educate and see if it sticks. I have to admit to a certain amount off self-interest in spreading this message. I’m getting tired of meeting with clients who think they’re a hare but are really a tortoise. It’s not a value judgement but it does make working them a tad easier if I don’t have to rub their tortoise feet for luck and continually admire their “fluffy” tortoise tails and “long” tortoise ears.
So what are the actual traits of a startup, or rather what are the traits of a startup that eventually succeeds? I’ve actually done a lot of research into this topic and I have some definite opinions … of course. I mean why else would I be writing a blog entry?
The actual traits of a startup are as follows:
Out of these traits come a lot of the things normally lauded by the industry. Since startups have no real customer base, they must be flexible and agile enough to chase down markets as they evolve. This means today’s dominant technology or tool is tomorrow’s unused site license. This requirement for being able to quickly become an expert on technologies and frameworks is why startups are usually staffed with talented generalists rather than world renowned specialists. Successful startups won’t usually refuse to interview a candidate because they don’t have experience with “X” tool or “Y” platform. Instead they look for a pattern of rapid competence coupled with an intense desire for learning.
In order to survive past the next six months, a startup has to either take business away from an established company, create new opportunities, or attack opportunities the established companies are ignoring. This means they need to innovate beyond subtle improvements to what’s already being done. For a startup to be successful, they need to become dominant in their market which is why most of them attach small markets being ignored by “the big guys.” Because a startup will have little to no advance knowledge of their market, customers, or their needs the successful startup has to keep their processes and workflows as light as possible. Once the market starts to coalesce, the measurement and improvement can start as there will be an oracle against which you can measure success. Until then the startup runs the risk of entrenching behaviors counter to their actual market needs.
While startups always have seed money and angel investors and venture capital, the successful ones are invariably lean and hungry. Every minute spent working is another minute where money was siphoned out of the company funds, to greater or lesser degrees. Until the company achieves profitability (ie: customers paying you more money than you spend on a regular basis) the only thing a startup can do to keep running is attract more capital or stop spending money. There is no money for large development and test environments that must be maintained. The company cannot afford expensive tools and third party systems that already solved a few of the problems. Debts in quality and design cannot be paid by off-shoring work to someone else. Designs and solutions have to be determined, developed, and deployed as rapidly as possible to get money coming in as soon as possible. The constant drip of the money faucet naturally results in lean solutions with the bare minimum of design and coding that work on laughably under-powered systems. Because they cannot afford to spend months working out the “correct” solution, the startup comes up with “a” solution and lets the customer tell them if its correct or not.
Finally, and I can’t stress this enough, there is the constant fear everyone at your company won’t be around in a few months if you can’t get the money flow turned around from outward to inward. This fear of failure brings out a desire for daily excellence in a lot of people while bringing them together in a sense of common struggle. Since everyone is effected, the test analyst will usually be on a first name basis with the CFO after leading them through a bug bash session with beer and pizza. Every small victory is celebrated and every small setback is shared. No one can be suffered to simply come in, do their job, and leave because there are simply too few people around and too little time and money to allow luxuries otherwise.
It’s my assertion that if you’re missing any of those four items, you aren’t really “just like a startup.” You can be a small company where the CEO sits in an open cube like everyone else; but unless you’re scared spitless about next quarter’s earnings, chances are good the “open cube” policy is more of a PR exercise than a reality. You can talk about being “agile” and “innovative” but take a look at your hiring and interview process. Chances are very good its currently geared to attract world class specialists as your ideal candidates. These people are usually writing papers and speaking at conferences about their subjects, but are also usually about as agile in changing direction radically as an aircraft carrier.
But hey, its okay. It’s great to be a successful company with a dominant market position. I can guarantee you every startup out there wants to either become you or be noticed and acquired by you some day. The original staff may leave when that happens, but that’s okay too. They’ll usually have a larger bank account and bragging rights about what they built. You then have the hard task of building on success and creating innovation one small step at a time in a market now populated by a sea of wannabe imitators and conservative purchasing agents. You have hour own unique challenges and triumphs that should be celebrated.
So stop attempting to be something you ain’t and just be happy with yourself as who you are.
Selena Delesie recently posted a couple of blog entries about her experiences with something called “the hero culture” and its pervasiveness within the IT and Software industry. You can read her posts here and here, and I suggest you do because they are really interesting. Out of that discussion marched several great comments from some of the usual Mötley Crüe. An interesting theme was advanced in offline conversations between James Bach, Matt Heusser, Selena, and myself. Okay, it was mostly me and James. So moving along … the theme was the general transformation or degradation of the term “hero” since the advent of the modern entertainment age. If you are a student of history, mythology, psychology, and/or anthropology you’ll know the term “hero” is nearly universal in its presence but not specific meaning. Scholars such as Claud Levi Strauss have posited these similarities represent the possibility of a common thought structure or pattern. Karl Jung debated them as universal archetypes representational of a common experience and share human nature. Probably the most famous scholar on the subject in the United States, Joseph Campbell, described these common structures as an attempt to describe and share common beliefs or experiences in the language of metaphor and poetry. In short, he stated the mythical archetype is an attempt to hack our conscious thought and wire it directly into the unconscious suggested by Levi Strauss and Jung.
So what is the “historical” definition of a hero and how is it different to the pop culture definition advanced by the literature, movies, comic books, and television shows of today? The biggest difference is a the nature of the hero his or her self. In modern interpretations a hero(or heroine) is someone who overcomes adversity or seemingly impossible challenges. The young soldier who lost both legs in combat but still dances at his wedding is considered “heroic” in his ability to overcome his disability. The comic book protagonist who battles through ever more dangerous and omnipotent threats is called a “hero” for defeating them at the possible cost of their own life.
Contrast this with the pivotal moments of the historical hero cycle as defined The Hero With a Thousand Faces. In Campbell’s monomyth the hero is called to adventure where they overcome ever increasing challenges or perils with assistance from a divine agent or a companion or both. These seem to line up with the modern interpretation quire well. Unfortunately that’s just the beginning for Campbell’s hero while it is the full definition for the modern one.
Campbell’s hero eventually fails, dramatically and spectacularly. The failure either causes the death of the companion or divine agent, or the death itself is the failure if the hero kills the divine agent or companion personally. The hero then feels epic remorse and travels to the realm of death to retrieve the lost one. In this they also fail. These failures are the pivotal moment in the monomyth, triggering the second part of the heroic cycle. In the second part, the hero must come to terms with their mortality, foibles, and limitations when they had previously thought themselves nearly immortal, infallible, and omnipotent. The period off reconciliation and atonement for their past actions raises the person of action into the realm of the hero. Eventually they are welcomed back into their village/tribe/city after they have achieved wisdom and humility to temper their might and valor.
So the historical hero is not one who overcomes insurmountable odds. The historical hero is one who fails to overcome insurmountable odds, and in doing so has to face their own death … the ultimate limitation we all must face. The hero is the one who faces their limitations, and becomes wiser for them.
So perhaps we don’t need to abandon hero culture in software development. From where I stand, we actually need to embrace it rather than simply remaining trapped in the adolescent or nascent part. Until we’ve embedded the entire hero, talk of abandoning him or her is a tad premature. I think we can learn a lot from them.