Professional Documents
Culture Documents
1 Introduction To Software Dev Lifecycle
1 Introduction To Software Dev Lifecycle
Agenda
Intro & Workshop Schedule Who We Are Software Development Lifecycle
Team Roles Overall Lifecycle Tools & Techniques
Schedule v1
Monday
9:00
Tuesday
Project Management Group Work Session
Wednesday
AppLab & Community Knowledge Worker Group Work Session
Thursday
Group Work Session
Friday
Holiday
9:30 10:00 10:30 11:00 11:30 12:00 12:30 1:00 1:30 2:00 2:30 3:00 3:30 4:00 4:30 5:00 5:30 6:00 6:30 7:00 8:00
Expectations for the Week, Software Lifecycle Writing Functional Specifications Test-Driven Development Object-Oriented Design Lunch Break Introduction to the group activity Initial group work session: setup, assign roles, start working
Schedule v2
Monday
9:00
Tuesday
Project Management Group Work Session
Wednesday
AppLab & Community Knowledge Worker Group Work Session
Thursday
Holiday / Facilitator Office Hours
Friday
Team Presentations (15 x 8 min each) Awards
9:30 10:00
Expectations for the Week, Software Lifecycle Writing Functional Specifications Test-Driven Development Object-Oriented Design Lunch Break Introduction to the group activity Initial group work session: setup, assign roles, start working
Workshop Materials
All materials we use for the workshop are available at http://lawolf.net/jams
PowerPoint slides Templates (test plan, functional spec, team presentation) Attendee packet (schedule, project description & evaluation criteria, sample functional spec, sample test plan)
Who We Are
Kenny Wolf
Software Architect @ Microsoft 8 years on .NET Framework 5 years on Mac Office Plays drums & juggles
Lauren Lavoie
Program Manager @ Microsoft 4 years on Exchange 3 years on Windows Presentation Foundation Likes yoga & photography
Finishing a year-long sabbatical volunteering on tech projects in Asia and Africa Spent the summer volunteering for Grameen Foundation in Kampala, on the Community Knowledge Worker project
Have fun
Business Stakeholder
Provides business requirements
Program Manager
Writes functional specifications to bridge between business and technical teams Keeps the engineers unblocked
Release Manager
Drives the project schedule
Test Engineer
Writes test plans and test cases Implements test cases Advocates for the customer
Software Architect
Proposes (and sometimes implements) big architectural changes Reviews and advises on design
Operations Manager
Responsible for deploying and monitoring product code
Customer
The consumer of the software The most important person
Software as a Team
More people can get more done but
Can introduce extra dependencies Require more communication overhead Can duplicate each other s work Can build incompatible pieces Source control Bug database Scheduling tool Document repository Code Reviews Project management
Source Control
A source control system manages changes to text and binary files. Changes are identified by a "revision number , and associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.
Critical for code stability and maintenance Allows developers to collaborate If necessary, allows the system to rollback to an earlier date Verbs: Edit, Sync, Submit
Submit CalculateScore()
Bug Database
A bug database tracks outstanding known work remaining in a project. This includes new features, code defects, documentation, and test cases. Database front-end implements a workflow around creating, assigning, and resolving issues.
(Re)Open Work Open Work Item Item assign to to & & assign developer No Yes
Matches spec?
Address Feedback
Signoff?
No Yes
Verify change
Bug Database
A bug database tracks outstanding known work remaining in a project. This includes new features, code defects, documentation, and test cases. Database front-end implements a workflow around creating, assigning, and resolving issues.
(Re)Open bug & Open bug & assign to developer No Yes
Fixed?
Investigate bug
Fix bug
Address Feedback
Can repro?
No
Close Bug
Verify resolution
Code Review
A process by which code is reviewed for correctness before being committed to source control Goal is to save time by catching defects before they affect others and while the details are fresh in the developer s mind
Project Management
Overarching set of techniques that we will discuss in detail tomorrow morning Tools like Microsoft Project and Excel can help
Coming Attractions
Session 6: Project Management
Gather Requirements