rediff.com
News APP

NewsApp (Free)

Read news as it happens
Download NewsApp

Available on  gplay

Rediff.com  » Getahead » Developing software is like making sambar
This article was first published 10 years ago

Developing software is like making sambar

Last updated on: May 7, 2013 18:29 IST


Photographs: Miansari/Wikimedia Commons

The two processes are far more similar than you can imagine, says Dasarathi GV.

The term 'software development' is much misunderstood and misused. In India it is generally equated with writing code. In reality it is much more. The process of software development, you'll be surprised to know, is the same as the process of developing a new type of sambar.

These slides show you how. You can go through them the hard way, mentally answering the questions you encounter, or the easy way, just reading through them.

The choice is yours.

Developing software is like making sambar


Photographs: Rupak De Chowdhuri/Reuters

Step 1

You have a restaurant on this street. You think people are getting bored with the sambar that you have been serving and going to competitors. You want to  invent a new type of sambar.

What is your first step?

  • Analysis of need
  • Nature of your customers
  • Their culture
  • Type of food that they like -- spices, salt, type of vegetables, spicy, bland
Tags:

Developing software is like making sambar


Photographs: Paul Goyette/Wikimedia Commons & Jayashree Govindarajan/Wikimedia Commons

What is your next step, after analysing the need?

Architecture

  • Thick, thin
  • Spicy, bland
  • Sweet, not sweet
  • Lot of vegetables or few
Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

What is your next step, after deciding the architecture?

Design

  • Amount of salt, chilly powder
  • Amount of dal
  • What vegetables -- potato, drumstick, beans
  • Vegetables half or fully boiled
Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

What is your next step, after deciding the design?

Coding

  • Make the sambar
  • Boil vegetables
  • Boil dal
  • Mix, add masala
  • Stir periodically
Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

What is your next step, after making the sambar?

Testing

Check the taste, viscosity, temperature, aesthetics

Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

What is the next step, after testing the sambar?

Deployment

  • Serve it to customers in appropriate dish, at correct temperature,in right quantity
  • Get feedback, close the loop
Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

'Know what' and 'Know how'

Steps 1 and 2 are the 'Know what'. What is required, what does the user want? This is called Domain knowledge.

Steps 3 to 6 are the 'Know how'. How can this requirement be fulfilled?

Developing software is like making sambar


Photographs: Chung Sung-Jun/Getty Images

Example: Software for CT scan machine

The domain here is the human body.

Steps 1 and 2 can only be done by someone with domain knowledge of the human body -- a doctor.

Design, testing and deployment are jointly done by electronics, electrical and mechanical engineers.

Coding is done by a programmer.

Testing is done by a doctor.

Tags:

Developing software is like making sambar


Photographs: Bruce Bennett/Getty Images

Example: Aircraft head up display

The domain here is an aircraft. Steps 1 and 2 can only be done by someone with domain knowledge of flying an aircraft, a pilot. Design, testing and
deployment are jointly done by electronics, electrical and mechanical engineers.

Coding is done by a programmer.

Testing is done by a pilot.

Tags:

Developing software is like making sambar


Photographs: Dasarathi GV

'Software exports' from  India

The reality

What is done is:

  • Mostly coding -- stirring the pot
  • Lower level design (top level done by designer abroad)
  • Testing, with test specifications being laid down by designer abroad
Tags: India

Developing software is like making sambar


Photographs: Dasarathi GV

Skills required in software development:

6. Knowledge of user, user's requirements

5. Knowledge of application area, initial design

4. Writing software code -- Java, C++.

3. Knowledge of software design, mathematics

2. Knowledge of application area

1. Knowledge of user's requirements

Tags:

Developing software is like making sambar


Photographs: Kacper Pempel/Reuters

Rewards in 'know what' and 'know how'

Know what:

  • Problem solving. You are given a problem, and you come up with a solution.
  • Your earnings depend on how much creativity you put in.
  • You get a fee for your creativity, and get creative satisfaction.
  • The fat salary will take longer in coming, but it will definitely come.
  • Your earnings rise with your domain knowledge.
Tags:

Developing software is like making sambar


Photographs: Chung Sung-Jun/Getty Images

Know how

  • Implementing a solution. Someone figures out a solution, and you implement it.
  • Your earnings depend on how much time you put in.
  • You get hourly or daily wages, and no creative satisfaction.

The fat salary is immediate, because of the wage differential between India and the West. The salary curve will however flatten out fast, and you'll burn out fast without creative satisfaction.

Tags: India , West

Developing software is like making sambar


Photographs: Jayashree Govindarajan/Wikimedia Commons

Choose your software career wisely

Option 1

Join an IT services company as a programmer. Use your knowledge of programming languages like Java or C++ to do the coding for software.

Every six months or a year, keep shifting to a new software project -- banking, shoe retailing, airline ticket booking, finance. You will be a 'know how' person all your life, in step 3 in the circle, maybe graduating to step 4. You will have no domain knowledge in any particular domain.

Option 2

Join a software product company as a programmer. If you change jobs, stick to the same domain (example: banking) so your domain knowledge improves
as you put in more years on the job. You can move up to any of the steps, even 1 or 2.

Oh, by the way...

The 'sambar circle' applies to the development of any product, not just sambar or software.

Tags: