expectations for the week & the software development lifecycle

15
Expectations for the Week & the Software Development Lifecycle JAMS Workshop Makerere University September 2010

Upload: miles

Post on 25-Feb-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Expectations for the Week & the Software Development Lifecycle. JAMS Workshop Makerere University September 2010. Agenda. Intro & Workshop Schedule Who We Are Software Development Lifecycle Team Roles Overall Lifecycle Tools & Processes. Schedule v1. Schedule v2. Workshop Materials. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Expectations for the Week & the Software Development Lifecycle

Expectations for the Week & the Software Development Lifecycle

JAMS WorkshopMakerere University

September 2010

Page 2: Expectations for the Week & the Software Development Lifecycle

Agenda

• Intro & Workshop Schedule• Who We Are• Software Development Lifecycle– Team Roles– Overall Lifecycle– Tools & Processes

Page 3: Expectations for the Week & the Software Development Lifecycle

Schedule v1Monday Tuesday Wednesday Thursday Friday

9:00 Expectations for the Week, Software Lifecycle

Project Management

AppLab & Community Knowledge Worker

Group Work Session Holiday

9:3010:00 Writing Functional

SpecificationsGroup Work Session Group Work Session

10:3011:00 Test-Driven

Development11:3012:00 Object-Oriented

Design12:301:00 Lunch Break1:30 Facilitator Office

HoursFacilitator Office Hours

Facilitator Office Hours2:00 Introduction to the

group activity2:303:00 Initial group work

session: setup, assign roles, start working

3:304:004:305:00 Team Presentations

(15 x 8 min each)Awards

5:306:006:307:008:00

Page 4: Expectations for the Week & the Software Development Lifecycle

Schedule v2Monday Tuesday Wednesday Thursday Friday

9:00 Expectations for the Week, Software Lifecycle

Project Management

AppLab & Community Knowledge Worker

Holiday / Facilitator Office Hours

Team Presentations (15 x 8 min each)

Awards9:30

10:00 Writing Functional Specifications

Group Work Session Group Work Session

10:30

11:00 Test-Driven Development

11:30

12:00 Object-Oriented Design

12:30

1:00 Lunch Break

1:30 Facilitator Office Hours

Facilitator Office Hours

2: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

Page 5: Expectations for the Week & the Software Development Lifecycle

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)

• All assignments may be submitted via …

Page 6: Expectations for the Week & the Software Development Lifecycle

Who We AreKenny 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

Page 7: Expectations for the Week & the Software Development Lifecycle

Goals for the Week

• Provide insight into how software engineering works in industry

• Hands-on experience with practical elements of software engineering– Functional specifications– Software testing– Coding as a team

• Have fun

Page 8: Expectations for the Week & the Software Development Lifecycle
Page 9: Expectations for the Week & the Software Development Lifecycle

Software Development RolesDeveloper• Responsible for designing and

implementing features• Implements basic test coverage

Program Manager• Writes functional specifications to

bridge between 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 and

monitoring product code

Business Stakeholder• Provides business requirements

Release Manager• Drives the project schedule

Software Architect• Proposes (and sometimes

implements) big architectural changes

• Reviews and advises on design

Customer• The consumer of the software• The most important person

Page 10: Expectations for the Week & the Software Development Lifecycle

Software Development Lifecycle

Gather Requirements

Design the System

Implement the System

Quality Assurance & Documentation

Operate & Maintain

Page 11: Expectations for the Week & the Software Development Lifecycle

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

• Certain tools and techniques can help– Source control– Bug database– Scheduling tool– Document repository– Project management

Page 12: Expectations for the Week & the Software Development Lifecycle

Source Control

• 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

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()

Page 13: Expectations for the Week & the Software Development Lifecycle

Bug Database

Bug Database

Page 14: Expectations for the Week & the Software Development Lifecycle

Document Repository

Page 15: Expectations for the Week & the Software Development Lifecycle

Coming Attractions

Gather Requirements

Design the System

Implement the System

Quality Assurance & Documentation

Operate & Maintain

Session 2: Writing a Functional Spec

Session 4: Coding Guidelines & Object-Oriented Design

Session 3: Software Testing & Test-Driven Development

Session 6: Project Management