The computer software field can be divided into three environments: corporate information services (IS) departments, software vendors, and consultants. People in corporate IS departments usually work on the implementation and support of software and hardware products for companies that produce nontechnical items or services. People who work with software vendor companies focus on creating products for sale. Consultants are independent contractors who are hired by corporations to help implement new software packages.
Information technology (sometimes known as information services) departments support the information-systems needs of corporations. They analyze a company’s technological needs, and then explore what kinds of software products are already available for implementation. Some customization of the software might be necessary, so information technology (IT) employees might develop or add various programs.
There are several software-related positions within IT departments. Programmers write, test, and maintain software. They write specific programs by breaking down each step into a logical series of instructions that the computer can follow. Programmers then code these instructions in a conventional programming language, such as C or FORTRAN; an artificial intelligence language, such as Prolog; or one of the more advanced, function-oriented or object-oriented languages, such as Java, C++, or Smalltalk. Programmers usually know more than one programming language and must often learn new ones as they are released. They update, repair, modify, and expand existing programs. Programmers also test programs by running them several times to ensure that the instructions in the user manuals are correct and that they produce the desired information. If an error occurs, programmers make the appropriate changes and recheck the programs until they run smoothly. This process is called debugging. Approximately 250,300 computer programmers worked in the United States in 2018, according to the Department of Labor (DOL).
Database/data warehouse administrators work with database management systems software, from coordinating changes to testing and implementing databases. They are responsible for design implementation and coordinating security measures. The DOL reported that 116,900 database administrators were employed in the United States in 2018.
Systems analysts use their knowledge and skills to solve computer problems and enable the technology to meet the individual needs of an organization. They have a multidimensional vocation that requires a range of technical, managerial, and creative skills. Systems analysts study business, scientific, or engineering data-processing problems and design new solutions. This process can include planning and developing new computer systems, or devising ways to apply existing system resources to additional operations. They also might design entirely new systems, including hardware and software, or add one software application to harness more of the computer’s power. The ideal systems analyst has a balance of programming and analysis skills. In 2018, nearly 633,900 computer systems analysts worked in the United States.
Directors and managers of IT and client/server computing are responsible for overall software application development and support. They analyze and select products as well as supervise the budgets and contract negotiations. IT managers also handle some project-management duties. The DOL reported that 414,400 computer and information systems managers were employed in the United States in 2018.
Systems programmers and Unix administrators install, maintain, upgrade, and support the operating systems and software products. They mainly work with the software systems and do not have a lot of interaction with users. Directors of technical services and technical support managers are responsible for the implementation and support of software products. They work closely with vendors and other departments to ensure software reliability.
Network engineers deal with LAN and WAN support and PC/LAN connectivity. They have lots of interaction with users and troubleshoot network conditions. This job also includes designing networks and analyzing products. Intermediate engineers maintain and support network issues. Junior engineers usually provide help desk support and configure the company’s PCs. Directors of network services handle all of the network communications responsibilities.
Computer operators run jobs, change tapes and disks, and monitor equipment. Operations supervisors are responsible for data center hardware implementation and its overall support. Computer operations managers, supervisors, and directors of computer operations also work with vendors to maintain the overall system reliability and hardware configuration planning, as well as managing support staffs.
Chief information officers or vice presidents are responsible for the overall operations of the department, including budgets. Chief information officers spend a lot of time negotiating vendor contracts, and building teams of specialists to carry out their strategic plans.
Software vendors develop and sell software products (sometimes coupled with hardware). To remain competitive, software companies must keep up with emerging technologies. There are several steps to complete before introducing a new software package or upgrade. These steps include conceptualization, design, alpha prototype creation, beta testing, and rollout (or release). While this can be very stimulating work, there can be downsides. Many times, it is necessary to work extra hours to meet deadlines. On the other hand, it can be exciting to be in the thick of things, working toward creating the best product on the market.
There are two types of jobs within vendor companies: technical and functional. Technical people, such as programmers and systems architects, actually make the concept work. Functional people deal with the aesthetics and user-friendliness of the software. These positions include design analysts, testers, and quality-assurance technicians. Other functional positions are project managers and trainers.
Vice presidents or directors of development are in charge of other software engineering managers or technical support departments. In small companies, vice presidents of engineering might also be designers. In large companies, they might have 100 people reporting to them. Managers of research and development are in charge of developing, maintaining, and supporting all of the projects in their areas.
Software designers, sometimes known as software architects or software engineers, are the most purely technical people in the industry. They are responsible for creating the company’s new products. Occasionally, they lead teams of engineers. Sometimes they receive royalties for the products they develop. A good software designer can make or break a company. Software engineers maintain existing code, develop new enhancements to older products, and write custom interfaces with other projects. These professionals also possess strong programming skills, but are more concerned with analyzing and solving programming problems than simply with code. Software engineers sometimes mentor junior- and intermediate-level developers.
Before the product is shipped or made available to the general public, it must be tested to ensure it performs all of the functions that are documented in the user manual. If there is a problem with a particular code, testers or quality-assurance people collaborate with the development team to get it resolved.
Vice presidents of sales and marketing and directors of sales support are responsible for sales, customer support, and product planning, usually for one region of the country. Individuals who hold these positions have usually started out in technical development and moved up into the various levels of sales and marketing. They travel frequently in order to foster customer relationships with the company. The sales staff has system engineers to help support them, especially during sales presentations. They also are responsible for customization of the software at the customer’s site, installation, and upgrades.
Project managers oversee the implementation of their clients’ systems according to their specific requirements. This includes assembling resources to develop the application as well as to prepare and stabilize the system. Project managers supervise these resources and oversee the necessary contracts. They also prepare the documentation required for the project, including a detailed plan that contains all of the tasks necessary to complete the project and the resources assigned to those tasks, as well as daily meeting logs and weekly status reports. Customer support specialists provide assistance and advice to users. They interpret problems and provide technical support for hardware, software, and systems.
Directors of product planning report the strategic direction of the company to the outside world. They plan trade shows and advertising and analyze the competition’s products, pricing, and packaging. Directors of data center operations support the computer systems of software developers and other departments within the vendor company.
A growing number of software professionals are employed on a temporary (or contract) basis. Many are self-employed and work independently as consultants. For example, a company that