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 on a software development team. Communication and collaboration are important to the overall success of the team and the project. One overlooked aspect of working in a team environment is the ability to perform multiple roles as you adapt to changing circumstances. On a software development team, software engineers are routinely asked to perform more than one role. In this tutorial, we will take a closer look at software engineers and the function they serve on the development team.

Our discussion will break down as follows:

Table of Contents

1. What Does a Software Engineer Do?

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 pieces of technology with software loaded onto them, or developing customized software for certain pieces of existing hardware.


2. Software Engineer Specializations

Software engineers must be capable of working in various 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.

Analyst: An analyst identifies business needs and imagines a new or redesigned computer-based system to fulfill those needs. They work with a person, team, or department with business requirements and identify the specific details of a system that needs to be built. Often, an analyst must demonstrate a good understanding of the business itself, the business processes involved, and how to best document them. Finally, they are adept at identifying the different stakeholders in the system and always working to involve the right people in the process.

Software Designer/Architect: Designers and architects develop ideas for software applications based on the systems analyst’s design documents. Once an idea takes hold, they design software applications based on system requirements, organizational processes, and specifications. They also create system architecture and interface design. Finally, designers and architects define the overall framework of an application and further divide it into component parts to be developed.

Software Project Manager: This manager is responsible for ensuring that teams finish projects on time and on budget. They are responsible for resource management and optimization of development processes. They must also have risk management skills to evaluate the severity of risk associated with a development project. Lastly, the software project manager works with the projects' stakeholders to keep the team organized and to communicate the status of the project to all levels of management.

Software Developer: The developer writes computer code for the software solution using a programming language that the team all agrees upon.

Quality Assurance (QA): The quality assurance specialist tests software solutions to identify potential problems in products. They identify what needs to be tested in the software and how to carry out the test. Once testing is through, the specialist evaluates and documents the results. An important role of quality assurance is to resolve problems with products and maintain documentation related to product testing. Ultimately, they're also responsible for training personnel on how to use the software applications.


3. Education and Training

In most cases, specializing in software engineering involves a post-secondary education beyond high school. In the descriptions below, you'll see that most of the positions require a minimum of a bachelor's degree while a master's degree is beneficial in certain circumstances.

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.

reflect
In this tutorial, you studied some of the roles and responsibilities for a person employed as a software engineer. Did any of the job descriptions appeal to you? Why or why not? Did you identify what post-secondary education you might need to work toward the position?

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

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