Software designers are responsible for creating new ideas and designing prepackaged and customized computer software. Software designers devise applications such as word processors, front-end database programs, and spreadsheet programs that make it possible for computers to complete given tasks and to solve problems. Once a need in the market has been identified, software designers first conceive of the program on a global level by outlining what the program will do. Then they write the specifications from which programmers code computer commands to perform the given functions.
Software Designer Career History
“In 1983, software development exploded with the introduction of the personal computer. Standard applications included not only spreadsheets and word processors, but graphics packages and communications systems,” according to “Events in the History of Computing,” compiled by the Institute of Electrical and Electronics Engineers (IEEE) Computer Society.
Advances in computer technology have enabled professionals to put computers to work in a range of activities once thought impossible. Computer software designers have been able to take advantage of computer hardware improvements in speed, memory capacity, reliability, and accuracy to create programs to do almost anything. With the extensive proliferation of computers in our society, there is a great market for user-friendly, imaginative, and high-performance software. Business and industry rely heavily on the power of computers and use both prepackaged software and software that has been custom-designed for their own specific use. Also, with more people purchasing computer systems for home use, the retail market for prepackaged software has grown steadily. Given these conditions, computer software designing will be an important field in the industry for years to come.
The software industry has many facets, including packaged applications for personal computers (known as “shrink-wrapped software”); operating systems for stand-alone and networked systems; management tools for networks; enterprise software that enables efficient management of large corporations’ production, sales, and information systems; software applications and operating systems for mainframe computers; and customized software for specific industry management.
Packaged software is written for mass distribution, not for the specific needs of a particular user. Broad categories include operating systems, utilities, applications, and programming languages. Operating systems control the basic functions of a computer or network. Utilities perform support functions, such as backup or virus protection. Programming software is used to develop the sets of instructions that build all other types of software. The software familiar to most computer users is called application software. This category includes word-processing, spreadsheets, and email packages, commonly used in business, as well as games and reference software used in homes, and subject- or skill-based software used in schools.
The Job of Software Designers
Without software, computer hardware would have nothing to do. Computers need to be told exactly what to do, and software is the set of codes that gives the computer those instructions. It comes in the form of the familiar prepackaged software that you find in a computer store, such as games, word processing, spreadsheet, and desktop publishing programs, and in customized applications designed to fit specific needs of a particular business. Software designers are the initiators of these complex programs. Computer programmers then create the software by writing the code that carries out the directives of the designer.
Software designers must envision every detail of what an application will do, how it will do it, and how it will look (the user interface). A simple example is how a home accounting program is created. The software designer first lays out the overall functionality of the program, specifying what it should be able to do, such as balancing a checkbook, keeping track of incoming and outgoing bills, and maintaining records of expenses. For each of these tasks, the software designer will outline the design details for the specific functions that he or she has mandated, such as what menus and icons will be used, what each screen will look like, and whether there will be help or dialog boxes to assist the user. For example, the designer may specify that the expense record part of the program produce a pie chart that shows the percentage of each household expense in the overall household budget. The designer can specify that the program automatically display the pie chart each time a budget assessment is completed or only after the user clicks on the appropriate icon on the toolbar.
Some software companies specialize in building custom-designed software. This software is highly specialized for specific needs or problems of particular businesses. Some businesses are large enough that they employ in-house software designers who create software applications for their computer systems. A related field is software engineering, which involves writing customized complex software to solve specific engineering or technical problems of a business or industry.
Whether the designer is working on a mass-market or a custom application, the first step is to define the overall goals for the application. This is typically done in consultation with management if working at a software supply company, or with the client if working on a custom-designed project. Then, the software designer studies the goals and problems of the project. If working on custom-designed software, the designer must also take into consideration the existing computer system of the client. Next, the software designer works on the program strategy and specific design detail that he or she has envisioned. At this point, the designer may need to write a proposal outlining the design and estimating time and cost allocations. Based on this report, management or the client decides if the project should proceed.
Once approval is given, the software designer and the programmers begin working on writing the software program. Typically, the software designer writes the specifications for the program, and the applications programmers write the programming codes.
In addition to the duties involved in design, a software designer may be responsible for writing a user’s manual or at least writing a report for what should be included in the user’s manual. After testing and debugging the program, the software designer will present it to management or to the client.
Software Designer Career Requirements
If you are interested in computer science, you should take as many computer, math, and science courses as possible; they provide fundamental math and computer knowledge and teach analytical thinking skills. Classes that focus on schematic drawing and flowcharts are also very valuable. English and speech courses will help you improve your communication skills, which are very important to software designers who must make formal presentations to management and clients. Also, many technical/vocational schools offer programs in software programming and design. The qualities developed by these classes, plus imagination and an ability to work well under pressure, are key to success in software design.
A bachelor’s degree in computer science plus one year’s experience with a programming language is required for most software designers.
In the past, the computer industry has tended to be pretty flexible about official credentials; demonstrated computer proficiency and work experience have often been enough to obtain a good position. However, as more people enter the field, competition has increased, and job requirements have become more stringent. Technical knowledge alone does not suffice in the field of software design anymore. In order to be a successful software designer, you should have at least a peripheral knowledge of the field for which you intend to design software, such as business, education, or science. Individuals with degrees in education and subsequent teaching experience are much sought after as designers for educational software. Those with bachelor’s degrees in computer science with a minor in business or accounting have an excellent chance for employment in designing business or accounting software.
Certification or Licensing
Certification in software development is offered by companies such as Sun Microsystems, Hewlett-Packard, IBM, Novell, and Oracle. While not required, certification tells employers that your skills meet industry education and training standards.
Software design is project- and detail-oriented, and therefore, you must be patient and diligent. You must also enjoy problem-solving challenges and be able to work under a deadline with minimal supervision. As a software designer, you should also possess good communication skills for consulting both with management and with clients who will have varying levels of technical expertise.
Software companies are looking for individuals with vision and imagination to help them create new and exciting programs to sell in the ever-competitive software market. Superior technical skills and knowledge combined with motivation, imagination, and exuberance will make you an attractive candidate.
Exploring Software Designer Career
Spending a day with a professional software designer or applications programmer will allow you to experience firsthand what this work entails. School guidance counselors can often help you organize such a meeting.
If you are interested in computer industry careers in general, you should learn as much as possible about computers. Keep up with new technology by talking to other computer users and by reading related magazines, such as Computer. You will also find it helpful to join computer clubs and use online services and the Internet to find more information about this field.
Advanced students can put their design ideas and programming knowledge to work by designing and programming their own applications, such as simple games and utility programs.
Software designers are employed throughout the United States. Opportunities are best in large cities and suburbs where business and industry are active. Programmers who develop software systems work for software manufacturers, many of whom are in Silicon Valley, in northern California. There are also concentrations of software manufacturers in Boston, Chicago, and Atlanta, among other places. Designers who adapt and tailor the software to meet specific needs of end-users work for those end-user companies, many of which are scattered across the country.
Software design positions are regarded as some of the most interesting, and therefore the most competitive, in the computer industry. Some software designers are promoted from an entry-level programming position. Software design positions in software supply companies and large custom software companies will be difficult to secure straight out of college or technical/vocational school.
Entry-level programming and design jobs may be listed in the help wanted sections of newspapers. Employment agencies and online job banks are other good sources.
Students in technical schools or universities should take advantage of the campus placement office. They should check regularly for internship postings, job listings, and notices of on-campus recruitment. Placement offices are also valuable resources for resume tips and interviewing techniques. Internships and summer jobs with such corporations are always beneficial and provide experience that will give you the edge over your competition. General computer job fairs are also held throughout the year in larger cities.
There are many online career sites listed on the World Wide Web that post job openings, salary surveys, and current employment trends. The Web also has online publications that deal specifically with computer jobs. You can also obtain information from computer organizations such as the IEEE Computer Society. Because this is such a competitive field, you will need to show initiative and creativity that will set you apart from other applicants.
In general, programmers work between one and five years before being promoted to software designer. A programmer can move up by demonstrating an ability to create new software ideas that translate well into marketable applications. Individuals with a knack for spotting trends in the software market are also likely to advance.
Those software designers who demonstrate leadership may be promoted to project team leader. Project team leaders are responsible for developing new software projects and overseeing the work done by software designers and applications programmers. With experience as a project team leader, a motivated software designer may be promoted to a position as a software manager who runs projects from an even higher level.
Salaries for software designers vary with the size of the company and by location. Salaries may be slightly higher in areas where there is a large concentration of computer companies, such as the Silicon Valley in northern California and parts of Washington, Oregon, and the East Coast.
The National Association of Colleges and Employers reports that average starting salaries for graduates with a doctoral degree in computer science were $93,050 in 2005. Graduates with a bachelor’s degree in computer science averaged $50,820.
Median salaries for computer and information scientists (which include software designers) were $85,190 in 2004, according to the U.S. Department of Labor’s National Occupational Employment and Wage Estimates. Salaries ranged from less than $48,930 to $132,700 or more annually. At the managerial level, salaries are even higher and can reach $145,000 or more.
Most designers work for large companies, which offer a full benefits package that includes health insurance, vacation and sick time, and a profit sharing or retirement plan.
Software designers work in comfortable environments. Many computer companies are known for their casual work atmosphere; employees generally do not have to wear suits, except during client meetings. Overall, software designers work standard weeks. However, they may be required to work overtime near a deadline. It is common in software design to share office or cubicle space with two or three co-workers, which is typical of the team approach to working. As a software designer or applications programmer, much of the day is spent in front of the computer, although a software designer will have occasional team meetings or meetings with clients.
Software design can be stressful work for several reasons. First, the market for software is very competitive and companies are pushing to develop more innovative software and to get it on the market before competitors do. For this same reason, software design is also very exciting and creative work. Second, software designers are given a project and a deadline. It is up to the designer and team members to budget their time to finish in the allocated time. Finally, working with programming languages and so many details can be very frustrating, especially when the tiniest glitch means the program will not run. For this reason, software designers must be patient and diligent.
Software Designer Career Outlook
Jobs in software design are expected to grow much faster than the average through 2014, according to the Occupational Outlook Handbook. Employment will increase as technology becomes more sophisticated and organizations continue to adopt and integrate these technologies, making for plentiful job openings. Hardware designers and systems programmers are constantly developing faster, more powerful, and more user-friendly hardware and operating systems. As long as these advancements continue, the industry will need software designers to create software to use these improvements.
Business may have less need to contract for custom software as more prepackaged software arrives on the market that allows users with minimal computer skills to “build” their own software using components that they customize. However, the growth in the retail software market is expected to make up for this loss in customized services.
The expanding integration of Internet technologies by businesses has resulted in a rising demand for a variety of skilled professionals who can develop and support a variety of Internet applications.