Developing software is more and more a collaborative activity where multiple experts interact for delivering a particular solution. Strictly talking about development and without including supporting activities, we can divide programmers as specialized in front-end development or back-end development. Let’s try to define these activities.

We can define front-end-development as the practice of converting data and functionalities into a graphical interface. In the case of web interfaces, this is mostly done via the use of HTML, CSS, and JavaScript. You can refer to this work for developing an automatic end-user interface for smart devices as an example of web based front end development. However, outside the realm of “the web”, these interfaces do not limit to browsers and can assume multiple forms like, for example, systems that interact with gestures or virtual reality.

In a similar manner, we can define back-end development as the practice of accessing, manipulating, and delivering data and functionalities to a potential user. In case of web development this usually requires skills in Java, Python, and Databases as well as all the major server side frameworks. Outside the realm of “the web” and “e-Business” you can look into, for example, (i) accessing to information and functionalities of Internet of Things as well as (ii) complex devices like high energy physics experiments or (iii) industrial applications in general.

The figure below gives you and idea of the skills and technologies involved in these lines of developments:

Front End Development, Back End Development and Full Stack Developers
Front End Development and Back End Development

Finally, the term full stack developers refers to people capable of developing both back-end and front-end at the same time. As these people are capable to do both they are usually more difficult to find and appreciated by the market.

Let's get the terminology right when talking about #SoftwareEngineering and #softwaredevelopment: a #programmer usually specialize in #FrontEndDevelopment or #backend #development . If you know both you are a #FullStack #developer. Click To Tweet

This video gives a short overview of the kind of technology that both front-end and back end developers need to learn for working properly in their team.

This is just the tip of the iceberg as technologies keep evolving over time. In this second video you can see a selection of technologies that are popular and will probably remain popular in 2020 (and 2021-22). It limits the scope to web development but takes into account both the back-end and the front-end.

Clearly back end and front end development are not the only activities that need to be performed by a team involved in software development. System Administration, System architects, and Requirements Engineering are examples of activities that are left out from this categorization.

I hope that this post will make some clarity around these terms as companies use them regularly when they advertise job positions.

As a final note, in the classes of Business Process Integration and Service Oriented Enterprise we mainly focus on back-end development. However, this does not imply that front-end is of secondary importance, just that is not covered.