True story: I once worked on a project where I was told from the outset that “we probably will not use your code”.
This was back when I worked at a big defense contractor. There were negotiations under way for an expanded contract that would obviate the work I was doing, if it were signed. But someone still had to do the work, to meet current contractual obligations and in case the negotiations fell through.
Back then I estimated that about 50% of the work I did was eventually shelved and never used. Contracts changed, or a feature went over-budget and was cut, or a management shuffle resulted in new priorities. I began to think about projects as being similar to teeth: ignore them long enough and they’ll go away. This environment lead to an interesting productivity optimization: I realized I could ignore projects for weeks on end, and focus on my self-teaching instead. Eventually half the projects would go away, and the rest I could cram out with a few over-nighters.
Later I worked for a startup, which failed. We managed to open-source a little of our work. As far as I know, most of it is still collecting dust in some VC’s cabinet of intellectual property, never to be seen again.
Over the years a lot of SAAS software I’ve used and enjoyed has gone away. Anyone remember Posterous? Or Drop.io? I invested time and content into them, then one day they posted about their incredible journey and then vanished into Facegooger. Along with their code.
Recently a service that I absolutely love went into maintenance mode and stopped accepting new sign-ups. They haven’t given me an end-of-service date, but it seems like the writing is on the wall. I’ve asked, and no: the code will not be open-sourced.
Every time I read articles about how to be a successful startup entrepreneur, I hear the same thing over and over again: fail, fail, fail. Don’t fear failure. Embrace it. Do it over and over again and learn from your mistakes.
It’s good advice, I’m sure. It’s important not to be immobilized by the fear of failure.
(Though failure isn’t always that informative. You can learn a thousand different ways to fail and never learn a single way to succeed.)
Moreover, failure has collateral. Are we OK with the idea that the only long-term benefit of these years of failure is some life experience for the founders? Code isn’t the only thing that gets cast aside in failure. Often, there are employees as well. Who may be left with little more than useless fractional stock options and a lingering sense of burnout.
This is especially vexing given that a) many employers give a great deal of weight to seeing recent code that that a prospective hire has written; and b) the work pace for early startup employees often gives them no extra time to contribute to non-proprietary code.
Life is short. We have a limited amount of time to benefit the world. Is it acceptable, the idea that benefit will only come from the “hits”?
I don’t think I want to write off [any more] years of my professional life to nothing more than “well, that was a learning experience”. I hope I can find ways to make even my failures be useful to more than just myself.
This could mean a lot of things. One concrete take-away that I’ve just started pondering is this: I’m not sure I’m comfortable with the idea of working on speculative projects which are legally constrained in such a way that the code will be archived alongside the Ark of the Covenant if the project doesn’t pan out for whatever reason.
Which makes me curious: is anyone out there actually making provisions for open-sourcing their code in case the company or project fails? Is this even a thing?
What do you think? Does it matter that we make our failures “count” for more than just personal enrichment? Are you taking any steps to ensure they do? I’m curious if anyone else is thinking about this.