Skip to content.

Personal tools
You are here: Home » Members » chrism's Home » Jobs-Ification of Software Development

Jobs-Ification of Software Development

Try not to Jobs-ify the task of software development.

Steve Jobs is lionized because he put a bunch of nerds to the task of building computers and applications that worked "for the rest of us". He was good at getting people to create interfaces that made it hard for other people to fail while attempting to perform a task. To fail at something, you have to be able to make at least one choice while trying to do it. The fewer choices you can make, the less catastrophic making the wrong one feels, because often you can remember making it and "unmake" it. And, by extension, you can't fail at all if you are preventing from making any choices. People love needing to make fewer choices because it absolves them, at least partially, of responsibility for failure. Fear of failure can be debilitating. As long as the boundaries of limiting choice are acceptable to the above-average person, and limiting choice helps the average person to complete a task that was previously not completable, everyone wins.

But people who work in a creative job aren't responsible primarily for "completing tasks", at least not in the same sense that people who have jobs without a creative bent. The "tasks" that a creative person must complete are ill-defined, and carry a larger set of inherent risks. The task may have just never been done before. The "task" may actually be 50 discrete tasks hiding under the guise of a one-word conceptual definition. The "task" may not be completable by one person or entity. The real task might be just to figure out that the proposed task isn't worth doing. It often takes 10 or 100 times more work to just define a creative task than it is to actually do it at the end. No choice-limiting strategy works universally to perform a creative task, because nobody really knows the full scope of a creative task before they start to do it. If they did, the task would not be creative; it would be rote, and it'd probably already be done.

Therefore, creative people, by necessity, learn not by succeeding but by failing. Failure is always an option when you are doing creative work. If you don't repeatedly and painfully fail at something, you won't really have learned it, and you won't be able to be creative in that medium, and you'll likely be useless at your job. You might know a lot about it, and you might even be able to hold a cogent conversation about it, but you won't really know it unless you have made a complete mess of it at some point. If you have a debilitating fear of making choices as as creative person, you're probably in the wrong job; you'll never be very good at it.

Software development is a creative job. Pressing buttons isn't creating. Choosing which button to press isn't a choice in the same way as choosing whether a button exists or not, or even deciding whether there is the concept of a "button" or a "press". The task of software development isn't a job "for the rest of us", and never will be. "Jobs-ification" doesn't work at this level. If you want what you're doing to be easy, straightforward, and risk-free, it's probably not worth doing as a software development project. You should have probably just used an application instead of trying to develop your own software.

Don't fear choice as a software developer. Don't try to maximize the outcome based primarily on technology choice. Instead, pick a set of technologies that you believe is acceptable and use those technologies to their limits to maximize the outcome. Any reasonable set of technologies can produce acceptable outcomes in most circumstances. If you fail, so be it. For the majority of software developers, failure is not only an option; it's often the right option, if it means you end up learning something quickly enough to avoid a larger failure later. At least when you're faced with a similar choice in the future, you'll have some experience under your belt, and you'll be better equipped to maximize for outcome based on technology choice or sheer skill. Don't pray for your competitors to fail; pray for them to succeed too soon and pray that you fail right on time.

Created by chrism
Last modified 2011-10-17 12:20 PM