On Being an Engineer of Software

We get vastly too caught up in the software side of "Software Engineer". It's almost always perceived that someone who is a "software engineer" is actually just a "programmer" and the two are hugely different. Programmers focus only on writing (programming) software. Software Engineers focus on the whole thing and how it is going to get done.

Engineers know about deadlines and find ways to make things happen in time and in the best way possible. They look at all the options and pick the best and most logical path to follow given the parameters of the situation. To really understand we need to abstract out engineering and look at the entire field. Engineering is a field that is full of groups of people that solve difficult problems and build things.

The engineering field in areas such as civil, mechanical or electrical have amazing intricacies and processes that are worth studying and taking a look at if you're calling yourself a Software Engineer. Starting first with their education, most engineers are taught fundamental principles of the trade and are exposed to best practices, guidelines and strategies for taking on the problems they might find in the field. In software this is largely ignored, we focus instead on the romanticized 13 year old hacker that makes a million dollars overnight.

In engineering, planning and research upfront is highly regarded. Before engineers start building a project they have to test all the components, figure out all the parameters and create a basic foundation. All of this early work is tested and documented very well. As a software engineer hacking is something that's for fun and when your just trying to make something go. It's also a part of testing new ideas and approaches to problems.

In software, hacking and hard work are often regarded as the same thing. This is a big problem, hacking is generally considered doing something and cutting corners to just make it right. It's very important because it proves that your idea works. Sometimes you'll get the most elegant solution this way but 999/1000 times you wont and it will take a couple reattempts and rethinking to get it right. Choosing a hacky way will make the people on the business side or the consumer happy in the short term but regretful and unhappy long term. Engineers also know however, when something will have to be good enough because of either time parameters, cost and/or use-case. If something cant fit in right they also know when to raise a warning. The practice of engineering has many processes for making these problems come to the surface and be addressed early on.

Almost every other industry in the field of engineering is well established and structured fairly similarly with the same education structure, practices, mentality and interactions. As someone who builds software I'm proud to say I'm a "Software Engineer" and really mean both words fully. I think everyone who builds software should study the field of engineering and apply it to their practice. As the number of devices, hardware and datasets that software needs to interface with increases, a software industry that respects engineering principles will need to emerge. It will be different as all engineering industries are; software will be quicker to evolve but the guiding principles and culture of building will not.

Shameless Plug:

Yeti was founded by two software engineers that hang out with alot of other engineers. We have put great effort into making our company a place for engineering and building. From the company structure to our process and culture, we are more an engineering firm that builds software than a startup hacking code. We pride ourselves on building new things but we focus on the architecture and usability, pulling from our past experience and expertise but always constantly learning something new. This is company wide, from our engineers (developers), architects (designers) and surveyors (strategists). Our clients are guided through an engineering process rather than an agency model. Yeti is very much an engineering, architecture and design firm in the software world.

Tony Scherba
is a President | Founding Partner at Yeti.
Tony has been developing software since high school and has worked on digital products for global brands such as Google, MIT, Qualcomm, Hershey’s, Britney Spears and Harmon/Kardon. Tony’s writing about innovation and technology has been featured in Forbes, Huffington Post and Inc. At Yeti, Tony works on strategy, product design and day to day operations, hopping in and working with the development teams when needed.
Follow Tony on Twitter.