SOFTWARE DEVELOPERS, APPLICATIONS: MASSACHUSETTS Occupation Description Develop, create, and modify general computer applications software or specialized utility programs. Analyze user needs and develop software solutions. Design software or customize software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. May supervise computer programmers. State and National Wages Location United States Massachusetts 2013 Pay Period 10% 25% Median 75% 90% Hourly $26.81 $34.75 $44.55 $56.07 $69.01 Yearly $55,800 $72,300 $92,700 $116,600 $143,500 Hourly $30.73 $37.44 $47.02 $58.45 $71.96 Yearly $63,900 $77,900 $97,800 $121,600 $149,700 State and National Trends Employment United States Software Developers, Applications 2012 2022 613,000 752,900 +23% 21,850 Projected Annual Job Openings 1 910 Employment Massachusetts Software Developers, Applications 1 Projected Annual Job Openings 1 Percent Change 2012 2022 Percent Change 27,350 32,940 +20% Projected Annual Job Openings refers to the average annual job openings due to growth and net replacement. Knowledge, Skills, and Abilities Knowledge: Computers and Electronics - Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming. Mathematics - Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications. English Language - Knowledge of the structure and content of the English language including the meaning and spelling of words, rules of composition, and grammar. Engineering and Technology - Knowledge of the practical application of engineering science and technology. This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services. Customer and Personal Service - Knowledge of principles and processes for providing customer and personal services. This includes customer needs assessment, meeting quality standards for services, and evaluation of customer satisfaction. Source: “Software Developer.” O*NET Resource Center. National Center for O*Net Development, n.d. Web. 17 December 2014. <http://www.onetonline.org/link/summary/15-1132.00> Skills: Complex Problem Solving - Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions. Programming - Writing computer programs for various purposes. Systems Analysis - Determining how a system should work and how changes in conditions, operations, and the environment will affect outcomes. Judgment and Decision Making - Considering the relative costs and benefits of potential actions to choose the most appropriate one. Systems Evaluation - Identifying measures or indicators of system performance and the actions needed to improve or correct performance, relative to the goals of the system. Abilities: Deductive Reasoning - The ability to apply general rules to specific problems to produce answers that make sense. Problem Sensitivity - The ability to tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing there is a problem. Inductive Reasoning - The ability to combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events). Category Flexibility - The ability to generate or use different sets of rules for combining or grouping things in different ways. Fluency of Ideas - The ability to come up with a number of ideas about a topic (the number of ideas is important, not their quality, correctness, or creativity). Information Ordering - The ability to arrange things or actions in a certain order or pattern according to a specific rule or set of rules (e.g., patterns of numbers, letters, words, pictures, mathematical operations). Mathematical Reasoning - The ability to choose the right mathematical methods or formulas to solve a problem. Near Vision - The ability to see details at close range (within a few feet of the observer). Oral Expression - The ability to communicate information and ideas in speaking so others will understand. Tasks and Activities Occupation Specific Tasks: Modify existing software to correct errors, allow it to adapt to new hardware, or to improve its performance. Develop and direct software system testing and validation procedures, programming, and documentation. Confer with systems analysts, engineers, programmers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces. Analyze user needs and software requirements to determine feasibility of design within time and cost constraints. Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design. Store, retrieve, and manipulate data for analysis of system capabilities and requirements. Consult with customers about software system design and maintenance. Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel. Coordinate software system installation and monitor equipment functioning to ensure specifications are met. Obtain and evaluate information on factors such as reporting formats required, costs, and security needs to determine hardware configuration. Determine system performance standards. Train users to use new or modified equipment. Specify power supply requirements and configuration. Recommend purchase of equipment to control dust, temperature, and humidity in area of system installation. Source: “Software Developer.” O*NET Resource Center. National Center for O*Net Development, n.d. Web. 17 December 2014. <http://www.onetonline.org/link/summary/15-1132.00> Analyze information to determine, recommend, and plan computer specifications and layouts, and peripheral equipment modifications. Generalized Work Activities: Interacting With Computers - Using computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information. Thinking Creatively - Developing, designing, or creating new applications, ideas, relationships, systems, or products, including artistic contributions. Making Decisions and Solving Problems - Analyzing information and evaluating results to choose the best solution and solve problems. Getting Information - Observing, receiving, and otherwise obtaining information from all relevant sources. Analyzing Data or Information - Identifying the underlying principles, reasons, or facts of information by breaking down information or data into separate parts. Detailed Work Activities: Analyze project data to determine specifications or requirements. Apply mathematical principles or statistical approaches to solve problems in scientific or applied fields. Assess database performance. Collaborate with others to determine design specifications or details. Coordinate software or hardware installation. Design software applications. Develop performance metrics or standards related to information technology. Develop testing routines or procedures. Document technical specifications or requirements. Manage information technology projects or system activities. Modify software programs to improve performance. Monitor computer system performance to ensure proper operation. Prepare data for analysis. Provide recommendations to others about computer hardware. Provide technical support for software maintenance or use. Supervise information technology personnel. Teach others to use computer equipment or hardware. Tools and Technology Software Developers, Applications Tools: Computer servers - Application servers, Computer servers Desktop computers - Desktop computers Digital cameras - Digital cameras Flash memory storage card - Flash disks Integrated circuit testers - In circuit emulators ICE, Logic analyzers Technology: Data base management system software - Apache Hadoop, Computer Associates integrated data management system CA-IDMS, Data definition language DDL, Data manipulation language DML, Database management system software Source: “Software Developer.” O*NET Resource Center. National Center for O*Net Development, n.d. Web. 17 December 2014. <http://www.onetonline.org/link/summary/15-1132.00> Development environment software - A programming language APL, ABC Compiler, AWK, Ada, Advanced business application programming ABAP Object or component oriented development software - ABC: the AspectBench Compiler for AspectJ, C++, Collaborative Application Markup Language CAML, Common Lisp Object System CLOS, Component object model COM software Program testing software - Defect tracking software, Dynamic analysis software, Functional testing software, IBM Rational PurifyPlus, Integration testing software Web platform development software - Adobe Systems Adobe Flex, Allaire ColdFusion, Apache Struts, Asynchronous JavaScript and XML AJAX, Cascading Style Sheets CSS Education and Training Related Instructional Programs: Artificial Intelligence Bioinformatics Computer Engineering, General Computer Programming, Specific Applications Computer Programming/Programmer, General Computer Science Computer Software Engineering Computer Software Technology/Technician Informatics Information Technology Medical Informatics Modeling, Virtual Environments and Simulation Distribution of Educational Attainment Percent of employees aged 25 to 44 in the occupation whose highest level of educational attainment is Occupation Less High Some than school Doctoral or college, Associate's Bachelor's Master's high diploma professional no degree degree degree school or degree degree diploma equivalent Software Developers, Applications 0.2% 2.5% 8.5% 5.1% 50.3% 29.6% 3.8% Computer Occupations 0.5% 5.8% 18% 10.7% 43.5% 18.2% 3.3% Computer and Mathematical 0.5% 4.3% 14.6% 8.4% 42.2% 22.6% 7.4% Total, All Occupations 9.4% 24.5% 20.2% 8.7% 19.8% 10.1% 7.2% Related Occupation Profiles Aerospace Engineering and Operations Technicians Computer Numerically Controlled Machine Tool Programmers, Metal and Plastic Computer Science Teachers, Postsecondary Computer User Support Specialists Computer, Automated Teller, and Office Machine Repairers Electrical and Electronics Drafters Electrical and Electronics Repairers, Commercial and Industrial Equipment Source: “Software Developer.” O*NET Resource Center. National Center for O*Net Development, n.d. Web. 17 December 2014. <http://www.onetonline.org/link/summary/15-1132.00>