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 managersOrganize the project
Hardware and software scalability designersPerform analysis for the hardware and software needed
Security expertsHelp design an application that resists illicit activity
Java architectsWork with the senior Java programmers to design the workflow and technical design to be implemented
Senior Java programmersTechnical reference for the Java architects during the design
Legacy functional analystsProvide insight to the team about legacy requirements
Database designersWork with the design team to lay out a proper database schema
GUI designersWork with end users and functional analysts to design the screens and layouts
Graphic arts developersWork with designers to create images and buttons for site
QA engineersPrepare 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 managersManage the implementation teams
Hardware support engineersHandle any and all hardware support issues
WebLogic Server administratorsInstall, configure, and administer the WLS software environment
Security expertsMakes sure that data is safe and not vulnerable to attack
Java architectsManage any design changes made to the software during implementation
JSP and servlet developersPerform the work or building the application
JDBC developersCreate the calls to databases on the Java side
Advanced Java developersCreate the more advanced J2EE technologies
Database developersCreate the database applications and write advanced SQL queries
Database administratorsAdminister the database
Legacy system developersCreate any interfaces needed to connect to the legacy systems
Legacy system functional analystsIdentify what information must be pushed and pulled from the old systems
TestersVerify 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 supportCorrect any problems with hardware
Operating system supportAdminister the various operating systems
WebLogic Server administratorHandle starting and stopping the WLS servers and checking performance settings to allow for maximum transactions
Web server administratorAdministers the server if a separate server is used for static HTML
Security expertsMakes sure that data is secure and there are no attacks on the systems
Database administratorMakes sure that database is working properly and analyzes system for performance tuning
Backup and archiving specialistManages the data backup and archiving to persist data in case of a system crash
Help deskReports 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 supportHardware is upgraded and checked for problems
Operating system supportOperating systems are upgraded and support patches installed
Java developersAny reported bugs are fixed
Database developersSystem patches are applied and upgrades performed
TestersChanges are tested and bugs reported