|
Software Engineers design, develop, and test software such as operating systems, network management, and database management software for computer firms and/or business clients in areas such as scientific research, communications, aerospace, or industrial engineering.
NATURE OF THE OCCUPATION
Software Engineers may:
Consult with key customers concerning the design and maintenance of a software system
Use scientific analysis and mathematical models to predict and measure outcome and consequences of design
Consult with hardware engineers and staff such as industrial designers and manufacturing operations personnel, to evaluate the interface between hardware and software performance of the overall system
Evaluate the interface between hardware and software and operational/performance requirements
Analyze the time and cost requirements for the development of the software
Design general computer application software such as spreadsheet, word processing, graphics, and communications software products
Design software in areas such as communication/networking, device drivers, embedded systems, graphics hardware, or games development
Use object-oriented programming to design software
Develop WAN (wide area network) or LAN (local area network) connectivity and network management software products
Develop file transfer or network protocol (instructions so that files can be transferred easily between computers that are in a "network" or linked together) such as TCP/IP or IPX/SPX
Oversee projects and supervise other workers such as programmers, analysts and technicians
Coordinate the installation of software systems
Develop test strategies or devices to test and debug new software systems
Click
here
to see a video about a Software Engineer
The tools and equipment used may include:
|
* Computer languages
|
* Monitors
|
|
* Anti-span systems
|
* Firewalls
|
|
* Network systems
|
* Modems
|
|
* Reference guides and manuals
|
* Scanners
|
|
* CD ROM drives
|
* File Servers
|
|
* Diagnostic computer programs
|
* Printers
|
|
* PC's (with Internet access) and mainframe computers
|
*Personal Digital Assistants (PDAs)
|
OCCUPATIONAL SPECIALTIES
Software Engineers may specialize in these areas:
030.062-010
OPERATING SOFTWARE ENGINEERS consult with hardware engineers and other engineering staff to evaluate interface between hardware and software, and operational performance requirements of overall system. Formulates and design software system, consults with customers concerning maintenance and/or installation of software system.
Software Engineers research, design and develop computer software systems, in conjunction with hardware product development. They analyze software requirements to determine feasibility of design with time and cost constraints.
Occupations which involve computers and programming are often highly related to each other, with persons in one field often performing the tasks of another. You may find it helpful to explore the following Career Exploration Scripts:
WORKING CONDITIONS AND REQUIREMENTS
Software Engineers work in pleasant offices which are well-lighted and ventilated. Much of the work is done at a computer screen using a keyboard. Most software engineers have a 40-hour work week. Some may work at home or away from the office part of the week. Software Engineers who work as consultants may travel frequently to develop software for business clients located across the country.
One of the pressures of the job is keeping current with continuously developing technologies. Companies may not feel that they are responsible for providing training for their employees to keep current with technological changes. Companies may prefer to hire outside their ranks to bring in people with newer skills and competencies. Again, this is determined by the setting. Most larger software and hardware companies typically pay for updating staff skills because they feel it is an advantage for their company.
Corporations are demanding that people have excellent technical skills and also some of the "soft" skills that make computer personnel more aware of business problems and business know-how. This has not resulted in a rush to hire liberal arts graduates, but rather that corporations seek out people with both types of skills.
Software Engineers design specifications and diagrams for programmers to use. The programmer classification is the entry-level occupation while the Software Engineer is a higher skill level. Software Engineers must have the ability to produce a good design that is easy to use and efficient. Business applications programming usually involves recordkeeping for inventory or finances. For example, a manufacturing firm may need a program to keep track of where specific parts are located on the factory floor (real-time factory floor data collection), whereas an insurance company may require its form-processing software upgraded to be more efficient. Software Engineers work on graphics for business presentations, computer games, animation, or do graphics modeling for flight systems. Companies frequently need a CAD (Computer Assisted Drafting) program altered to meet their needs. Software Engineers may also provide databases that organize scientific information for research purposes.
Software Engineers duties change depending on the work environment. If they work for large software companies they will be involved in large-ranging projects, but perform a small-defined role within this type of project. For example, a Graphical User Interface Designer or GUI designer, will determine the layout of the screen and what function each pull-down menu item or button icon will perform for the user. The person that designs the computer actions that occur when information is actually entered by means of icons or menus may be an entirely different Software Engineer. A Software Engineer working within a smaller company, or a company that is not a computer company, may be the only Software Engineer and may have responsibility for the software programming needs of a large department or the entire corporation.
Software Engineers may join professional organizations such as the Association for Computing Machinery, the Association for Systems Management or the Institute for Certification of Computer Professionals. Members of such organizations pay periodic fees.
You should prefer:
-
Activities of a logical, scientific and technical nature
-
Activities which involve the use of math and statistics
-
Activities which bring recognition or appreciation from others
-
Activities which require self-motivation
You should be able to:
-
Think logically in a clear and organized manner
-
Understand and use high level mathematics
-
Compare/see differences in size/shape/form of objects/lines/figures
-
Perform a variety of duties which may change often
-
Work within precise limits or standards of accuracy
-
Rate information by using personal judgment or standards which can be measured or checked
-
Plan/direct/control an entire activity and the activities of others
-
Communicate effectively both orally and in writing
-
Analyze and solve problems based on accurate information
Math Problem You Should Be Able to Solve:
Find the derivative of the following polynomial at the indicated point y=3x^8, x=3
Reading Example You Should Be Able to Read and Comprehend:
The top-down approach starts at the top of the structure and it then proceeds to test components at lower levels in the hierarchy. Bottom-up integration requires "drivers". Top-down requires "stubs".
Writing Example You Should Be Able to Produce:
Prepare a written analysis, proposal and definition of all user requirements and testing results.
Thinking Skill You Should Be Able to Produce:
Should be able to demonstrate excellent analytical skills and be a detail oriented problem solver when testing software applications.
EDUCATION AND PREPARATION OPPORTUNITIES
NOTE: An Associate Degree (two years of study beyond high school) or a Bachelor's Degree (four years of study beyond high school) may qualify a person for this occupation.
The following education and preparation opportunities are helpful in preparing for occupations in this Career Exploration Script:
***SCHOOL SUBJECTS***
1000 COMPUTERS ,
2200
MATH
***VOCATIONAL EDUCATION PROGRAMS***
There are no Vocational Education Programs related to this Career Exploration Script.
***POSTSECONDARY PROGRAMS***
214
COMPUTER SCIENCE
Programs in Computer Science, Electrical/Electronic Engineering, Mechanical Engineering, Management Information Systems, and Physics provide opportunities to gain the knowledge and skills needed for becoming a Software Engineer.
Courses vary from school to school but may include:
|
Algebra/Calculus
|
Artificial Intelligence
|
|
Physics
|
Robotics
|
|
Programming
|
Human-computer Communication
|
|
Object-Oriented Systems
|
Databases/Information Retrieval
|
|
Operating Systems
|
Computer Architecture
|
|
Data Structures/Algorithms
|
Software Engineering
|
|
Microprocessor Systems
|
Computer Networks and Interfacing
|
214
COMPUTER INFORMATION SYSTEMS
Programs in Computer Information Systems provide opportunities to gain the knowledge and skills necessary for employment in information systems and management positions. Information systems involve the entire spectrum of organizational activities, technology, and people. Information systems support an organization's operations, management, and decision-making functions. Individuals who teach at the secondary school level must have a Michigan Teaching Certificate.
Courses vary from school to school but may include:
|
Economics
|
On-Line Programming
|
|
System Design
|
Financial Management
|
|
System Analysis
|
Management Accounting
|
|
Management Science
|
System Implementation
|
|
Data Base Concepts
|
Computer Operating System
|
|
Management Science
|
Introduction to Computers
|
|
Introduction to Computers Information Systems
|
Search for a College and/or Instructional Program
***APPRENTICESHIP OPPORTUNITIES***
There are no Apprenticeships related to this Career Exploration Script.
***MILITARY TRAINING PROGRAMS***
Please check the Military website at
http://www.todaysmilitary.com/
COMPUTER SYSTEMS OFFICERS
The military uses computers in almost every aspect of its operations. The services have about 24,000 computer systems specialists. Military computers are used to process payroll and personnel information, control the targeting and firing of weapons systems, account for money, and make it easier to communicate around the world. Computer systems officers direct the operations of computer centers and are involved in the planning and development of computer systems.
What They Do
Computer systems officers in the military perform some or all of the following duties:
-
Prepare processing plans and budgets
-
Develop and monitor contracts for data processing equipment and services
-
Translate military objectives and needs into computer systems requirements
-
Design and maintain computer software and data bases
-
Plan and oversee the installation of new equipment
-
Direct teams of computer systems specialists and computer programmers
Special Requirements
A 4-year college degree in computer science, computer or industrial engineering, business administration, or related field is required to enter this occupation. Some specialties require a master's degree.
Help Attributes
Helpful attributes include:
-
Interest in working with computers
-
Interest in working with mathematical models and formulas
-
Interest in technical work
Work Environment
Computer Systems officers in the military work in offices or at computer sites on military bases or aboard ships.
Training Provided
Job training consists of 5 to 18 weeks of classroom instruction. Training length varies depending on specialty. Course content typically includes:
-
Fiscal and contract management
-
Assessment of computer equipment needs
-
Computer systems development and project management
Civilian Counterparts
Civilian computer systems officers work for a wide variety of employers, such as banks, hospitals, manufacturers, financial firms, government agencies and firms that design and test computer systems. They perform duties similar to those performed by military computer systems officers. They may also be called information systems directors, ADP or EDP managers, computer systems engineers, software engineers, or systems analysts.
Opportunities
The services have over 4,000 computers systems officers. On average, they need 150 new computer systems officers each year. After job training, computer systems officers are assigned to units where they work in teams of engineers, systems analysts, and computer programmers. With experience and demonstrated leadership, the may advance to senior management or command positions in the computer systems field.
E-Learning Courses and Programs
OPPORTUNITIES FOR EXPERIENCE AND METHODS OF ENTRY
Most employers require a bachelor's degree in computer science, electrical/electronic engineering or mechanical engineering as the minimum level of education for a Software Engineer. Internships and cooperative work/study programs are typically available through the colleges or universities. Few opportunities for exploration exist without specific training. To enter this occupation once you have completed training, apply directly to employers, locate positions through college placement offices, and consult newspaper want ads. In addition, you should access and search the Internet's on-line employment services sites such as:
Michigan Jobs & Career Portal
Michigan Talent Bank
simplyhired.com
Indeed | one search. all jobs.
Ziggs: Free People Search for Professionals
Classifieds Employment
MONSTER.COM
Yahoo!hotjobs
CareerBuilder
MONSTERTRAK.COM
Dice
ComputerJobs.com
USAJOBS - United States Office of Personnel Management
NationJob.com
You should also enter an electronic resume on these on-line services.
EARNINGS AND ADVANCEMENT
Earnings of Software Engineers vary with the employer and the geographic location of the company. For instance, salaries in California tend to be much higher than salaries in Florida. California, Washington and Oregon have many opportunities for Software Engineers because of the large computer firms located in these areas. Smaller companies tend to pay less than larger firms. Earnings also vary with experience, ability and education. For example, Software Engineers frequently are hired for their expertise in using specific computer programs and languages.
Nationally, in early 2008, Software Engineers had average annual earnings as follows:
|
Job Title
|
Annual Average
|
|
Junior Software Engineer
|
$55,000
|
|
Intermediate Software Engineer
|
$65,500
|
|
Senior Software Engineer
|
$77,400
|
|
Lead Software Engineer
|
$87,500
|
Some Software Engineers working as executives, senior staff specialists or consulting scientists earned from $103,400 to $123,600 per year in 2007. The median yearly earnings of "all" workers in the U.S. were $36,140 in 2007. In the Great Lakes area, including Michigan, earnings of Software Engineers were competitive with National earnings. For example, average annual salaries in early 2007 for Software Engineers were:
|
Job Title
|
Great Lakes Area Annual Average
|
|
Junior Software Engineer
|
50,000
|
|
Intermediate Software Engineer
|
64,200
|
|
Senior Software Engineer
|
76,100
|
|
Lead Software Engineer
|
84,100
|
According to a 2007
Michigan survey, Software Engineers annual salaries were:
|
Area
|
Average
|
Middle Range
|
|
Southeastern Michigan
|
$69,957
|
$66,012 - $90,879
|
|
Oakland County
|
$88,818
|
$65,460 - $88,160
|
|
Wayne County
|
$86,589
|
$69,706 - $94,219
|
Software Engineers working in the Detroit Metro Area in 2007-2008 earned the following annual salaries:
|
Type of Software Engineer
|
Average Salary
|
Average Salary Range
|
|
Software Quality Assurance Engineer
|
$64,900
|
$50,900 - $84,900
|
|
Embedded Software/Firmware Engineer
|
$71,700
|
$56,700 - $92,300
|
|
Web Software Engineer
|
$78,100
|
$63,400 - $91,600
|
Most Software Engineers receive fringe benefits such as paid vacations, holidays and sick leave; life, health, accident and disability insurance retirement and have educational reimbursement plans and stock purchases/savings plans. Benefits are usually paid for, at least in part, by the employer.
Most Software Engineers start out as trainees, co-op students during college years or work as "interns" during summer months. They may advance to Lead or Senior Software Engineers. From these positions they may advance to management or consulting.
EMPLOYMENT AND OUTLOOK
Nationally, there were about 856,800 Computer Software Engineers employed in 2006. About 506,800 were computer applications software engineers and 350,000 were computer systems software engineers. About one third of all software engineers were employed by computer systems design and related services firms. About 1.6% of all Computer Software Engineers were self-employed. Employment is expected to increase much faster than the average for all occupations through the year 2016.. The industry distribution for Computer Software Engineers looked like this:
|
NAICS Code
|
INDUSTRY
|
% EMPLOYED 2006
|
|
541500
|
Computer systems design & related services
|
29.4
|
|
334000
|
Computer & electronic product manufacturing
|
9.9
|
|
520000
|
Finance & insurance
|
8.1
|
|
511200
|
Software publishers
|
6.8
|
|
516890
|
Internet and other information services
|
5.5
|
|
518000
|
Internet service providers, web search portals, & data processing services
|
5.1
|
|
420000
|
Wholesale trade
|
4.5
|
|
990000
|
Government
|
4.5
|
|
551100
|
Management of companies & enterprises
|
3.7
|
|
517000
|
Telecommunications
|
3.1
|
|
560000
|
Administrative & support services
|
2.8
|
|
541300
|
Architectural, engineering, and related services
|
2.8
|
|
--
|
Others
|
13.8
|
To find employers, click
Employer/Business Locator
.
Most large companies have changed to integrated software systems (enterprise resource planning software) which coordinate all the separate computer programs that may handle a company's customer orders, inventory, shipping and other information, and replacing them with a single set of programs, which oversee all the others. This has made for an explosion in Internet-related software for business-to-business (B2B) transactions and network management. Software has been developed for remote access, wireless and portable communications. The United Statesis also the leader in the artificial intelligence (AI); computer-aided design, manufacturing, and engineering (CAD/CAM/CAE); and the networking products software market. Growth in these changing technologies will increase the demand for Software Engineers. Also new software technologies involving wireless and mobile devices and customized software will be supporting growth.
Web sites which provide information on future jobs for IT professionals include:
There are about 14,500 Computer Software Engineers employed in Michigan. The number of Computer Software Engineers is expected to grow much faster than the average for all occupations through 2014. About 10,000 of these Engineers were Software Applications Engineers and about 4,500 were Software Systems Engineers
For the Software Engineers who specialized in applications, an average of 440 annual openings is expected, with 340 due to growth and 100 due to replacement of those who retire, die, or leave the labor force for other reasons. (see table below).
For Software Engineers who specialized in systems, fewer openings are present in Michigan. An average of 180 openings is expected with 130 due to growth and 50 due to the replacement of those who retire, die or leave the labor force for other reasons. Additional openings will occur as workers change jobs or occupations.
Michigan's automotive industry tends to make it a large customer. However, since the general economy has suffered, the information technology sector of the economy has also been severely affected. Companies put off large investments in software and hardware when times are challenging. Many companies have turned to outsourcing to save on programming costs. Because of Michigan's manufacturing base, companies need networking capabilities and software application development. Those with "soft skills" in addition to technical skills are in demand as well as those with the ability to analyze business problems. Software Engineers with experience in the very latest programming skills will be sought after.
MICHIGAN
'S EMPLOYMENT OUTLOOK TO 2014
For Software Engineers who specialize in Applications only:
|
EMPLOYMENT
REGION
|
NUMBER
EMPLOYED
|
PERCENT
GROWTH
|
PROJECTED
YEARLY JOB
OPENINGS
|
|
|
MICHIGAN - State-wide
|
10,010
|
33.6
|
440
|
|
|
Ann Arbor Area
|
955
|
28.5
|
37
|
|
|
Battle Creek Area
|
110
|
29.5
|
4
|
|
|
Benton Harbor Area
|
80
|
17.7
|
2
|
|
|
Central Michigan
|
25
|
39.1
|
1
|
|
|
Detroit Area
|
6,900
|
32.1
|
290
|
|
|
Flint Area
|
95
|
28.0
|
4
|
|
|
Grand Rapids Area
|
900
|
33.6
|
39
|
|
|
Jackson Area
|
55
|
28.3
|
2
|
|
|
Kalamazoo Area
|
85
|
26.5
|
3
|
|
|
Lansing MSA
|
325
|
37.8
|
16
|
|
|
Muskegon Area
|
40
|
13.2
|
1
|
|
|
Northwest Lower Peninsula
|
85
|
23.0
|
3
|
|
|
Saginaw Area
|
80
|
15.4
|
2
|
|
|
Upper Peninsula
|
65
|
24.6
|
2
|
|
|
*NOTE: Areas may not add up to state-wide total due to rounding, sampling or statistical errors, and/or confidentiality issues.
|
|
|
SOURCES OF ADDITIONAL INFORMATION
Printed Occupational information is available upon written request from the sources below:
|
Assn. for Computing Machinery
2 Penn Plaza
New York, N.Y. 10021-0701
(212)626-0500
(800) 342-6626
|
Institute of Electronics & Electrical Engineers Computer Society
1828 L. Street, N.W.,Suite 1202
Washington, DC 20036
(202)371-0101
|
|
Association of Information
Technology Professionals
Attention: Computer Careers
401 N. Michigan Ave.
,Ste.2400Chicago, IL 60611-4267
(312)245-1070
(800)224-9371
|
Institute for Certification of
Computer Professionals (ICCP)
2350 E. Devon Ave., Ste. 115
Des Plaines, IL 60018-4610
(847) 299-4227
(800)843-8227
|
|
Software Information Industry Assn.
1090 Vermont Ave.
6th floor
Washington, D.C. 20005
(202)289-7442
|
Computer and Automated Systems
Association of Society of
Manufacturing Engineers
1 SME Drive
Dearborn, MI 48121
(313)271-1500
(800)733-4763
|
|
Association for the Advancement of
Artificial Intelligence
445 Burgess Drive
Menlo Park, CA 94025-3442
(650) 328-3123
|
Telephone Directory Yellow Pages:
Computer Programming
Computer Software, Computer
System Designers and Consultants,
Information Systems, Marketing
Research and Analysis
|
|
American Society of Employers
Detroit
Area Office:
23815 Northwestern Hwy.
Southfield, MI 48075
(248)353-4500
|
|
Copyright © 2008 Michigan Department of Labor & Economic Growth
|