These days the lines are getting blurred. Division of labor is somewhat collapsing and web/software developers are increasingly being expected to know how to do just about everything.
That wasn’t always the case, however. In the past there was a more clear delineation between roles, and some of those legacy titles still apply. Let’s take a look at some of the more popular ones.
Just like the name implies, designers are in charge of the look and feel of your site or application. They design the appearance.
Now the actual kind of design that designers do can vary by individual.
Some designers are in charge of the graphical side of the product. They’ll be the ones who create logos and icons. They’ll take pictures and videos to use in marketing materials. From background images to buttons, they’ll be providing the actual assets. Often these people are referred to as graphic designers.
And then there are some designers who will be in charge of building out the actual interface of your app. These folks are generally called UI/UX designers or developers. They’re more concerned with the actual layout of the site. If you think of newspapers as an analogy, the graphics department would provide the pictures for the article, but the UI/UX developers would figure out how those pictures should be displayed along with the text.
Graphic designers and UI/UX developers often work very closely. The UI folks will lay out the page and figure out exactly where they need custom icons or logos or images. And then the graphics department will provide those assets.
Oftentimes, nowadays, the UI/UX developers will have a knowledge of HTML and CSS and will be able to lay the page out using these tools. Sometimes, however, they will simply provide a PSD file or something similar for the developers to go off of when creating the site or application.
When you think about how an actual website gets served, all of the machinery that comes into play, you’re starting to enter the realm of engineers. They might be called software architects, database engineers, SysOps (systems operator), or any number of other titles.
What these folks do is actual manage the hardware that runs your software. They’re in charge of the servers that deliver web pages or API results. They’re in charge of the databases that store and deliver your data. They’re in charge of email and monitoring and logs and remote access and anything that has to do with the actual machines that your application is running on.
They’re providing the hardware for the software, basically.
In recent years, with the rise of third-party, cloud-based solution providers, the role of Engineer has started to come under fire. Engineers are largely becoming obsolete due to the power of automation and outsourced expertise. What would have once required a team of 100, AWS can now provide (with better performance and more stability) for a fraction of the cost, requiring only a handful of engineers to manage.
It’s a nervous time for Engineers.
But the future isn’t all bleak. There is an opportunity with a service like AWS to become an expert at using it and then market your services to companies and individuals. So while the AWS team is focused on the stuff that Engineers used to deal with – uptime, optimizations, etc – now Engineers can focus on rapidly building robust solutions using a third-party service.
In between Designers and Engineers are Developers. Whether they’re called Software Developers, Web Developers, App Developers, Software Engineers, or any number of other titles, their purpose is to be the middleman between the Designers and Engineers. They take the interface from the Designer, convert it to functional software, and then work with the Engineers to come up with a hardware solution for that software.
And one thing that makes being a Developer kind of cool versus being a full-time Designer or Engineer is that your day-to-day is always pretty fresh. Some days you might be digging into low-level CSS to figure out how to make a page display a certain way. Other days you might be digging into low-level MySQL to figure out how to most effectively cache a query. Everyday presents unique challenges.
But Developers are the key cog in the process of building working software. They’re often the ones who convert designs into actual HTML and CSS. They’re often the ones who direct Engineers in what architecture to build out. And in that sense, they’ve always sort of need to be jacks of all trades, with knowledge about every piece of the process.
At this point, it looks like the future is going to be a Developer’s world. Anyone looking to get into software development should keep that in mind.