Use Sophia to knock out your gen-ed requirements quickly and affordably. Learn more
×

Software Engineers and their Roles

Author: Sophia

what's covered
Recall that software is developed in multiple phases and by multiple people (software development team). As with any team, communication and collaboration are important to the overall success of the team and, ultimately, the project. One often-overlooked important aspect of working with a team is the ability to adapt to, and perform, multiple roles. On a software development team, software engineers are routinely asked to perform in more than one role. In this tutorial, we will take a closer look at software engineers and their roles on the development team.

Our discussion will break down as follows:

Table of Contents

1. The Software Engineer

A software engineer is responsible for the design, development, testing, and maintenance of software systems. Software engineers do not actually design devices; instead, they create new programming languages and operating systems, working at the lowest levels of the hardware to develop new kinds of software to run on the hardware. Within an organization, a software engineer may also be responsible for: maintaining any piece of technology with software loaded onto it, or developing customized software for various pieces of existing hardware.


2. Software Engineer Specializations

Software engineers are expected to be able to work in varying capacities within a business or organization. In fact, software engineers who are working on a development team, and tasked with a very large project, are often expected to specialize in one other role. When working on smaller projects, the software engineer may be expected to work in more than one role at a time. Listed below are some of the roles that software engineers may be asked to fill on a software development team.

Development Team Role Responsibility
Analyst --Identify business needs and imagine a new or redesigned computer-based system to fulfill those needs
--Work with a person, team, or department with business requirements and identify the specific details of a system that needs to be built
--Demonstrate a good understanding of the business itself, the business processes involved, and the ability to document them well
--Identify the different stakeholders in the system and work to involve the appropriate individuals in the process
Software Designer/Architect --Develop ideas for software applications based on systems analyst’s design documents
--Design software applications based on system requirements, organization processes, and specifications
--Create system architecture and interface design
--Define the overall structure of an application and divide it into component parts to be developed
Software Project Manager --Responsible for keeping projects on time and on budget
--Responsible for resource management and optimization of development processes
--Responsible for assessing levels of risk with regard to a development project (Risk Management)
--Work with the stakeholders of the project to keep the team organized and communicate the status of the project to management
Software Developer --Write computer code for a software solution in the agreed-upon programming language
Quality Assurance --Test software solutions to identify problems in products
--Identify what needs to be tested
--Develop the appropriate ways to test software
--Evaluate and document outcomes of test
--Resolve problems with products
--Maintain documentation related to testing of products and how to train personnel on software


3. Education and Training

Development Team Role Education/Training Required
Analyst Most computer systems analysts hold a bachelor’s degree in computer science or information technology. Some employers prefer applicants who have a master's degree in business administration (MBA) with a concentration in information systems.
Software Designer/Architect Most software designers hold a bachelor’s degree in computer science. However, more colleges and universities are now offering bachelor degrees in software engineering to meet the increasing demand for software engineers. A degree in mathematics is also accepted.
Software Project Manager Most software project managers hold a bachelor’s or master’s degree in a computer-related field, such as computer science or computer engineering. A master’s degree in management information systems is highly advisable. Typically, project managers begin their careers in a lower-level position on a software development team, such as software developer. Over time, these people gain the experience necessary within an organization to move up to the project manager role. Most project managers have at least five to seven years of experience in other software development roles before transitioning into project management.
Software Developer Most software developers hold a bachelor’s degree in computer science, computer programming, or software engineering. A degree in mathematics is also accepted. A master’s degree is also advisable after two to three years of on-the-job experience.
Quality Assurance Most software designers hold a bachelor’s degree in computer science. However, similar to the designer/architect role, colleges and universities now offer degrees in software engineering.

summary
Software engineers are among the more versatile members of a software development team. When working with a business or organization, software engineers are expected to be able to specialize and work in several differing I.T. areas. In this tutorial, we discussed software engineers, and some of the specialty roles that software engineers perform in.

Source: Derived from Chapter 9 of “Information Systems for Business and Beyond” by David T. Bourgeois. Some sections removed for brevity. https://www.saylor.org/site/textbooks/Information%20Systems%20for%20Business%20and%20Beyond/Textbook.html