Careers in IT, Main Banner

The People

Large projects will involve a great number of people to complete the project. The following people typically are involved in the system development process:

  • Systems Analysts - Develop the system specifications

  • Programmers - Using software tools, they develop the software that will power the system

  • Project Managers - The "coaches" who ensure the team works well together and the project stays on schedule.

  • End Users - The system is for them to use, therefore, they need to be involved in its planning.

  • Vendors - New software or hardware may need to be obtained for the new system. Vendors will need to be solicited and consulted.

  • Network Architects (Engineers) - How will the new system be deployed and how will it interact with other systems? The network engineers can help plan this portion of the project.

  • Technical Writers - Documentation for the new system needs to be written.

  • Database Analysts (DBAs) - Most systems interface with or create one type of database or another. Therefore, DBA's will be needed to design and implement database structures.

  • Graphic Designers & Interface Designers - Interface screens for users will have to be created and should be pleasing to the eye (as well as effective).

  • Upper Management - Management is providing the funding for the project. They need to be kept informed of the project's progress as well as be involved in the early planning stages to obtain critical management buy-in.

  • Accountants - All projects have a cost budget. The bean counters need to be involved to help analyze actual costs versus budgeted costs.

  • External Consultants - You don't always possess the expertise you need in-house. You may need to seek external help to complete a project.

Although all participants are important to a project, the key players in the SDLC are the Systems Analysts, Programmers and Project Managers. To better understand this, let's examine a typical large-scale project in your neighborhood...building a house.

