Software development agencies vary greatly in size and culture and so the divisions and job titles of the workforce will generally never be exactly the same in any two agencies. Behind every job title is an individual, all of whom will have different skill sets, and differing abilities to multitask.
Especially at the more highly specialized companies who work in a niche field, or in smaller agencies where everyone might have to wear a couple of different hats. So there will always be a lot of overlaps as a lot of these roles can crossover.
Here some of the most common job titles and descriptions you’ll come across when you work with a software development agency, in the simplest possible terms.
Website Graphic or UI (User Interface) Designer:
This is the person who will help you decide how your new web app looks. Not just in terms of colors and styles, but also branding, layout and the user journey from one part of the site to another.
UX (User Experience) Designer:
The UX designer’s job can encompass all interactions between the end user (or customer) and the company. They may research, develop, test and refine to ensure that the end product does what is needed. This may involve market research, analytics and beta tests.
This person will be responsible for all of the text on your website, from buttons to blog posts.
They may work with your designer, SEO team or UX Designer to ensure that the words on your website work as hard as they should to gain attention for you in the crowded web space, without confusing your customers.
Coder / Developer / Programmer:
Literally, a person who codes, programmes and develops software. When you’re working with a software agency it helps to understand how they define these things. Wikipedia helpfully defines “programmer’ as similar to ‘coder’ and ‘developer’, but also warns us that the term can be seen to be so simple as to be considered by some to be derogatory. The best thing is to take a steer from the titles used by your individual agency.
Programmer literally describes someone who programmes computers, as a software developer does indeed develop software. The technical definition of a programmer is someone who creates, modifies and tests code that allows computer applications to run. They generally work from specifications drawn up by software developers or other individuals.
But in reality programmers and developers, while multi-skilled, will likely specialize in one of two areas, front and back end. Obviously, the real world isn’t that simple and there are many developers who work across both, and may even specialize in a third direction, for example, mobile apps.
The Front End Developer:
The ‘front end’ of a website refers to the parts you can see and how they work. While a website designer is responsible for the overall look of the site. The front end developer is the person who translates the design into a working website. Who makes things happen when you click and scroll.
The Back End Developer:
The ‘back end’ of the website is the core functionality, components, and features that you access through the front end. In the very simplest terms, the back end is the ‘server side’ of the website, that communicates between the database and the browser. Data storage and retrieval are controlled by back-end processes. As are secure credit card checkouts. You may hear them talk of databases, SQL, libraries, and frameworks. They may write APIs, or application programming interfaces, which again in very simple terms, could allow your customers to access information from a third party like Google or Facebook without leaving your website.
The Full Stack Developer:
This is someone who is able to work across both front and back ends. The exact programming languages they might use to cover both ends will vary, but the understanding will be that they’ll be able to handle things at both ends of the programming scale. It’s much more usual to hire a developer with expertise in the languages. Your agency is using or plans to use or with the skills for a particular project.
The Software Engineer / The Software Architect:
Software engineers apply the principles of engineering, that is of planning, designing and maintaining machines or structures, to software development projects. Again, in the simplest terms, while a programmer programmes a computer to perform certain tasks in a language that it will understand. A software engineer will write the language and algorithms from scratch. The same building analogy applies to the Software Architect. Who will generally have a complete overview of the different technical aspects, as an architect does on a building project.
The Project Manager:
The Project Manager will be the person you, as a client, are most likely to deal with on a daily basis. Their job is to literally manage the whole project, which they do by acting as a lynchpin between you and all the specialists that make up the agency team. They’ll keep a watchful eye on progress and budgets. Flag up any issues before they become problems, and liaise between client and development team to keep everybody informed and on track.
Just as an architect oversees the construction of the whole building. A software architect works at the highest level of the project, with oversight on all aspects of a development process including design, technical standards, coding, tools, and platforms. Larger agencies may also have a Tech Lead, who will inform and manage a team of developers directly.