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
|