1 introduction to software dev lifecycle(2)

Upload: masinde-andrew

Post on 07-Apr-2018

217 views

Category:

Documents


0 download

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