When you think of software engineering two contrasting images come to mind.
It’s either trendy offices with table tennis and takeaway pizzas, or lone programmers typing complicated code. With Hexagon at least, neither of them is anywhere near the truth.
In this blog we’ll poke our heads round the door of the software department, throw open the windows and shine a light on the fascinating world of software engineering.
Here’s a thought to get us going. Software engineering is a science, computer science. Ask a software engineer if their profession is an art or a science and they’ll probably give you a funny look. It sounds like a silly question, but did you know that every software engineer has their own style?
Much like a literature student can tell the difference between Keats and Shelly, so software engineers can read a line of code and have a good guess at which of their colleagues created it. Without wanting to over-strain the analogy, we can push it a little further. In the strictest sense of the word, coding is creative. You’re making something new. Solutions to problems can be creative too, even elegant, and that’s what a software engineer does. They solve problems. More precisely, they apply the principles of engineering to develop software that solves problems for customers.
Finding and solving a specific problem might take weeks or even months
It might be creating new software for a particular function or fixing an issue with a piece of existing code. When you consider that a piece of software like PC-DMIS contains several million lines of code, finding and solving a specific problem might take weeks or even months.
Let’s just stop and think about that for a minute. PC-DMIS consists of around 2 million lines of code. An average novel has 38 lines per page so if PC-DMIS were a book, it would be around 52,631 pages long. That’s massive, 35 times longer than the Lord of the Rings trilogy and the Hobbit put together, and the plot line not nearly so compelling.
Actually, the analogy doesn’t work because there’s no strict definition of a line of code, and if there were it would probably be a lot longer than a line in a book, but you get the point. Solving a problem in that kind of context means a software engineer needs to be persistent, logical and thorough.
“It can be frustrating, working day after day on the same issue but it’s punctuated with eureka moments” explains a senior software engineer. “When you finally identify how and why a problem is happening, it makes all that hard work worthwhile.”
Take a step back and you’ll see a nuanced world full of complexities, challenges and opportunities
A day in the life of a software engineer will never give an accurate picture of what it’s like to do the job. You need to see the whole story of how one day fits into the next, working towards a solution. Once you take a step back, you’ll find a nuanced world full of complexities, challenges and opportunities.
When a software engineer looks at code on a screen they can see the bigger picture. It’s like when a musician reading notes on a stave hears the tune in their mind, so a software engineer can ‘hear the tune’ of the code in front of them. Seeing that complete story is what takes the job out of the abstract and into reality.
Another aspect of that is when you realise software engineering is a group activity. Far from being lone individuals, they work together as part of global teams. Next time you talk to a software engineer, ask them who their nearest colleagues are. The answer shouldn’t really be a surprise because software transcends international borders. The image of a software engineer working in isolation is very far from the truth.
To those on the outside looking in, a day in the life of a software engineer is difficult to comprehend. That’s because “a day in the life” is the wrong way to look at it, the focus is too narrow. It’s like looking at an individual brick and ignoring that it forms part of a building. When you take the time to dispel the myths, you’ll see it’s a rewarding profession for those with the persistence and tenacity to solve its many puzzles.
A profession still in its infancy
This is a profession in its infancy. It’s still growing, still malleable, still testing the range of its capabilities and that is what makes it exciting.
According to the OED the first documented use of the term “Software engineer” was in the Washington Post in 1962 and it’s changed a lot since then.
Engineering is a profession full of heroes. We admire the great engineers of the past in the same way we revere artists, scientists and philosophers. Any list of great historical figures would be incomplete without names like Brunel, Edison, Tesla, all great engineers and well worthy of the respect we give them.
Software engineering is still waiting for its share of heroes. Its Brunel and Edison are yet to come along. Perhaps you’re that person? If so, we’d like to hear from you. Visit our careers page for more information.