What is the job description of a Software Engineer?
We do magic with a computer!! :)
Well, this was one of the comments from my client when I
fixed an issue for her.
Let me tell you simple job
description of a software engineer (not the Engineer, but you can be
sure in every phase he/she is involved.)
1. Life cycle of a software starts with a requirement.
Requirement
Requirement is any real world problem for which the client’s
needs a solution.
The requirement can be anything like creating a software to
manage your money, software to make an app like tinder or Facebook, make a
desktop OS like Windows or Linux. a website like Quora. Each of these cater to
a particular real world problem, and provide a solution.
Software Engineering is not just about writing code,
software engineering starts with a requirement , like any other Job, a software
engineer needs to understand what your need is , he/she should have expertise
in developing solutions similar to yours.
2. ok, I understood, so what’s next ?
Analyze and Design.
Analyzing and design is the core part of software engineering.
Like a builder makes a blue print of the building before
actually building it, he/she analyses the space for building, number of floors
for the building, number of flats for each floor, water requirements,
electricity requirements, govt. norms for making a building etc.
Software engineer has to create a blue print for solution,
before actually implementing it. He has to check, is the requirement feasible? Is
it viable? Is the technology available to implement the requirement? Can he/she
do it alone or does he/she need from some other team? Can it be done with the
money provided by the clients? Can it be done within timelines provided by them?
After Analyzing all these the Software Engineer will create
a design, the core of the software, like design patters, framework for the
software, core functionalities. Generally these are done by Software Architects
and solution Architects, whose who have experienced in creating software solutions.
3. Got it .. What happens next?
Build and Code
As per the framework designed by the architects, engineers
will code. They will follow the coding guidelines and patterns set by the
clients and convert the requirements to actual code. They divide the
requirements piece by piece and make them a single working unit. They test the
working unit (called Unit test).
Once all the units are working, they integrate all of it and
see if the units work as a whole, if any issues then they fix it. Once they are
satisfied that all the requirements are taken care, they send it for testing.
4. whoo… they just tested it.. Why they need testing it again?
Review and Testing
The software engineers who code has a different mindset,
they only see the things which are mentioned in the requirements, but there are
chances where the engineer might have missed something which may make the
software a fail. Or they have done something which is actually not correct way
of doing.
Experienced engineers review the code written by the
subordinates and peers, to make sure that code is complete, effective and has
no adverse effects. Then testers start testing it. Is the software meets the
complete requirement what the clients asked? Can the software handle load if
lakhs of user use it at a time? Is it hack-able? Is it error-proof? Testers ask
these questions to the software and if any case is not handled then they raise
a concern and send it to developer.
They basically check the quality of the software and make
sure that the best quality software is delivered to clients.
5. ok.. Then?
Deployment and
Maintenance
Then the deployment happens, the go live, the start of the
software. People just kick start it and clients start using it and use the
created solution to their problem.
The Software team is responsible for maintaining the
software, give fixes to the bugs and upgrade the technology, make software
faster and do some changes after the deployment / release and as per contract
with clients.
And the cycle starts again with a new team, with a new technology,
new requirement and new client.
This is the way we create solutions to every problem. We do
a lot more than just code to solve your problems. Sometimes we create stuffs
that looked impossible, provide a simple solution to your hard problem. Some
people just see nerdy, unsocial human in us, some see a lazy person who just
sits before the computer and type , but some people understand the value of the
problem we solved, if it is better than what they expected , they call it
magic.
Comments
Post a Comment