1 introduction to software dev lifecycle(2)
TRANSCRIPT
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
1/16
Expectations for the Week & the
Software Development Lifecycle
JAMS Workshop
Makerere UniversitySeptember 2010
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
2/16
Agenda
Intro & Workshop Schedule
Who We Are
Software Development Lifecycle Team Roles
Overall Lifecycle
Tools & Techniques
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
3/16
Schedule v1Monday Tuesday Wednesday Thursday Friday
9:00 Expectations for theWeek, Software
Lifecycle
ProjectManagement
AppLab &Community
Knowledge Worker
Group Work Session Holiday
9:30
10:00 Writing Functional
Specifications
Group Work Session Group Work Session
10:30
11:00 Test-Driven
Development11:3012:00 Object-Oriented
Design12:301:00 Lunch Break1:30 Facilitator Office
Hours
Facilitator Office
Hours
Facilitator Office
Hours2:00 Introduction to the
group activity2:30
3:00 Initial group work
session: setup,
assign roles, start
working
3:30
4:00
4:30
5:00 Team Presentations
(15 x 8 min each)
Awards
5:30
6:00
6:30
7:00
8:00
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
4/16
Schedule v2Monday Tuesday Wednesday Thursday Friday
9:00 Expectations for theWeek, Software
Lifecycle
ProjectManagement
AppLab &Community
Knowledge Worker
Holiday / FacilitatorOffice Hours
Team Presentations(15 x 8 min each)
Awards
9:30
10:00 Writing Functional
Specifications
Group Work Session Group Work Session
10:30
11:00 Test-Driven
Development11:30
12:00 Object-Oriented
Design12:30
1:00 Lunch Break
1:30 Facilitator Office
Hours
Facilitator Office
Hours2:00 Introduction to the
group activity
2:30
3:00 Initial group work
session: setup,
assign roles, start
working
3:30
4:00
4:30
5:00
5:30
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
5/16
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, sampletest plan)
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
6/16
Who We Are
Kenny Wolf
Software Architect @
Microsoft
8 years on .NETFramework
5 years on Mac Office
Plays drums & juggles
Lauren Lavoie
Program Manager @Microsoft
4 years on Exchange
3 years on WindowsPresentationFoundation
Likes yoga &photography
Finishing a year-long sabbatical volunteeringon tech projects in Asia and Africa
Spent the summer volunteering for GrameenFoundation in Kampala, on the Community
Knowledge Worker project
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
7/16
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
8/16
Software Development RolesDeveloper
Responsible for designing andimplementing features
Implements basic test coverage
Program Manager
Writes functional specifications to bridgebetween business and technical teams
Keeps the engineers unblocked
Test Engineer
Writes test plans and test cases
Implements test cases Advocates for the customer
Operations Manager
Responsible for deploying andmonitoring product code
Business Stakeholder
Provides business requirements
Release Manager
Drives the project schedule
Software Architect
Proposes (and sometimes
implements) big architectural changesReviews and advises on design
Customer
The consumer of the software
The most important person
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
9/16
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
10/16
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
11/16
Software as a Team
More people can get more done but Can introduce extra dependencies
Require more communication overhead
Can duplicate each others work
Can build incompatible pieces
Certain tools and techniques can help Source control
Bug database
Scheduling tool Document repository
Code Reviews
Project management
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
12/16
Source Control
Critical for code stability and maintenance Allows developers to collaborate
If necessary, allows the system to rollback to an earlierdate
Verbs: Edit, Sync, Submit
Source
Control
System
Submit CalculateScore() Submit CalculateScore()
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.
"Sync" (i.e. get
updates)
Merge CalculateScore()
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
13/16
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.
Open Work Item
& assign to
developer
Design &
Implement
Work Item
Get peer code-
review
Sign-off?
Submit to
Source Control
Address
Feedback
No
Resolve and
assign to tester
Yes
Verify change
Matchesspec?
Close Work
Item
Yes
No
(Re)Open Work
Item & assign to
developer
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
14/16
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.
Open bug &
assign to
developer
Investigate
bug
Get peer code-
review
Sign-off?
Submit to
Source Control
Address
Feedback
No
Resolve and
assign to tester
Yes
Verify
resolution
Fixed?
Close Bug
Yes
No
Can
repro?
No
Fix bug
Yes
(Re)Open bug &
assign to
developer
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
15/16
Other Tools and Techniques
Document Repository Multi-user tools like SharePoint and wikis help teams share and
collaborate on specifications and other documents
Code Review
A process by which code is reviewed for correctness beforebeing committed to source control
Goal is to save time by catching defects before they affectothers and while the details are fresh in the developers mind
Project Management
Overarching set of techniques that we will discuss in detailtomorrow morning
Tools like Microsoft Project and Excel can help
-
8/6/2019 1 Introduction to Software Dev Lifecycle(2)
16/16
Coming Attractions
GatherRequirements
Design the System
Implement theSystem
Quality Assurance& Documentation
Operate &Maintain
Session 2: Writing
a Functional Spec
Session 4: Coding
Guidelines & Object-
Oriented Design
Session 3: Software
Testing & Test-DrivenDevelopment
Session 6: ProjectManagement