Software Development Professional
A Software Development Professional is a software practitioner who is an engineer and can perform software development tasks (performing a software programming job).
- AKA: Software Developer, Software Engineer (SE).
- Context:
- They can (typically) be a member of a Software Programming Workforce (within a software programming labor market).
- They can (typically) be associated with a Software Engineering Job Description and a Software Engineering Job Level.
- They can (typically) have high Computational Problem Solving Skills.
- They can (typically) receive a Software Developer Salary.
- They can (typically) use a Software Development Environment.
- They can (typically) be managed by a Software Engineering Manager.
- They can (typically) be required to have proficiency in Software Development Tools, such as Integrated Development Environments (IDEs) and Software Libraries.
- They can (often) have Software Programming Education, including degrees in Computer Science, Software Engineering, or related fields.
- They can (often) be a member of a Software Engineering Team.
- ...
- They can range from being an Entry-Level Software Engineer to an Experienced Software Engineer, depending on their Software Engineering Skill Level and Software Programming Experience.
- They can range from specializing as a Full-Stack Software Engineer to focusing on Back-End Software Engineering or Front-End Software Development.
- They can range from being a Software Engineer Employee to being a Software Engineer Freelancer.
- They can range from being a Junior Developer to being a Principal Engineer, depending on its technical leadership level.
- They can range from being a Product Developer to being a Platform Engineer, depending on its system scope.
- They can range from being a Specialized Developer to being a Polyglot Engineer, depending on its technology breadth.
- They can range from being an Application Developer to being a Systems Engineer, depending on its abstraction level.
- ...
- They can be evaluated by a Software Developer Performance Assessment that may utilize Software Developer Performance Measures.
- …
- Examples:
- Pioneer Software Developers, such as:
- Modern Software Specialists, such as:
- Industry Professionals (2023), such as:
- ....
- a Software Engineer.
- a Software Programming Professional.
- a Software Architect.
- one of the 10+M in this report:
https://linkedin.com/search/results/people/?keywords=software%20developer
- …
- Counter-Examples:
- Non-Professional Developers, such as:
- Software Programming Hobbyist who codes for personal interest.
- Student Programmer who is still in training phase.
- Automated Software Programmer which uses AI systems.
- Software-Adjacent Roles, such as:
- Software Tester who validates code rather than develops code.
- Service Reliability Engineer (SRE) who maintains systems rather than develops features.
- Software System Requirements Analyst who specifies requirements rather than implements solutions.
- IT Systems Analyst who analyzes systems rather than builds systems.
- Data Analyst who processes data rather than creates software.
- Non-Software Engineers, such as:
- Industrial Engineer who optimizes physical processes.
- Electrical Engineer who designs hardware systems.
- Mechanical Engineer who develops physical machines.
- Non-Technical Roles, such as:
- Software Company Investor who provides financial resources.
- Product Manager who defines product strategy.
- Software Researcher who studies software concepts.
- Non-Professional Developers, such as:
- See: Subject Matter Expert, Software Engineering Manager.
References
2021
- (Wikipedia, 2021) ⇒ https://en.wikipedia.org/wiki/software_engineer Retrieved:2021-1-13.
- A software engineer, sometimes abbreviated SWE (pronounced ) is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software.
2019a
- (Wikipedia, 2019) ⇒ https://en.wikipedia.org/wiki/Computer_programming Retrieved:2019-11-5.
- … Software engineering combines engineering techniques with software development practices. Reverse engineering is the opposite process. A hacker is any skilled computer expert that uses their technical knowledge to overcome a problem.
2019b
- https://angel.co/newsletters/what-is-agile-methodology-a-primer-on-moving-fast-176
- QUOTE: ... Learning to build code, whether through self-study or a computer science degree, is not the same as learning to build software, especially in a changing company setting.
Your studies may have taught you what code needs to be written to build a better piece software, but they probably didn’t teach you how a team of engineers should think about writing that code. How does the work get divided up? What does a development cycle look like? How does quality control work? Over the last 60 years, many methodologies have tried to define exactly how teams can optimize their software development, but the one that reigns supreme—at least over the last 20 years — is the agile methodology. ...
- QUOTE: ... Learning to build code, whether through self-study or a computer science degree, is not the same as learning to build software, especially in a changing company setting.
2017
- https://code.berlin/en/blog/computer-science-software-engineering/
- QUOTE: Computer Scientists are first and foremost scientists. They possess a deep knowledge of the theoretical foundations in mathematics and information science and can develop complex algorithms and advance scientific research. They operate in a world of rigorous analyses, clearly defined concepts and proven facts.
The digital skills in demand as described by employers, labor market studies and politicians are of a different kind. They involve the ability to interact with human beings and to create easy to use software solutions for real world problems with limited resources in a highly unreliable and dynamically changing environment.
- QUOTE: Computer Scientists are first and foremost scientists. They possess a deep knowledge of the theoretical foundations in mathematics and information science and can develop complex algorithms and advance scientific research. They operate in a world of rigorous analyses, clearly defined concepts and proven facts.
2015
- (Bogost, 2015) ⇒ Ian Bogost. (2015). “Programmers: Stop Calling Yourselves Engineers." In: The Atlantic.
- QUOTE: ... The term is probably a shortening of “software engineer,” but its use betrays a secret: “Engineer” is an aspirational title in software development. Traditional engineers are regulated, certified, and subject to apprenticeship and continuing education. Engineering claims an explicit responsibility to public safety and reliability, even if it doesn’t always deliver. ...
2014a
- (Marcus & Davis, 2014) ⇒ Gary Marcus, and Ernest Davis. (2014). “Do We Really Need to Learn to Code?”. The New Yorker, June 7, 2014
- QUOTE: But before we reach the era of self-programming computers, three fundamental obstacles must be overcome.
2014b
- (Mims, 2014) ==> Christopher Mims. (2014). “Computer Programming Is a Trade; Let's Act Like It.” In: The Wall Street Journal (08/03/14)
- One million programming jobs in the United States could go unfilled by 2020 due to the enormous mismatch between the supply and demand for computer programmers, according to the U.S. Bureau of Labor Statistics. Fortunately, a computer science degree is not necessary to get a job in programming. University courses in computer science favor theory rather than making websites, services, and apps that companies care about, writes Christopher Mims. Code-school founders say committed programming students are finding jobs whether or not they have a college degree. Computer programming is now a trade that someone can develop a basic proficiency in within weeks or months, secure a first job, and get onto the same path to upward mobility offered to in-demand, highly-paid peers, Mims says. He contends we have entered an age in which demanding that every programmer has a degree is like asking every bricklayer to have a background in architectural engineering.
2013
15-1132 Software Developers, Applications detail 222,110 1.9% 13.12% $43.00 $45.25 $94,120 0.7%
15-1121 Computer Systems Analysts detail 152,340 2.4% 9.00% $40.43 $43.28 $90,010 1.0%
15-1133 Software Developers, Systems Software detail 126,920 3.0% 7.50% $48.54 $50.71 $105,480 1.0%
15-1131 Computer Programmers detail 126,630
15-1151 Computer User Support Specialists detail 111,250 2.2% 6.57% $22.55 $24.88 $51,750 0.8%
15-1142 Network and Computer Systems Administrators detail 61,090 2.7% 3.61% $37.09 $39.39 $81,940 0.9%
…11-3021 Computer and Information Systems Managers detail 65,310 2.0% 3.86% $63.19 $67.32 $140,020 0.9%
13-0000 Business and Financial Operations Occupations major 152,400 1.9% 9.00% $35.47 $38.78 $80,670 0.7%
43-0000 Office and Administrative Support Occupations major 174,230 1.9% 10.29% $17.67 $19.34 $40,230 0.6%
41-0000 Sales and Related Occupations major 103,400 2.0% 6.11% $36.43 $41.43 $86,170 1.1%
1990
- (Shaw, 1990) ⇒ Mary Shaw. (1990). “Prospects for an Engineering Discipline of Software.” IEEE Software, 7(6).
- ABSTRACT: Although software engineering is not yet a true engineering discipline, it has the potential to become one. Older engineering fields are examined to ascertain the character that software engineering might have. The current state of software technology is discussed, covering information processing as an economic force, the growing role of software in critical applications, the maturity of development techniques, and the scientific basis for software engineering practice. Five basic steps that the software engineering profession must take to become a true engineering discipline are described. They are: understanding the nature of expertise, recognizing different ways to get information, encouraging routine practice, expecting professional specializations, and improving the coupling between science and commercial practice.
The term software engineering was coined in 1968 as a statement of aspiration -- a sort of rallying cry. That year NATO convened a workshop by that name to assess the state and prospects of software production [NATO 69].Capturing the imagination of software developers, the phrase achieved popularity during the 1970s. It now refers to a collection of management processes, software tooling, and design activities for software development. The resulting practice, however, differs significantly from the practice of older forms of engineering.
The paper begins by examining the usual practice of engineering and the way it has evolved in older disciplines. This discussion provides a historical context for assessing the current practice of software production and setting out an agenda for attaining an engineering practice. ...
- QUOTE: Software engineering is a label applied to a set of current practices for software development. Using the word engineering to describe this activity takes considerable liberty with the common use of that term. In contrast, the more customary usage refers to the disciplined application of scientific knowledge to resolve conflicting constraints and requirements for problems of immediate, practical significance.
Definitions of engineering have been written for well over a hundred years. Here is a sampling of typical definitions: ...
- ABSTRACT: Although software engineering is not yet a true engineering discipline, it has the potential to become one. Older engineering fields are examined to ascertain the character that software engineering might have. The current state of software technology is discussed, covering information processing as an economic force, the growing role of software in critical applications, the maturity of development techniques, and the scientific basis for software engineering practice. Five basic steps that the software engineering profession must take to become a true engineering discipline are described. They are: understanding the nature of expertise, recognizing different ways to get information, encouraging routine practice, expecting professional specializations, and improving the coupling between science and commercial practice.