Embrace constraints

ReworkFrontCoverCurrently reading a very interesting business book called Rework. It is written by the people who started the very successful 37signals.com. The format of the book is also very good. It has a collection of essays based on truisms that the authors have discovered. Embrace constraints is one of them. This is what the authors say

Stop whining. Less is a good thing. Constraints are advantages in disguise. Limited resources force you to make do with what you’ve got. There is no room for waste. And that forces you to be creative.

How true. I have seen this happen many times. The story I am narrating here is about how I learnt a lot of discipline and good programming practices due to constraints.

The year was 1989. I had got into NCST (National Centre for Software Technology) and was doing PGCST (Post Graduate Course in Software Technology), a one year, part time course.

During this course, the most limited resources were computing resources. There were enormous constraints imposed on us. PCs were still not very common then. We had only 400 rupees worth of NCST’s computing resources on a VAX machine available every month. Everything we did would cost us, and was automatically accounted for. Here is the rate card as I remember. Connection time used to cost us Rs. 40/- per hour. This itself would mean we would never get more than 10 hours of connection time per month. Login and logout from the system would cost us Rs. 1 each. A page of printout would cost Rs. 1. A second of processor would cost 1 Rs. Even storage would cost us 1 paisa per day per kilo byte. There was an online program called mycharge that would display the whole charge table for us, and we would look at our reducing balance with a sinking feeling. Smile. Off course we could pay and get more resources, but we didn’t want to pay.

We were doing a module on C programming and we were given a very complex programming problem. My program was 1,400 lines long. However, it compiled in two attempts and it ran and passed all test cases the first time I ran it. Open-mouthed smile And remember, I was a newbie, programming for the first time in my life. What made it possible?

Due to all the constraints I had, I had written the program on paper 5 or 6 times before I entered it in the editor. I had taken hand runs through every function I had written and before I started entering the program in the computer, I was completely sure that it was going to run, and it did. No one formally trained me in taking hand runs and testing each function using them. The constraints made be creative and helped me discover the techniques.  Embrace constraints.

Can you think of cases in your own life when the constraints helped get the best out of you? Please share.

This entry was posted in Books, Reading, Fundas and tagged , , , . Bookmark the permalink.

4 Responses to Embrace constraints

  1. Pingback: Leonardo da Vinci’s Resume | Makarands Musings

  2. Pingback: Elephant and the rope | Makarands Musings

  3. Deepak S Avasare says:

    In my first job back in 1981, we had EC1030 machine and punched cards to enter COBOL progtrams. We could get 2 compilations within a day, 3rd one overnight if you sqizz and are lucky to get someone to punch cards after 3:30 compilations.

    One thing I realise later on that when things change and constraints are gone / reduced, we still work as if the constraints are still there. This can be unproductive in the long run. We have to consider that changes in environment and make the most efficient use of the resources at all the times.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s