How many times have you heard the term ‘Software engineer’ or ‘Software engineering’ and nodded your head without fully comprehending exactly what it means?
If you’re nodding right now, then this post is for you. Here I’ll talk about what software engineering is, what a software engineer does, and why it is so important nowadays.
A bit of history
Definition: Software engineering is a process that is used by experts in software to transform well-defined ideas into something “tangible”.
The term Software Engineering became known after a conference in 1968 when the difficulties and pitfalls of designing complex systems were frankly discussed. But it was around 1960 when computers were used for computing rather than for communicating and storing information as we do nowadays, what were they computing would you ask? Well, mainly mathematical theories and formulas. Basically, they were room size pocket calculators, but as computing capacity grew, so did the demands on programs and on specialized people able to deliver them. The constant and exponential demand required not only good programmers but software engineers who could manage to cover all the different aspect of analyzing, designing, developing, testing and delivering functional software, back in the days the number of people required to do all the hard work was way bigger and only large well-established companies were able to make the demands and have access to the latest software, but thanks to all the grew technology has had and all the contribution from people around the world is that now we can access it and enjoy from all its benefits.
Understanding the concept
First things first, in order to understand everything explained in this post I’ve listed a few terms to consider which will help you to understand the term more fluently.
Software: Refers to any program, website, or operative system. For the purpose of this blog, we’ll be talking specifically about websites as a piece of software.
Requirement: Normally, this refers to a clear piece of functionality that will add extra value to an existing product.
Development: refers to the process of writing what’s called code lines, which are the core base of software product.
UI/UX: User interface, what end users can see / User experience, how well users can interact.
Bugs: refers as a glitch when something doesn’t work in the way that is expected.
Software engineering is the process that helps software engineers or experts in software to transform/build a well-defined set of ideas/requirements into something “tangible”, something where either people or even computers or similar devices can interact with.
This process typically starts by analyzing and refining the set of requirements that were put together to define what needs to be built, once all the different components that are going to be involved or that are going to be required to achieve the goal have been identified, a design stage starts where Software engineers along with experts in UI/UX decide how all the components identified in the previous stages are going to work altogether, in a way that the final product provides a fresh look along with the best user experience users could get when interacting with the finalized product.
Only then a development or build stage can starts where all the gathered information is finally validated and used by developers that are responsible to write down/ build all the code lines that will compound the final product.
It’s impossible to determine a static estimation of how long this process will take, as in every case each project depends on a wide range of factors that include but it’s not limited to:
Resources (Developers, Designers, Project managers, Testers, Architects, etc ...)
Once the build stage is done, testers from different kind come to play to ensure the product built is working properly and free of bugs, so engineers can take this finalized product and put in the cloud and available to use by any user.
What does a software engineer do?
Now that we understand the concept of what software engineer is and its principles, we can kind of realize/assume what a software engineer does, but in fact, it extends way beyond that point.
As software engineers we’re always looking for any possible automation tasks we can make not only to improve our process but to reinforce the quality and delivery speed by removing the human interaction being the one factor that most of the times consumes the most available resources, not because we’re lazy (or maybe because we are) but because we strive to be as efficient as possible so that we can delegate all of our repetitive tasks to development tools and focus more on quality and delivery speed.
Why is software engineering so important nowadays?
Well basically without software engineering and software engineers we wouldn’t be able to enjoy all the benefits that technologies provide nowadays, the fact that we can communicate with people around the globe in matter of milliseconds and store all of our hard work along with our most precious memories and even be able to share them with our closest friends is a valid proof that all the work done so far has been massively worth it and without it, well, we just wouldn’t be able to have all these benefits.
Software engineering is important because specific software is needed in almost every industry, in every business, and for every function. It becomes more important as time goes on – if something breaks within your application, portfolio, a quick, efficient, and effective fix needs to happen as soon as possible so that every user can benefit of it.
Whatever you need software engineering to do – it is something that is vitally important and that importance just keeps growing.
If you’d like to talk more about the field of software engineering and the types of projects we work on at Pixel Fusion, feel free to email me, or to pop in for a chat with me at The Space_Bar. I always reply to my emails personally and to coffee invitations!