6 rules for programmers

            To my daughters Tina and Marie who just completed their first course in Computer Science at Stanford University.

1. KIS. Keep It Simple. Even the most complex task can be broken into multiple simple ones. A good planning and design can save you a lot of trouble down the road.

2. Document. Document. Document. The good documentation (aka comments ) distinguishes the pro from the amateur. As a rule of thumb your comments have to be at least as long as your code. I’m talking about comments within the code. User manuals, system manuals etc. are extra.

3. Test. Test. Test. There is not such thing like a working software. Working software is a software that was not tested enough. This explains the multiple versions and revisions.

4. Do not reinvent the wheel. Use other people’s work. There is plenty of software already written and available. Plan accordingly and use as much of it as possible.

5. Get organized and stay organized. Approach the software writing with the heart of an artist and the brain of a scientist. keep track of updates. Keep your old code and versions. You may end up liking your first version best after rewriting it several times.

6. Double the estimates. Use your best knowledge to make a realistic estimate about the time needed for a project then multiply it by 2 before presenting it to your boss.

Stories that repeat – part 5

The story

I was in 9-th grade, when the students of my class were sent to help farmers pick tomatoes. We would pick roma tomatoes and put them in cases. We would get a ticket for every case full of tomatoes delivered to the warehouse. Needless to say that the more tickets the better for the bearer.  Some boys noticed that the farmers do not have sophisticated printing technology and the tickets are easy to counterfeit. Boys at that age are not known as big thinkers. The idea was implemented quickly, almost as quick as it took for them to get caught.

The repetition

A public Company engaged in software development and implementation decided that writing software and implementing it is a daunting task and frankly not that profitable. Like picking tomatoes. So they decided to invest in the stock market their free cash instead of investing in the software. It worked until they got caught in market’s downturn, causing them to lose not only the cash invested but also the profits made on the software side. As a result their stock is at record low. Hopefully they will return to their core software business with the little cash left or they go pick tomatoes.