Table of Contents |
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.
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.
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.
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