Development Process

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.

Who Does What During Development?

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:

  • Product Management Product managers are responsible for managing customer expectations. They also continue plans for channeling product information to customers and external stakeholders. Product managers also prepare customers for alpha and beta releases.
  • Program Management Program managers facilitate communication between all the project teams, and coordinate the interim milestone releases across the entire team. Program managers are also responsible for several of the phases' deliverables, such as revisions of the Functional Specification, Master Project Plan, Master Project Schedule, and Master Risk Assessment Document.
  • Development Developers create all code necessary to implement all product features. They also provide initial functional testing of code and features. The Development team is responsible for creating the baselined code for the interim alpha and beta releases as well as the baselined scope complete product release.
  • User Education The User Education team conducts initial product usability testing and begins user performance testing. This team coordinates the user community for alpha and beta product releases. User Education team members additionally create initial user performance materials to support the product, such as help wizards, online training materials, and formal user training courses. The User Education team is ultimately responsible for the Developing Phase's baselined user and support documentation deliverables.
  • Testing Testers create detailed test specifications, plans, cases, data, and scripts to conduct initial functional testing. These testing elements are executed during the Developing Phase to validate the interim internal, alpha, and beta releases. Testing's primary role is identifying and tracking bugs as the team moves toward the scope complete product release. The Testing team is also responsible for documenting the product testing process, from start to finish.
  • Logistics Management Logistics managers provide internal team operations support. They also create operations support materials and documentation, as well as deploy and support initial product alpha and beta releases.

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.

Step #1: Analysis and Rationalization

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.

Step #2: Implementation

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.

Step #3: Validation

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.

Microsoft Corporation - Analyzing Requirements and Defining Solutions Architecture. MCSD Training Kit
Microsoft Corporation - Analyzing Requirements and Defining Solutions Architecture. MCSD Training Kit
Year: 1999
Pages: 182 © 2008-2017.
If you may any questions please contact us: