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

Popular posts from this blog

A profession in mechanical engineering

Abbott has a head start in the booming industry

Instructions to update from Linux Mint 19.3 to the most recent version Mint 20