280 likes | 381 Views
Welcome!. Management 421 Computer Science 350. Overview. Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme Programming Planning Game Questions/Answers Team meeting. What is the project?. Course Scheduling System
E N D
Welcome! Management 421 Computer Science 350
Overview • Project • Roles • Software Development Process • Extreme Programming • Management/Developer Interaction in Extreme Programming • Planning Game • Questions/Answers • Team meeting
What is the project? • Course Scheduling System • Solve problems associated with generating student schedules. • For example, • Provide online registration • Given a list of classes and a set of constraints, generate a schedule • Given a student name, determine what classes the student needs to fulfill degree requirements • Prevent students from registering for classes for which they lack the prerequisite • All of the above, or none of the above.
What resources do we have? • 24 Students in CS 350 • Programmers/Team Leaders • 9 Students in MGMT 421 • Management Teams • 100 Students at Vietnam National University, Hanoi • User Interface Designers • Software Designers • 2 Instructors • Access to college advisors and administrators (customers)
Roles • Managers • Technical Team Leaders • Programmers • Customers • Database Administrators • Instructors
Managers • Provide direction • What are we going to do? • Based on customer/market needs • Manage personnel • Keep the team productive • Represent Business in the Planning Game • Work with customers to determine needs • Write performance evaluations
Team Leaders • Provide technical leadership • Principal Advisor to management • Provides technical assistance to team members • Makes important design decisions • Represent Development in the Planning Game along with the rest of the development team • Write performance evaluations
Programmers • Represent Development in the Planning Game • Design • Write Program Code • Write Test • Refactor • Write performance evaluations
Customers • Faculty Advisors • Registrar’s Office • Academic Advising • Students
Database Administrator • Provide tools/methods to access mock college database • Generate mock college database • Complete list of this year’s courses/times/dates • Fake student files • Brian Hudson (cs350/ITR)
Instructors • Available consultants • Technical Issues • Management Issues • Upper management • We determine and change the rules • Everyone works for us
Software Development Extreme Programming • Relatively new software development process • Very clearly defined roles for the development team (Development) and the management team (Business) • Extreme Programming Explained – Embrace Change • Kent Beck, 2000 • An incremental software development process • One of a family of “agile” development processes • Less formal specification and design
Frequent Releases • A release is software that is delivered to the customer • In extreme programming (XP), releases are made frequently • Releases consist of working code, but they are usually snapshots of works in progress. • Releases allow the customer to see how the system is developing and react to problems at early stages
Iterations • Releases are generally the result of a set of iterations. • Most of the planning in XP happens between iterations. • Releases are short, so iterations are even shorter. • As often as one per week
The Planning Game • Business and Development play the planning game to determine what to do next.
Stories • Each system feature is broken down to 1 or more user "stories.” • e. g., “a student drops a course,” “a use logs in,” “the system is asked to find a specific course that fits in a given schedule.”
Stories on Index Cards • Stories are written on index cards • just enough to remember what they are. • We don’t want lots of details.
Index card contents • name of the story • date • brief description of story • number of "points" the story requires (cost) • estimates are not in hours, they are in points that have a consistent value • Notes • Anything helpful
Stories are dynamic. • rewritten • broken up into smaller stories if they are too large • combined with other stories if they are too small. • discarded
Three Phases of Planning Game • Phases are cyclical - you will move back and forth between the phases during the course of the game. • Exploration • Determine what new things the system might do. • Commitment • Decide what subset of all possible requirements to purse next • Steering • Update the plan based on what Business and Development learn
Exploration • Determine what new things the system might do. • Moves • Write a story (Business) • Estimate a story (Development) • Split a story
Commitment • Decide what subset of all possible requirements to purse next. • Moves • Business Sorts by Value • Three piles • Essential • Significant business value • Nice to have • Development Sorts by Risk • Three piles • Cost estimates can be precise • Cost estimates can be reasonably precise • Cost estimates cannot be precise
Commitment Moves (continued) • Set Velocity • Development tells Business how fast the team can work. • Choose Scope • Business chooses the set of cards that will be included in the release
Steering • Update the plan based on what Business and Development learn • Steering Moves: • Iteration • Business picks one iteration worth of the mostvaluable stories to be implemented. • Recovery • If Development realizes that it has overestimated its velocity, it can ask Business to specify a smaller subset of the current stories.
Steering Moves (continued) • New Story • If Business realizes it needs a new story,Business removes stories with equivalent estimates and inserts the newstory. • Reestimate • If Development feels that the plan no longer provides an accurate map of development, it can reestimate all of the remaining stories and set velocity again.
Steering Moves (continued) • Velocity • The number of story points we complete each iteration is our "velocity." • Our next iteration will use our current velocity for determining the number of points we can commit to for the next iteration. • Release Planning • Given velocity, Business gets good estimates of the cost of features • Managers use both cost and priority to schedule the development sequence of features.
What Latitude to do we have as a team? • Can we work on another project? • Can we switch team members? • Can teams cooperate? • Can we write a web application? • Can we use a different software development process? • Make specific proposals.
What we are going to do now? • Meet with the customer • Tomorrow 11:30 – 12:45 (Schewel 208) • Learn more about the Planning Game • Friday 2:00-2:50 ( Hobbs 115) • Chapter 3, Martin and Martin • Chapter 15, Kent Beck • Meet with your teams • Arrange for team meetings ASAP • Start playing the planning game • Determine what and when the first release will be (2-3 weeks) • Determine what the first iteration will be (1 week)