There are three major points to the video below, first, everything matters, and second, there is no better time to start anything than the present, if only for the fact that the future does not come with a guarantee. The third may not seem obvious to those who do not develop software for a living, or make some kind of tangible object, and that is the little things matter, and they matter more often than you would think. The reason behind this is simple; let’s take an analogy of an automobile. If you were to go out today after reading this post and look for a new car, you would expect the major things to be, well, ‘standard’. You would expect a warranty of some kind, for tires and an engine that runs, maybe even air conditioning and a CD player depending on where you live. You would likely open the door and sit in the car, the dash, the controls would be new and old at the same time, but you might notice the real wood trim, not the plastic stuff, or the painted two tone dash, or the fact that when you turn on the window defroster the air conditioning starts (to remove the condensation), those are the little things that you remember. Remember, everything counts!
37 signals, the seven person start up from Chicago that has gown a web application business with more than one million users released a book, Getting Real, which sums up their development philosophy, which should scare the hell out of large businesses everywhere. Why? Because many of them are so enamored of the paper trail they are producing that in essence that 500 page ‘planning’ and functional requirements documents they produce quickly become the only product that they can ship. We even have a new word for this cottage industry that has grown up around the idea of reorganization, right sizing, and certifications of certifications (read CMMI), it’s called consulting. You know it’s time to call one when you realize that you have become just too large to ‘get real’, however, when you do finally make the call instead of getting the advice that you could have found in this handy book (http://gettingreal.37signals.com/toc.php), for free, you pay just to learn that you will need even more certifications, paper titles, and other ‘credentials’.
Fortunately, these companies competitors are out there innovating and will soon surpass them with products that people really want to use, that solve real problems, and isn’t that what this is all about, having fun coding, and solving real problems? I have seen this over and over again, instead of getting things done they spend time talking about how to do things, and my personal favorite, worrying about what could go wrong. It is often said that it is better to have made the wrong choices than no choices at all.
The web moves too fast to second guess. Problems that seemed insurmountable just 25 years ago can be solved in minutes using a desktop computer today, the intersection of fast network connections, cheap storage and processing costs, and the movement of applications from the desktop to the web produce the perfect storm for companies that can remember when disk space cost $75 dollars a megabyte, and you could get a hole puncher and double your floppy disk drive capacity (instantly like magic).
Traditional roadblocks have been torn down and time to market in many traditional business models have been slashed, entry barriers have been brought down to the point where a couple of people and a laptop can effectively change an industry. One by one industries that have largely relied on such protections are falling, the last frontier are those that are heavily regulated.
This is a great discussion on simplicity, something that many have forgotten exists.
Simplicity comes down to the following characteristics:
- Functional [High performance per cost]
- Stackable or Scalable in the computer world
Rules for Software Development (some old, some new; some borrowed, some …)
- You can’t do everything.
- You won’t think of everything! - accept that bugs will exist and you will create software that can always be improved.
- Pretending to know what you are doing is almost the same as knowing what you are doing, accept that you know what you are doing even if you don’t and do it! - Seth Godin
- Don’t pay attention to what others are doing, unless your goal is to produce the same. – you can’t make anything new by worrying what the competition, you coworkers, the people down the hall, … are doing
- The law of diminishing returns applies to features as well as commodities, treat your features as such and choose wisely how many you are willing to implement.
- Ship on time! – be honest everything else pales in comparison
- There is no permanent record, because there is no such thing as permanent! You have chosen a profession where your final product is written on erasable disks, take advantage of this fact often.
- Keep it as simple as possible without being too simple. How many people do you know actually used the VCR+ record feature before the DVR? It required a book, a code, and the dreaded VCR instruction manual, remember those? Now how many people record shows using a DVR? Do you even know what the instruction manual looks like?
- Don’t make a backup plan, remember failure is not an option, learn from your mistakes and move forward. If your backup plan is that great why aren’t you doing that.
- That said, backup your work often
- To err is human, to forgive is good programming – do better than try to think of everything that could go wrong, grab a few people that have no knowledge
- Learn constantly, but choose what you learn wisely – if you want to stay competitive you can not rest, you have choose a field where technology advances reduce development time everyday – those willing to brace the changes will succeed those stuck in the ‘old’, ‘proven’, or ‘traditional’ way will eventually be obsolete.
- Ask Why!
That’s it feel free to add your own in the form of a comment.
The take away from the following video could be summed up as:
Why are we doing this?
What problem are we solving?
Is this actually useful?
Are we adding value?
Will this change behavior?
Is there an easier way?
The last point, is there an easier way, could be the key to success. Everyone who has gone through business school inevitably hears the phrase ‘cash is king’ yet it seems that cash is easily traded for convenience, and in the case of software this comes down to usability, which really comes down to the fact that people will almost always take the easier way. The trick becomes trying to find out, as Einstein has been quoted as saying how to make your software, product, site, etc .. ‘ as simple as possible, but not simpler’. Unfortunately, in the track record for software has been to add more, not less with every release, the challenge is to go against the mainstream and do one thing and do it well.