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 any piece of technology with software loaded onto it, or developing customized software for various pieces of existing hardware.
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 |
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. |
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