When a company needs to streamline a business process and no off-the-shelf product fits its needs, it turns to the professionals in application development to craft a custom solution. 

From large corporations to privately held small businesses, companies often need to leverage technology to reduce costs and improve efficiency. Application development offers that powerful leverage by creating solutions specifically tuned to the way a particular business operates.

At its core, application development is about creating software solutions that aid end users in accomplishing a task or resolving a pain point. This is done by guiding users through a discovery process, translating the business needs into functional requirements, then building and testing the end result. Unlike its cousin, product development, application development generally creates specific solutions for one particular client rather than attempting to address the needs of users in the mass market. Although the applications created may not be as visually polished as boxed software, they are no less technically complex. Working in this sector of IT, you may be required to build a complete software application from the ground up, or forge together both custom and off-the-shelf products into one coordinated system. 

The Landscape

The recent downturn in the economy, and the accompanying "do-more-with-less" attitude, has revealed an even greater need for technology experts who can offer better business efficiencies through the creation of software applications. A recent Forrester Research report says that even in a recession, "business will still generate demands that require creation of new applications, extension of existing applications, and customization of packaged applications."

But no matter what state the economy is in, the outlook is good for application development. According to the Bureau of Labor and Statistics, employment opportunities in application development will be on the rise in coming years. The bureau's Occupational Outlook Handbook for 2008-2009 predicts development work will be the fastest growing area of the technology job market through the year 2016. A recent report by the Software and Information Industry Association (SIIA) shows this sector of has experienced net percent employment growth of 17 percent over the past decade and significantly outpaced growth of the U.S. economy as a whole, with a recent 10.8 percent increase compared to 3.2 percent growth in GDP.

The most sought after candidates in the field generally will have at least a bachelor's degree in computer science. Having a CS degree lets employers know you've mastered a body of knowledge and principles that will allow you to materially contribute to projects soon after being hired.

Roles and Career Paths

Individuals involved in creating applications may work in a software development division within a large company, be part of the IT group, or work for a consulting firm. Within those three areas, the jobs break down along the key phases of the development process:

  • Coordination
  • Requirements gathering
  • Design and construction
  • Quality assurance (QA) testing

Depending on the size and structure of the company, you may be involved in all phases of development, may contribute in only one of the phases, or anywhere in between. Major positions in each phase are:

Coordination

Project managers are tasked with herding stakeholders toward a realistic plan and schedule that meets all expectations. After the need for a solution arises, it is the project manager's task to conduct interviews and create a project charter. This is a document that defines the scope, objectives and stakeholders, and sets out the project's primary roles and responsibilities. After consensus is reached on the charter, the project manager creates a project plan and schedule so what was contained in the charter can be executed, and progress can be tracked. From beginning to end, the project manager is communicating progress to all stakeholders, and identifying and removing any roadblocks that arise along the way.

Requirements Gathering

Analysts play a central role in studying the business problem and creating software requirements that will be used in constructing, testing, and maintaining the application over its entire lifecycle. It's the analyst's job to interview end users, determine how the software should function, then write down the steps that need to be accomplished. Developers use this information to create software to produce the desired results.  Individuals working in the requirement phase must be able to communicate effectively with a wide range of users and technologists with varying degrees of technical aptitude and vocabulary.

Design and Construction

Using the principles of computer science, roles in design and construction develop software to solve the problems stated in the software requirements documents.  In the design stage, the developer chooses the computer language and associated technologies for the solution, and plans how the system will operate overall. In the construction phase, the developer actually writes the code that will make up the application, and often writes unit tests to confirm the code written meets its requirements.

Other positions involved in this phase include software engineers, programmer analysts, and database administrators.

Quality Assurance

The role of positions in QA is to verify that the application performs to the written specification and is free from defects. Using the work that the analyst and developer have done, the QA engineer creates test plans to exercise the application. Any defects revealed in the process are reported to development, and once resolved, are verified.

Skills and Qualities

  • Excellent communication skill
  • Leadership ability
  • Superb planning skills
  • Superior programming ability
  • Strong analytical and problem solving
  • Adaptability to changing technology