4 answers
4 answers
Updated
John’s Answer
What Software Developers, Quality Assurance Analysts, and Testers Do
Software developers
Developers create diagrams that help programmers write computer code.
Software developers create the computer applications that allow users to do specific tasks and the underlying systems that run the devices or control networks. Software quality assurance analysts and testers design and execute software tests to identify problems and learn how the software works.
Duties
Software developers typically do the following:
Analyze users’ needs and then design and develop software to meet those needs
Recommend software upgrades for customers’ existing programs and systems
Design each piece of an application or system and plan how the pieces will work together
Create a variety of models and diagrams showing programmers the software code needed for an application
Ensure that a program continues to function normally through software maintenance and testing
Document every aspect of an application or system as a reference for future maintenance and upgrades
Software quality assurance analysts and testers typically do the following:
Create test plans, scenarios, and procedures for new software
Identify project risks and recommend steps to minimize those risks
Implement software testing, using either manual or automated programs and exploratory testing, and evaluate results
Document and report defects or problems with software
Provide feedback to software developers and stakeholders regarding usability and functionality
Software developers, quality assurance analysts, and testers are involved in the entire process of creating a software program. Developers may begin by asking how the customer plans to use the software so that they can identify the core functionality the user needs. Software developers also determine other requirements, such as security. They design the program and then work closely with programmers, who write computer code. However, some developers write code themselves instead of giving instructions to programmers.
Software quality assurance analysts and testers design and execute systems to check the software for problems. As part of their testing, these workers document and track the software’s potential defects or risks. They also assess its usability and functionality to identify difficulties a user might have. After completing testing, they report the results to software or web developers and review ways to solve any problems they found.
After the program is released to the customer, a developer may perform upgrades and maintenance. Quality assurance analysts and testers run manual and automated checks to look for errors and usability problems once the software is released and after any upgrades or maintenance.
The following are examples of types of software developers:
Applications software developers design computer applications, such as games, for consumers. They may create custom software for a specific customer or commercial software to be sold to the general public. Some applications software developers create databases or programs for use internally or online.
Software engineers take a broad view of a project’s system and software requirements, planning its scope and order of work. These workers may direct software developers, quality assurance analysts, and testers.
Systems software developers create the operating systems for the public or specifically for an organization. These operating systems keep computers functioning and control most of the consumer electronics in use today, including those in cell phones and cars. Often, systems software developers also build the interface that allows users to interact with the computer.
Developers who supervise a software project from the planning stages through implementation sometimes are called information technology (IT) project managers. These workers monitor the project’s progress to ensure that it meets deadlines, standards, and cost targets. For information on IT project managers who plan and direct an organization’s IT department or IT policies, see the profile on computer and information systems (CIS) managers.
Software developers
Developers create diagrams that help programmers write computer code.
Software developers create the computer applications that allow users to do specific tasks and the underlying systems that run the devices or control networks. Software quality assurance analysts and testers design and execute software tests to identify problems and learn how the software works.
Duties
Software developers typically do the following:
Analyze users’ needs and then design and develop software to meet those needs
Recommend software upgrades for customers’ existing programs and systems
Design each piece of an application or system and plan how the pieces will work together
Create a variety of models and diagrams showing programmers the software code needed for an application
Ensure that a program continues to function normally through software maintenance and testing
Document every aspect of an application or system as a reference for future maintenance and upgrades
Software quality assurance analysts and testers typically do the following:
Create test plans, scenarios, and procedures for new software
Identify project risks and recommend steps to minimize those risks
Implement software testing, using either manual or automated programs and exploratory testing, and evaluate results
Document and report defects or problems with software
Provide feedback to software developers and stakeholders regarding usability and functionality
Software developers, quality assurance analysts, and testers are involved in the entire process of creating a software program. Developers may begin by asking how the customer plans to use the software so that they can identify the core functionality the user needs. Software developers also determine other requirements, such as security. They design the program and then work closely with programmers, who write computer code. However, some developers write code themselves instead of giving instructions to programmers.
Software quality assurance analysts and testers design and execute systems to check the software for problems. As part of their testing, these workers document and track the software’s potential defects or risks. They also assess its usability and functionality to identify difficulties a user might have. After completing testing, they report the results to software or web developers and review ways to solve any problems they found.
After the program is released to the customer, a developer may perform upgrades and maintenance. Quality assurance analysts and testers run manual and automated checks to look for errors and usability problems once the software is released and after any upgrades or maintenance.
The following are examples of types of software developers:
Applications software developers design computer applications, such as games, for consumers. They may create custom software for a specific customer or commercial software to be sold to the general public. Some applications software developers create databases or programs for use internally or online.
Software engineers take a broad view of a project’s system and software requirements, planning its scope and order of work. These workers may direct software developers, quality assurance analysts, and testers.
Systems software developers create the operating systems for the public or specifically for an organization. These operating systems keep computers functioning and control most of the consumer electronics in use today, including those in cell phones and cars. Often, systems software developers also build the interface that allows users to interact with the computer.
Developers who supervise a software project from the planning stages through implementation sometimes are called information technology (IT) project managers. These workers monitor the project’s progress to ensure that it meets deadlines, standards, and cost targets. For information on IT project managers who plan and direct an organization’s IT department or IT policies, see the profile on computer and information systems (CIS) managers.
Updated
Lupita’s Answer
Software engineering is a fun career because you spend a lot of your time breaking down larger problems into smaller ones and solving them.
Say that I want to build an app that sends me text reminders before each Giants baseball game starts. Before starting to write any code, you break down the problem and make a plan. You ask lots of questions like:
- how will we send the text messages?
- where will I get the latest Giants game schedule?
- do I need to save any information?
- where should we start?
- how much work will this be and how long would it take?
When you start out early in career, you spend a lot of time learning from your peers and strengthening your technical skills. As you grow, you start owning projects and you help others break down these big problems and work together to get them completed. At all levels, you get to voice opinions, ask questions, and share ideas, like "hey, what if we send the final score after the game is over?"
If you like problem solving, being creative, and working with people, this can be a super fun job! Hope this answer helps.
Say that I want to build an app that sends me text reminders before each Giants baseball game starts. Before starting to write any code, you break down the problem and make a plan. You ask lots of questions like:
- how will we send the text messages?
- where will I get the latest Giants game schedule?
- do I need to save any information?
- where should we start?
- how much work will this be and how long would it take?
When you start out early in career, you spend a lot of time learning from your peers and strengthening your technical skills. As you grow, you start owning projects and you help others break down these big problems and work together to get them completed. At all levels, you get to voice opinions, ask questions, and share ideas, like "hey, what if we send the final score after the game is over?"
If you like problem solving, being creative, and working with people, this can be a super fun job! Hope this answer helps.
Dan Wolf
Retired Electrical/Software Engineer and part-time College Professor (BSEET and MS Engineering Management)
129
Answers
Updated
Dan’s Answer
I am a retired electrical engineer who originally designed microprocessor-based strip-chart recorders but then transferred to writing software for engineering applications. I worked with the following:
Strip-chart recorders via assembly code
Liquid Chromatography Flowmeters via BASIC code
Steel Mill product tracking code via FORTRAN
Pay Phone software via assembler
Nuclear Reactor control and protection via PLM-86
Tracking of a camera film manufacturing process via PASCAL
Railroad freight locomotive braking systems and event recorders via C
Mass Transit vehicles via C
Arduino C (while teaching college classes at night)
Raspberry PI Python (while teaching college classes at night)
Programmable Logic Control, i.e. PLC (while teaching college classes at night)
In addition to writing software, I managed projects and other engineers, tested safety-critical software (where human life was dependent on the software working correctly), peer-reviewed software of other engineers to make sure it worked correctly, assisted the sales staff with client presentations, hired other engineers, managed a team of engineers who monitored the quality of the product development, and taught evening engineering classes.
My career can be summarized as "development of embedded control products" or more simply "controlling physical machines". For comparison, my wife wrote software for the corporate/banking industry. Her work didn't control things, rather it allowed the banking staff to track and control the flow of money within the bank. We are able to understand each other's work explanations but neither of us can actually do the other's work. i.e. It's the exact same work, just different. A description of everything that is involved with software engineering is likely to be unlimited!
In conclusion, yes, you will write software and that could be all that you do. However the type of software and how it applies to the business or product is almost unlimited. And there are many other tasks, related to software that you may choose to do, given your interest and abilities. Your career will evolve over time as you learn new things (everything is always changing and the rate of change is always increasing over time).
It's a lot of fun!!!
Strip-chart recorders via assembly code
Liquid Chromatography Flowmeters via BASIC code
Steel Mill product tracking code via FORTRAN
Pay Phone software via assembler
Nuclear Reactor control and protection via PLM-86
Tracking of a camera film manufacturing process via PASCAL
Railroad freight locomotive braking systems and event recorders via C
Mass Transit vehicles via C
Arduino C (while teaching college classes at night)
Raspberry PI Python (while teaching college classes at night)
Programmable Logic Control, i.e. PLC (while teaching college classes at night)
In addition to writing software, I managed projects and other engineers, tested safety-critical software (where human life was dependent on the software working correctly), peer-reviewed software of other engineers to make sure it worked correctly, assisted the sales staff with client presentations, hired other engineers, managed a team of engineers who monitored the quality of the product development, and taught evening engineering classes.
My career can be summarized as "development of embedded control products" or more simply "controlling physical machines". For comparison, my wife wrote software for the corporate/banking industry. Her work didn't control things, rather it allowed the banking staff to track and control the flow of money within the bank. We are able to understand each other's work explanations but neither of us can actually do the other's work. i.e. It's the exact same work, just different. A description of everything that is involved with software engineering is likely to be unlimited!
In conclusion, yes, you will write software and that could be all that you do. However the type of software and how it applies to the business or product is almost unlimited. And there are many other tasks, related to software that you may choose to do, given your interest and abilities. Your career will evolve over time as you learn new things (everything is always changing and the rate of change is always increasing over time).
It's a lot of fun!!!