[ Team LiB ] Previous Section Next Section

Software Development Phases

There are four different distinct software development phases that occur in the lifespan of a software system. Those phases are

  • Design

  • Implementation

  • Administration

  • Maintenance

This section organizes the skills needed in each phase of software development. The number of skill sets to people isn't a 1-to-1 relationship. Individual people usually take on multiple roles. Depending on the project, the number of people could vary significantly.

Design Phase

The design phase entails planning and designing the application. This phase is the most critical in ensuring a successful project. Each skill set must gather requirements and then design a working operational system that suits the needs of the business both now and in the future. During this phase, a budget can usually be set and a time frame for implementation discussed. If the cost is too high, the project can be scaled back or implemented in phases. If the length of the project is too long, more resources can be allocated. The actual resources are then scheduled so that they're utilized when they're needed, and then can move on to another role or project.

  • Project managers— Organize the project

  • Hardware and software scalability designers— Perform analysis for the hardware and software needed

  • Security experts— Help design an application that resists illicit activity

  • Java architects— Work with the senior Java programmers to design the workflow and technical design to be implemented

  • Senior Java programmers— Technical reference for the Java architects during the design

  • Legacy functional analysts— Provide insight to the team about legacy requirements

  • Database designers— Work with the design team to lay out a proper database schema

  • GUI designers— Work with end users and functional analysts to design the screens and layouts

  • Graphic arts developers— Work with designers to create images and buttons for site

  • QA engineers— Prepare a test environment and write a test plan and test cases

Implementation Phase

During the implementation phase, the system and design specifications are being created. This part of the project requires the most resources and time. The actual needs vary as the project moves toward completion. Certain skills needed early in the plan won't be needed later and vice versa. These dependencies and resource management areas are worked out in the design phase.

  • Project managers— Manage the implementation teams

  • Hardware support engineers— Handle any and all hardware support issues

  • WebLogic Server administrators— Install, configure, and administer the WLS software environment

  • Security experts— Makes sure that data is safe and not vulnerable to attack

  • Java architects— Manage any design changes made to the software during implementation

  • JSP and servlet developers— Perform the work or building the application

  • JDBC developers— Create the calls to databases on the Java side

  • Advanced Java developers— Create the more advanced J2EE technologies

  • Database developers— Create the database applications and write advanced SQL queries

  • Database administrators— Administer the database

  • Legacy system developers— Create any interfaces needed to connect to the legacy systems

  • Legacy system functional analysts— Identify what information must be pushed and pulled from the old systems

  • Testers— Verify that the newly built application works, using automatic or manual tests

Administration Phase

During the administration phase, all the work on the new application has been completed. It's now the responsibility of the various administrators to keep it running smoothly. This task requires rebooting servers, evaluating performance, combating attacks on the system, and handling any problems that inhibit the system from working properly.

  • Hardware support— Correct any problems with hardware

  • Operating system support— Administer the various operating systems

  • WebLogic Server administrator— Handle starting and stopping the WLS servers and checking performance settings to allow for maximum transactions

  • Web server administrator— Administers the server if a separate server is used for static HTML

  • Security experts— Makes sure that data is secure and there are no attacks on the systems

  • Database administrator— Makes sure that database is working properly and analyzes system for performance tuning

  • Backup and archiving specialist— Manages the data backup and archiving to persist data in case of a system crash

  • Help desk— Reports any problems end users are having with the developed application

Maintenance Phase

An implemented system will inevitably need maintenance. During the maintenance phase, service packs are installed, bugs fixed, and applications updated.

  • Hardware support— Hardware is upgraded and checked for problems

  • Operating system support— Operating systems are upgraded and support patches installed

  • Java developers— Any reported bugs are fixed

  • Database developers— System patches are applied and upgrades performed

  • Testers— Changes are tested and bugs reported

    [ Team LiB ] Previous Section Next Section