What are the key roles in building a house? You need adequate plans to build from which are developed by an architect with input from the users (homeowners). Then you need tradesmen (such as carpenters, plumbers, electricians) to build the various components of the house. The tradesmen need to follow the plans developed by the architect. And since many different tradesmen are used, and materials must be obtained and delivered on a certain time schedule, you need a general contractor to organize the entire project and make sure everyone works together to achieve the common goal (i.e. building the house as specified in the architect's plans).

Systems development works in a similar way. The systems analysts are the architects of information systems. They design the plans for the system based on input from the end users of the planned system. The programmers are analogous to the tradesmen. Using software tools, they actually construct the information systems and make sure all pieces of the system work harmoniously together. The project managers function as general contractors for a project. They ensure that everything progresses in a timely, organized fashion according to the plans set forth by the systems analysts.

Below is an in-depth look at the three essential positions in software development.

Entry Level Job Profile - Project Manager

Equivalent Job Titles - None.

Average Compensation - $88,200ii

Prior Experience and Career Changing - Project management is not usually an entry-level job in software development. Usually, they have several years of experience as a programmer or systems analyst prior to becoming a project manager.iii Many people feel that you can't coach unless you've been a player. However, if you have existing experience as a project manager in another field (other than software development), obtaining the appropriate technical skills (primarily programming and systems analysis) could lead you to a successful career change into software project management. George Nassef, CIO at Hotjobs.com, Ltd. feels that "customer support is a good place to find people with a good blend of skills for project management."iv Customer support professionals understand customer needs and, since they have to support poorly developed products, they understand the value of managing a project properly. Good project managers are a scarce commodity so demonstrated experience in a project management or customer service role, even in a field unrelated to IT, could work well in your favor.

Responsibilities - General tasks are as follows:

  • Assignment of Staff - Project managers usually have a great deal of input, if not the final decision, in selecting the members for the development team.

  • Budgeting - Developing, maintaining and analyzing budgeted costs and man-hours consume a great deal of administrative time. But analyzing budget vs. actual data is essential to spotting trends and problems early on.

  • Management Reporting - Progress reports need to be prepared and communicated to upper management.

  • Coaching - Mentoring, encouraging and motivating the team members as well as providing leadership to the development team.

  • Troubleshooting - Finding creative solutions to problems holding up the progress of the project.

  • Meeting Tight Deadlines - All phases of a project have deadlines. Certain phases must be completed before others can be begun. Ensuring the deadlines are met, and explaining why they won't be met, falls on the project manager.

Skills - A solid computer science background, with emphasis on programming is essential. So is a general business background since you need to communicate well with marketing and fulfillment personnel. In addition, you would need to possess the following attributes:

  • Attention to Detail - Software development projects are complex. They are comprised of many minute parts. Understanding how they all fit together as a whole is essential.

  • Time Management Skills - There are always 40 "balls in the air" as a project manager. You must be able to keep track of many segments of a project, as well as the people involved in them, at the same time. If you are not adept at time management, you should seek another career.

  • People Skills - Working with diverse groups of people is an everyday occurrence in this position. Being able to encourage cooperation and attention to deadlines as well as being able to function as a confidant and mentor is necessary to function well at this job.

  • Work Well Under Stress - Project management is probably the most stressful of all IT positions. Constant pressures from management and marketing to get the job completed on a timely basis just add to the frustration of trying to deal with problems in the development process. Because of this level of stress, there is a high burnout rate among project managers.

  • Strong Communication Skills - Communicating with team members, upper management and marketing will require excellent verbal and written skills.

  • Familiarity with Project Management Software - Popular packages include Microsoft Project (www.microsoft.com/office/project/) and the Primavera Systems portfolio of products (www.primavera.com)

Education - A four-year computer science or MIS degree is usually required. Often, successful candidates have an advanced degree (Masters or Ph.D.) as well. In addition to computer science courses, general business and management courses are a plus.

Certifications - The certifications described below would help demonstrate to potential employers that you have mastered skill sets that are applicable to a project management career. In addition, they may also fatten your paycheck. A salary survey conducted by the Project Management Institute (PMI) revealed that project managers who earned project management certifications tend to earn about $5,000 more per year than those without certifications.v

  1. IT Project + - Yet another in the long list of CompTIA’s certifications. Per CompTIA’s web site, this certification "is an industry-recognized credential acknowledging competency and professionalism in IT Project Management, including the necessary business knowledge, interpersonal skills, and project management processes required to successfully manage IT projects." This certification was acquired by CompTIA from the Gartner Institute (www.comptia.org).

  2. Project Management Professional (PMP) - The PMP certification is a product of the Project Management Institute (PMI). PMI is a non-profit organization established in 1969 that establishes standards, runs training seminars and provides certification for project management professionals (www.pmi.org/certification).

Entry Level Job Profile - Systems Analyst

Equivalent Job Titles - Programmer/Analyst, Software Engineer, Systems Consultant. The title of systems analyst is often applied to a variety of roles ranging from an entry-level programmer/analyst to a senior manager of all development projects within an organization. Be certain you ascertain exactly what the duties are of the position for which you are applying and whether it is an entry-level job.vi

Average Compensation - $62,838vii

Career Changing - Many organizations insist on hiring systems analysts with prior programming experience. However, some organizations are more flexible. If you have a solid business background, including management experience that you supplement with appropriate training in software development, then you might be a good fit as a systems analyst. Understanding business processes is just as critical in this position as having a strong technical background.

Responsibilities - Although the main thrust of the job is planning systems, the detailed tasks are as follows:

  • Determining an Organization's Information Needs — This is accomplished through close contact with end users in all parts of the organization (including, but not limited to, marketing, sales, accounting, production, fulfillment and warehousing). Attending meetings is an essential part of the job.

  • Documenting Systems — Clear documentation of the existing and proposed systems allows the analysts and the end users to reach agreement on the goals and objectives for development projects.

  • Writing Detailed Software Specifications — This means creating a blueprint for the programmers to follow when they are generating the computer code.

  • Choosing Appropriate Programming Tools — Requires analysts to be familiar with popular suites of tools and their advantages and limitations.

  • Supervising Programmers — Since this is an important component of the job, it is not surprising that many companies prefer to hire systems analysts with programming experience.

  • Testing Programs — If there is not a quality assurance department responsible for program testing, the analysts usually get involved in developing and performing tests on the software code.

  • Collecting End User Feedback — As users are exposed to the new system, the analysts gather feedback and recommend any changes proposed by the users.

Skills - A solid computer science background, with emphasis on programming is essential. So is a general business background since you need to communicate well with personnel throughout the organization. Writing skills are especially important since you will need to generate clear documentation. In addition, you would need to possess the following attributes:

  • Problem Solving Ability (analytical ability) - Each development project comes about because there is a problem to solve or a need to be addressed. An analyst must take complex business problems and break them down into component parts. By analyzing the parts, improving some of them, and reassembling them, he should arrive at an improved system that provides a solution to the identified problem.viii

  • Solid "People" Skills - This job requires a lot of contact with other employees. Therefore, the ability to "work and play well with others" is highly valued. Loners need not apply.

  • Must be Detail and "Big Picture" Oriented - You must be able to see the "big picture" to envision the overall scope of the system you are designing…especially with an eye towards how it will interact with other systems. At the same time, you must pay attention to the minute details required to write the specifications for the programmers.

  • Plan Oriented - The result of systems analysis is a plan for the solution. Therefore, you should be the type of person who thinks that planning is important and you should be willing to encourage the other team members to track and measure their work.ix

  • Strong Written and Verbal Skills

  • Maintain Software Currency - You must constantly be training yourself on the latest software packages and development tools. You need to be aware of the limitations and abilities of various development environments to choose the appropriate one for your project.

Education - A four-year computer science or MIS degree is usually required. In addition to programming courses, general business, systems analysis, software engineering and management courses are highly desirable.

Certifications - The following certifications would help demonstrate to potential employers that you have mastered skill sets applicable to a systems analysis career:

  1. Microsoft Certified Solution Developer (MCSD) — The MCSD certification, among other things, demonstrates that the candidate has mastered the ins and outs of systems development in a Microsoft environment (www.microsoft.com/trainingandservices).

  2. Any of the individual language certifications mentioned in the next section on programmers.

Entry Level Job Profile - Programmer

Equivalent Job Titles— Programmer Analyst, Junior Programmer, Assistant Programmer, Software Developer (entry level), Software Engineer (entry level)

Average Compensation — $55,138x

Responsibilities — General tasks are as follows:

  • Attending Meetings — As part of the SDLC process, programmers will be involved in many meetings to help define user needs, system specifications, etc.

  • Writing Documentation — This is a critical step in the SDLC and should not be overlooked. Unless the company has technical writers on staff, programmers usually generate systems documentation.

  • Generate Software Specifications — In conjunction with the systems analysts (or functioning as programmer/analysts) develop the specifications of the system per the user requirements.

  • Train Users — Since programmers presumably know the system inside out (they built it after all), they often are tapped to train users.

  • Testing and Debugging — Although large organizations have formal testing staff, in small and medium size organizations this task often falls to the programmers.

  • Convert Specifications into Computer Code — This is actual computer programming.

  • Fixing or Upgrading Existing Programs — Bugs are always being discovered, requiring corrections to the original code. User needs change and amendments need to be made to existing software.

  • Monitor Program Performance — Monitoring performance, with an eye towards spotting bugs and new or changed user needs, is an important aspect of this position.

  • Provide Technical Support for Programs as Needed — Not every problem can be solved by the level one help desk personnel. Level 2 and 3 help desk personnel are often programmers.

Skills - To successfully perform these duties, you would need to possess the following:

  • Strong Math Skills — Programming languages are mathematically based. If you historically have struggled with math, you will most likely have great difficulty learning to program effectively and efficiently. "There can be a great deal of grunt math work, so anyone not comfortable with math should probably stay away from this job [programming]," says Joe Shashaty, Software Engineer at Netsol.xi

  • Facility in One or More Object-oriented Programming Languages — Which languages should you learn? Per a survey in Computerworld in late 2000, the top computer language skills that IT managers would be seeking in 2001 were Java, C++ and Visual Basic.xii Let’s examine them briefly as well as a new language (C#) and an old friend (COBOL):

    1. Java — An object-oriented language that was developed by Sun Microsystems in 1994. Java was developed with the Internet in mind and one of its main features is the ability to program applets. Applets are compact computer programs designed to run inside a web browser. Any company that is doing any sort of web based projects is probably using Java. One of the best things about Java is that it is platform independent. It will run in a variety of network operating systems.

    2. C++ — C++ is an object-oriented language that grew out of the old C language developed in the early 70s. Although it can be somewhat intimidating to learn and master (pointers drive people especially mad when learning C++) it is a powerful object-oriented language widely used in industry today. As with Java, C++ compilers have been developed for almost every operating system in widespread use today, so C++ programs enjoy a great deal of portability between platforms.

    3. Visual Basic — Microsoft’s flexible object-oriented development language is quite easy to learn. But don’t be fooled, even though easily mastered, it is an extremely powerful tool. Visual Basic (VB) can be used to develop applications rapidly and is therefore often used when prototyping is an appropriate method for a project. However, VB will only run in a Windows environment and is therefore not as portable as Java or C++ code.

    4. C# — Pronounced "C sharp," this new object-oriented language from Microsoft was introduced when Microsoft launched its new .NET studio in the 4th quarter of 2001. At this point, it is still so new it is unclear how it will be received in the business world. But if you want to be right on the cutting edge, get some C# training. I would recommend backing it up with good solid Java or C++ training also so as not to limit your employment options.

    5. COBOL — An acronym for common business oriented language, COBOL is the second oldest (next to FORTRAN) high-level programming language in the world. Despite having been developed in the late 1950s and early 1960s, it is still the most widely used language in the world according to Webopedia ( www.pcwebopedia.com/TERM/C/COBOL.html ). Should you run right out and study COBOL? Probably not instead of Java or C++. But if you want to learn it as a second or third language, it might help you land a job in a shop where COBOL is still used.

  • Conversant with Good Programming Procedures — Including, but not limited to, proper program structure, ensuring other programmers can understand your coding and adequate documentation procedures.

  • Logical Thinking — Programs are logical flows of instructions. The ability to think logically is imperative to be a successful programmer.

  • Team Player — Most projects today are too large to be completed by one person. Therefore, you need to be able to coordinate your efforts with other members of diverse teams.

  • Time Management Skills — Deadlines are an inherent part of programming especially with large, complex projects. Often other pieces of a project will be delayed if your code is not completed on time. This can generate a great deal of stress.

  • Adept at Relieving Stress — Due to the deadlines noted above, you need to have an outlet for your tension.

Education - A four-year college degree and possibly an advanced degree (M.S.) in computer science is what most employers are looking for when hiring programmers.xiii Most likely your major will be computer science, but occasionally it might be management information systems (MIS) or mathematics with programming courses plugged in as electives. Although private technical schools offer programming curriculums, you are more likely to be desirable to an employer with a four-year degree.

Certifications - The following certifications would help demonstrate to potential employers that you have mastered skill sets that are applicable to a programming career:

  1. Borland Product Certifications — Borland is a software developer that produces some of the most widely used application tools in software development. C++ Builder 5 and JBuilder 5 (Java) are used in many software development departments. Borland offers certification in both these products. ( www.borland.com/services/training/certification )

  2. Sun Microsystems Java Certifications — Go right to the inventor of Java for well-respected Java certifications. Sun currently offers 4 levels of Java certification that are obtained through rigorous examinations consisting of objective questions and programming problems. ( http://suned.sun.com/US/certification )

  3. Microsoft Certified Solution Developer (MCSD) — The MCSD certification, among other things, demonstrates that the candidate has mastered the ins and outs of Microsoft Visual Studio. Visual Studio is a software development product that features C++, Visual Basic and C# programming tools. ( www.microsoft.com/trainingandservices )

As the need for better and faster access to information increases, so will the need for new information systems. This should keep the demand for systems development professionals at a high level for the near future.

 

© 2002 by Prentice-Hall, Inc. A Pearson Company
Distance Learning at Prentice Hall | Legal Notice