May 17, 2009

What software engineers actually do ?

People wonder about software engineers on what they actually do at work. Being a software engineer, i need to give a fair, convincing answer. This is a famous statement. It holds good not only for a software engineer but for any professional. Even it holds well for a doctor or lawyer.
"If you are not able to explain your mom & dad about what you do at work, then YOU don't even know what YOU do..."
This doesn't refer your parents especially but for any non-technical person having no knowledge about your profession. Well, that said, read more & find out what WE do at work.

Role of IT

With hype of technology at it's peak, the fact that IT enables business is blatant. I refer "business" to every possible category like banks, media, travel, automobiles, entertainment, shopping……Almost everywhere. Now I would like to share few examples about how IT supports the business before I brief on what I do @ work.
Here is a very simple, small scenario.
A billing system in a provisional store. Without one, the store keeper use to write down the list of items in a paper, adds them up to finally get your bill. Now the billing system not only gives the bill in a minute but also it keeps track of the total sales for the day, month & year too. Even it will order the wholesaler for more goods whenever a particular item is sold out.
Here is a slightly complex one. My friend, Sri vallabha is a mechanical engineer who at work spends most of the time with a computer. You might wonder what does a mechanical engineer have to do with a computer. This is what he does.
sri’s uses an engine automation software. This software is just a tool using which he can ‘virtually’ build an engine & test it’s output & performance. He configures this ‘virtual’ engine with varying parameters and he gets a perfect design after finalizing the torque, size, bhp, diameter etc.,
Previously they are made physically & tested live. To get the perfect design, we need to change the parameters & manufacture the engine enumerous times. The tool he uses comes under a category called CAD. It is a type of software which is used to create & design virtual objects. like the engine sri designs.  This avoids the manual work in manufacturing the engine. So now you can easily understand how much time & money IT saves for his business.
Few other examples are…

  • The ATM you use every day

  • The online shopping you do with your credit card

  • Automation of Rocket launch.

  • The visual effects & sound effects used in movies.

Role of a Software Engineer

Now you have seen how computing helps real life, here is what MY role is all about. Most of these real-world solution are provided by something you know very well: Software. The utility we build and provide the customer is technically named as Software. It takes a lot to develop a software. It involves invaluable effort from several people where my role lies in the lowest level. We have people with varying designations to define, design & develop such a solution.
When we build a house, initially we will finalize a PLAN for the house, estimate the total cost, gather labors, build the house & complete it. The same story applies in software too…
People at the top level will try to understand the business & the problem scenario. They will finalize a PLAN to solve it. Once a PLAN is in place, a design is created. It will have all the details to technically solve the problem. After a proper design is done, we come into picture. We are the people who will DEVELOP the solution using the design.
‘DEVELOP’ means, writing programs. ‘Programs’ means creating or defining a set of instructions. Why Instructions ?
The computer is an IDIOT. It cannot take any decisions on it’s own. You have to program (instruct or tell) what to do. If i say, “Go, jump into the well”, Will you actually do it ? But the computer will !!
Though the computer is fast & effective in processing & producing results, it cannot think on it’s own. WE (Software Engineers) have to write the instructions & TEACH (or GUIDE) how to do. Writing instructions is also not easy. I cannot just say, “Computer Ji, please solve this problem”. So we have to write step-by-step clear cut instructions after which the computer can take care of the rest.
Usually, a “Programming language” is used to write such instructions. If you have heard of C-language, C++, Java, Visual Basic, DOT NET…..they all come under the category of programming languages.
So this is what WE do at work. We help resolve real-world business problems with our computing knowledge. Now if this article helped you in understanding our world, i can then make sure that I know what i am doing @ work :)

No comments:

Post a Comment

You may also like these writeups

Related Posts with Thumbnails