A software developer (Engl. Developer ) is a person who is in the creation of software is involved. The term is not sharply defined.
The specific tasks of a software developer depend on the role that he takes on in the software development team. The best known role is that of the programmer.
A software developer can fill one or more of the roles listed. This depends on how the software development process is organized.
- A programmer is an unspecified or unspecified software developer.
- Front-end developer
- Backend developer
- implements the functional logic of the application. Various data sources and external services are also integrated and made available for the application. Backend developers usually use a higher programming language (e.g. Java or C # ).
- Database developer
- is responsible for the planning and development of the databases as well as their performance, integrity and security. A database developer has knowledge of relational databases using SQL . In addition, knowledge of noSQL databases is increasingly required.
- Full stack web developer
- masters all the technologies required to create a web application. To this end, he combines the web-related skills of the front-end, back-end and database developer.
- Desktop developer
- develops applications that should run on a desktop PC. The target operating system (e.g. Windows , macOS or Linux ) and the GUI library used (e.g. WinForms , WPF and UWP under Windows, GTK + , Qt and wx under Linux and Cocoa under macOS) distinguished.
- Mobile developer
- develops applications that are to be run on mobile devices such as smartphones and tablets . A distinction is made between developers who develop for several platforms (e.g. PhoneGap or Xamarin Platform ) and those who develop for a specific platform (e.g. Android , iOS or UWP ).
- Data scientist
- deals with both statistical and development tasks on large data sets in the big data environment. This includes machine learning, statistical analysis, and predictive models.
- mathematical-technical software developer
- develops applications for the calculation of mathematical models in technical and scientific environments.
- Graphics programmer
- deals with rendering , shadering , lighting and shadow calculations , color space management , culling and similar graphic algorithms that are used in game and video production as well as visualization.
- CRM, ERP and CMS developers
- an existing CRM system (e.g. Salesforce , SAP , Microsoft Dynamics ), ERP system (e.g. SAP, Microsoft Dynamics) or CMS (e.g. WordPress , MediaWiki or SharePoint ) fits the needs of the customer on.
- Embedded developer
- develops software that is executed in a hardware-related environment. This includes real-time systems , device drivers and electronic interfaces.
- Software architect
- A software architect designs the structure of software systems and makes general decisions about the interaction of their various components. A software architect views the software system from a more abstract level than a programmer.
- Cross functional
- In agile software development , cross-skill teams are preferred. Developers should therefore cover as many of the roles mentioned here (or the roles required in the respective project) as well as testing and test automation - without paying attention to any of the categories.
- DevOps developer
- automates development, administration and delivery processes for software products. This enables faster and more cost-effective development.
- Software archaeologist
- deals with the maintenance of an existing and poorly documented legacy system .
These roles are not development tasks, but they are an integral part of a development team:
- Requirements manager
- A requirements manager , also known as a requirements engineer or requirements specialist, records requirements for the software and carries out requirements analyzes.
- A tester or test engineer is a person who performs software tests, performs additional manual tests, or designs a test strategy for the system.
- Scrum Master
- In a Scrum or Kanban project, ensures that software development processes are adhered to. In classic development models , such as the waterfall model or V-model , this role is assumed by the manager of the development team.
Programmer and software developer
Colloquially, there is often no differentiation between the terms “programmer” and “software developer”. However, one rarely speaks of programmers when referring to software architects or testers.
Software developers are further distinguished by the software stack on which they are trained. Since many stacks require years of training and experience, and different stacks may also address different personality types, switching between different stacks is only possible in isolated cases.
According to German law, the job title software engineer may only be used by those who have successfully completed a technical degree. In Austria, the engineering title can also be acquired through training at an HTL .
education and study
Software developers have often completed a degree in computer science at a university or a professional academy . Studying in an engineering or natural science course also offers entry opportunities into software development. Furthermore, there is the possibility of training in an IT apprenticeship, e.g. B. to qualify as an IT specialist for application development at a vocational school ( see for example IHK ), at a technical school for data processing and organization (e.g. Academy for Data Processing Böblingen ) or a vocational college to become a software developer or software architect.
Since 2007 there has been a state-recognized training program for mathematical-technical software developers in Germany , which emerged from the mathematical-technical assistant . In Aachen, Cologne and Jülich, it is possible to combine training with the bachelor's degree in "Scientific Programming".
- Application programmer
- Mort, Elvis, Einstein - represent three very different types of software developers at Microsoft
- Online Community # Developer Community
- See law for the protection of the job title “Ingenieur und Ingenieurin” (Ingenieurgesetz - IngG) which lies within the legislative competence of the federal states and is to be consulted in the current version for the respective federal state. In order to be called "engineer", one does not necessarily have to complete the degree as an "engineer". The law of the federal state of Bavaria, for example, states that it is sufficient for the job title "engineer" if one has successfully completed at least three years of study in a technical or scientific subject.
- Basic knowledge: developer types. (PDF) An overview of the 12 most common developer types and their skillsets. Stack Overflow Business, accessed April 10, 2017 (Guide to IT Recruitment ).
- Law on the protection of the professional title "Engineer". (PDF) Engineering Act - IngG. Retrieved on April 10, 2017 (Bavarian Engineering Act).