On 9/15/202X, the DH Team held a meeting with Karen Mullen, the lead for the DH needs assessment effort to discuss questions the team had about the DH Customer Need Statement and the DH High-Level Requirements Definition (HLRD), prepared by the HomeOwner Marketing Division. After the meeting, the HLRD was finalized.
In mid-September 202X, a two-day workshop meeting was held at the conference room of the office of the DigitalHomeOwner Division of HomeOwner to launch the DigitalHome project. In attendance was the Director of the DigitalHomeOwner Division, Jose Ortiz, Mr. Ortiz’s Admin Assistant, Stella Washington, the DH development team leader, Disha Chandra, and the other team members: Michel Jackson, Yao Wang, Georgia Magee, and Massood Zewail. Jose and Disha had met earlier and decided on the agenda for the meeting and developed a Project Launch Process (see Table 2.1). Part of the launch had already been completed: team roles and responsibilities had been assigned; and the team had studied the Need Statement and the HLRD and had met with a HomeOwner marketing representative to better understand what needed to be accomplished (see Chapter 1)
Table 2.1 DigitalHome Launch Process Script – 9/16/202X
Purpose
Guide the DigitalHome project launch
Entry Criteria
DH Customer Need Statement
DH HLRD
Activity
Description
Team Formation
Determine and assign team roles and responsibilities
Decide on individual and team goals
Establish communication and reporting methods and protocols
Determine support infrastructure (staff, tools, and facilities)
Establish the DH Development Process
Determine initial project budget
Need Analysis
Study and analyze the Need Statement and HLRD
Hold meeting with HomeOwner marketing representatives to assist in needs analysis
Write Needs Analysis Report
Conceptual Design
Develop a DigitalHome Context Diagram
Develop a DigitalHome Conceptual Design
Development Strategy
Determine criteria for a development strategy
Create Development Strategy
Determine the development process
Determine the number of development cycles
Allocate development modules in each cycle
Estimate module size and development effort for each cycle
Postmortem
Perform postmortem analysis of project launch activities
At the completion of the Software Process Fundamentals MiniTutorial, Massood approached Jose during one of the breaks and discussed the possibility of using an agile process (such as Scrum) for the development of the prototype. Jose had recently heard about the Scrum process and its adaptation in mainly software industries but was not really familiar with the process and its advantages and disadvantages. Since Massood was a new hire and the youngest member of the team, Jose did not want to ignore his suggestion. He was also intrigued by the idea that the most junior member of the team had taken initiative and proposed an alternate approach. Therefore, Jose told Massood that he would like him to prepare and deliver several Scrum MiniTutorials to educate the team about Scrum. This made Massood very happy, because he realized HomeOwner valued the opinion of every member of the team.
NOTE: The collection of the Scrum process MiniTutorials can be found in Chapter 10.
On the second day of the DH Launch Workshop, Michel Jackson, the DH System Analyst, led the discussion of the DH Conceptual Design. Michel explained that they would be developing a Context Diagram for the DH system and a Conceptual Design, presenting a high-level view of the principle components for the DH system.
Massood Zewail said he understood the role of the context diagram (a view of how the system as a whole interacts with external entities) and why it was developed early in the process, but he did not understand why we would be doing design work prior to specifying the DH requirements. He was taught in his master’s program that developers should resist thinking about the design before the requirements are established – “don’t try to solve the problem before you understand it”.
Michel agreed that they should not try to design a solution before the DH requirements had been analyzed and specified. However, the “Conceptual” Design would not be an actual solution, but a rather a pre-planning document that would make it easier for the team to establish a development strategy and prepare a detailed project plan. The Conceptual Design would be like a “throwaway” user interface prototype: a tool used to show a user what the system looks like in order to elicit requirements, but thrown away once the requirements are discovered. Another advantage of the conceptual design is the fact that it will be used for project size and effort estimation.
Georgia Magee chimed in with a comment about her work at the Volcanic Power Company, where she was a member of an XP team. Georgia described the “Planning Game” method they used, early on the project, to develop a strategy for planning the project iterations; she thought was very helpful and agreed with Michel’s comments. Yao Wang added that he had worked on team that used the UP process, and in the Inception phase they developed a “candidate architecture”, which had seemed similar to the Conceptual Design idea.
Massood said “okay, I see the rationale for a conceptual design - thanks”.
In the next two hours, the DH Team developed the Context Diagram in Figure 2.10 and the Conceptual Diagram in Figure 2.11. After this, Disha Chandra led the team in generating a DH Development Strategy. Disha explained that in the next phase of the project, the Planning Phase, they would develop a detailed list of tasks, estimate the amount of effort required of each task, scheduled the tasks, and assign lead responsibility. She also pointed out that their development process (Table 2.2) includes multiple construction increments, which raises questions about what will be developed in each increment and how long each increment will take to complete.
Figure 2.10 DH context diagram.
Figure 2.11 DH conceptual design.
Disha stated that the team needs a strategy for development to do project planning. That is, a strategy that sets down how many increments will be developed, what will be constructed in each increment, and provides estimates of the size and effort required for each increment.
So, how do we start? Disha asserted that the central issue is what criteria will be used to determine the Development Strategy:
■ Should the first increment be a minimum subset of the DH functionality? This could provide the opportunity for the team to experience some early success, avoiding the risk of failure by taking on too much.
■ Should the first increment provide a base for DH construction that can easily be enhanced in future increments, making integration of components easier, perhaps a walking skeleton?
■ Should the team start with the most difficult functionality, solving the most difficult problems in the beginning, allowing time during subsequent increments to correct errors and to enhance the initial solution?