Within the MSF Development Process, the true significance of the Developing Phase is the project team and stakeholders' agreement that the planned feature set as implemented meets all expectations. Additionally, stakeholders and project team members must agree that all features included in the product have been completed, and that the product as a whole has been developed appropriately.
During the Developing Phase, all team members should focus on their particular roles as well as continue to identify and manage risks. Each role has primary responsibilities that combine to provide the necessary project coverage to successfully complete the Developing Phase. These responsibilities are as follows:
Several general steps should take place throughout the Developing Phase. As mentioned with the Envisioning Phase steps, these steps are not intended as imperatives, but merely guidelines. The step names are for simplification only, and can be modified for a team's specific project.
At this point in the development process, the team should have identified a solid plan of action with few variables. Thus, the Developing Phase should not necessitate a significant amount of additional research; the phase should primarily begin with the analysis of the current application design.
Within the Development team, the design and project schedule should be analyzed to identify specific resources to be applied to the coding process. By looking at feature buckets, performed as part of the Planning Phase's design process, the Development team can identify coding teams responsible for particular product features. In determining the coding teams, the Development team can also consider the packaging of the application into service layers (also part of the design process). Coding teams can be created based on differing skills required by languages and tools to implement specific code within the user, business, and data access service layers.
The Testing team should examine the product design to determine who will conduct the types of tests, and further review the use cases to verify that the proper usability testing will occur. The Testing team should have identified an exhaustive set of test scenarios based on use cases, physical design, and non-functional requirements, such as application and user performance metrics during the planning phase, and now must determine how to execute these test scenarios.
Finally, as discussed later in this chapter, the project team will release multiple versions of the product during the Developing Phase. With each release, feedback from users, as well as the Testing and Logistics Management teams, must be analyzed to determine the current product release's successes and failures. Any issues and bugs existing in the product should be pinpointed for causes and product locations, and then be resolved appropriately.
The next step in the Developing Phase is for the source code development team to implement the application design. However, there are other artifacts (or documents) that must be delivered at the Scope Complete Milestone. The User Education team must create user- and application-support artifacts, which must exist to ensure a successful product release. Although many teams focus solely on traditional user and installation documents, the User Education team can focus on online help and tutorials as well as program wizards to improve user and support experiences.
Validation is a full team effort; however, throughout the Developing Phase validation is particularly the responsibility of the Development and Testing teams. The ongoing usability testing, performance validation, bug tracking, and zero-defect quality mindset all drive the validation step.
Because multiple product releases occur throughout the Developing Phase, there are many instances in which at least a portion of the team will focus on validating the current deliverables. For efficiency in validating the application code, the Development and Testing teams should automate as much of the testing process as possible.