Doin' the .com hump!

posted in Tech: Arena
Published October 14, 2011
Advertisement
Behold! The life-death-cycle pattern that nearly all startup companies have been following for nearly 20 years:

dotcom_hump.png


[size="2"]A) [color="#696969"]Design application with the user's needs in mind but also with a long feature list that is "successfulwebsite.com-like".[/color]
[size="2"]
[size="2"]B) [color="#696969"]Throw a bunch of programmers at it.[/color]
[size="2"]
[size="2"]C) [color="#696969"]Launch.[/color]
[size="2"]
[size="2"]D) [color="#696969"]As always is the case, you can never really hit the target right out of the gate when it comes to the user's needs. First round of changes.[/color]
[size="2"]
[size="2"]E) [color="#696969"]Code is inflexible and typically sloppy so changes require a lot of band-aids.[/color]
[size="2"]
[size="2"]F) [color="#696969"]Adding more features and, as a result, adding more problems.[/color]
[size="2"]
[size="2"]G) [color="#696969"]Development (or adding problems) vs. fixing problems evens out. Team's getting frustrated.[/color]
[size="2"]
[size="2"]H) [color="#696969"]Your most important asset, knowledge, begins walking out the door. Begin hiring new people.[/color]
[size="2"]
[size="2"]I) [color="#696969"]Downward spiral of which there is no escape. Some projects may be well-funded. So, the possibility of tearing it down and doing it right exists in this case. However, they will almost always choose to throw money at the old codebase, as that is (of course) the cheaper solution. Spiral downwards in slow motion.[/color]

Nothing is more powerful than an idea whose time has come. Victor's right. I've spent the past several years learning whatever I could about producing successful technology. Software architecture, team infrastructure, communications, methodologies, any knowledge that can help me be a better programmer and be able to handle creation of a lasting product. However, after putting in this enormous time investment, I'm only coming away frustrated because the idea (investing in technology) has not caught on. I'm holding the holy grail and ready to lead my employers to a better tomorrow. My employers, on the other hand, are doing the .com hump.

Why has this pattern not been identified and anyone following this pattern not given 40 lashes and stoned to death? Why are non-technical people still brazenly leading their companies down this same path? Hubrous, of course. Still, it's the same pattern over and over. How is it not obvious? Recently, a project that I'm working on was about to be steered off a cliff and I stepped up with my experience to save the day. Rather than heed my advice, I was told that they deal in results, not theory. Since then, I've laid out a strict overtime payment structure.


The Solution

So, enough ranting about the stupidity that I'm sure many of us have witnessed first hand. I'll propose a solution. Given the biz-people's love for anything "successfulwebsite.com-like", we'll call it "The Google Model" (it doesn't matter if it's technically accurate, these are business people we're talking about!).

google_model.png


A) [color="#696969"]Set up infrastructure for development. Put incentives in place so developers have a reason to stay more then a year.[/color]
B) [color="#696969"]Stick to your core competency and invest in it heavily. No added features!!! In other words, keep it small, make it flexible and manageable. Also, don't be afraid to put some usage metrics in place.[/color]
C)[color="#696969"] Launch.[/color]

D) [color="#696969"]Gauge how users are interacting with the software. Successes? Failures?[/color]

E) [color="#696969"]First round of changes. No problem. Preparations for this were made ahead of time.[/color]

F)[color="#696969"] Add features based on common usage. Keep them simple.[/color]

G)[color="#696969"] Build on existing features, add new ones when necessary. Adapt to your users.[/color]

H) [color="#696969"]Development team begins building up steam having worked on the same project and with eachother for some time. I can not stress the importence of employee retention enough![/color]

I) [color="#696969"]Review code constantly, making improvements where necessary and jump back to step (D). If expanding, jump to step (B). Rinse and repeat.[/color]

Success comes from a strong core concept and not from tons of bells and whistles. More importantly, success is adaptability. Much can be added here (and feel free to) but my point is that the constant repetition of the same mistakes with the expectation of different results is, by definition, insane. I believe the time has come that these mistakes be recognized as such across all applicable fields of interest.
Previous Entry A small bump in the road
Next Entry Tech Arena Returns!
0 likes 2 comments

Comments

cdoty
It's interesting that you speak of the .com bump, but ignore one of the early victims. Netscape did tear down and do it right as you suggest, and that cost them their company. They went from a market leading product to stagnant as they attempted to rebuild rather than fix and update. When you start over you are throwing out a lot of lessons learned. Although the code might seem bad, it contains workarounds for issues within the OS or hardware. It's usually better to refactor over time and rewrite problem areas. Also, a functional solution can be deemed broken because it isn't done the way the next programmer would do it. Given a chance, almost any programmer would choose to implement their own system over reusing an existing system.
October 14, 2011 07:11 PM
coderx75
Netscape did tear it down but they didn't do it right. That was the moment that the company I worked for and many others threw in the towel and stopped supporting Netscape altogether. There is a point where you're better off working with old code and that depends greatly on your situation. This is really secondary to my point. I'm more concerned with the hordes of companies that want to get into technology without feeling they need to invest in technology from the get-go.

Companies with financial backing that continue to avoid the necessary investment in technology have usually been far surpassed by competitors at this juncture, thereby strengthening my point on the need for initial investment. However, this was meant more as a side note and has nothing to do with my original point or the solution I proposed.

As for programmers typically choosing to implement their own system, that's very true but exactly why I stress employee retention. If a large portion of your technical knowledge walks out the door (and, in many cases, into your competitor's), you've pretty much failed.
October 14, 2011 08:01 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement