51
T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio Software Business and Engineering Institute (SoberIT)

T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Embed Size (px)

DESCRIPTION

T-76.4115/5115 Software Development Project I/II Software Development Process Framework. Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio Software Business and Engineering Institute (SoberIT). Course Arrangements. Mentors assigned on Thursday - PowerPoint PPT Presentation

Citation preview

Page 1: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

T-76.4115/5115Software Development Project I/II

Software Development Process Framework

Jari VanhanenOhjelmistoliiketoiminnan ja –tuotannon laboratorio

Software Business and Engineering Institute (SoberIT)

Page 2: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Course Arrangements

Mentors assigned on Thursday TikiWiki and Bugzilla accounts will be created today A218 Windows accounts will be created on Friday Contracts

small modifications are coming soon English versions

Deadline for the Iteration plan 2.10. 11:00 by e-mail to customer & mentor

Page 3: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 4: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

T-76.4115 Software Process Framework

Establishes the ground rules for making software

Enforces certain good work practices and crucial documents allows lots of freedom (and responsibility) for customization

Improving productivity

Minimizing risks requires some overhead higher productivity in the long run

Process documentation http://www.soberit.hut.fi/T-76.4115/06-07/instructions/process.html

Page 5: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Process Should Match the Context

Challenges in the typical T-76.4115 context no existing, common development culture within the team physical and temporal distribution project is done for an external customer software will be maintained by other people

Process is never ready continuous improvement

Creating the process (work practices, tools etc.) is part of project planning.

Have you already found other challenges?

Page 6: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Control Variables

Quality ”fixed” high quality recommended some alleviations to carefully selected quality aspects are allowed if that is

beneficial for the customer

Calendar time fixed project schedule defined by the course major control points such as iteration demos fixed

Effort fixed 150h/person (+2*20h if taking T-76.5158)

Scope flexible adjusted depending on the groups’ skills and knowledge of the problem domain

Page 7: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Effort Distribution in old T-76.4115 Projects

0,00 %

5,00 %

10,00 %

15,00 %

20,00 %

25,00 %

30,00 %

35,00 %

Page 8: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iterative Development

Why iterations? regular control points force packaging the results enable giving feedback

Page 9: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iteration Planning

Group and customer plan each iteration’s goals and deliverables goals are higher level ideas of what is expected from the iteration deliverables include software units and documents to be created/updated

Customer selects deliverables based on customer value group’s effort allocation for the iteration group’s rough effort estimates for implementing sw units group’s briefing about architectural impact

Group concretizes goals and deliverables into tasks re-planning, if task effort estimates and allocated resources differ largely

Page 10: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iteration Demo

Arranged in the end of each iteration for all project stakeholders

Agenda project status (10-15 min) iteration’s results including sw demo (20-25 min) discussion

Tip! Arrange the next iteration planning meeting right after the iteration demo.

Page 11: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Schedule

Remember the DEADLINES!

Page 12: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 13: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Management

Planning project planning, iteration planning

Tracking noticing any deviations to the plans

Steering reacting to the deviations

Page 14: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Planning

Planning is more important than documenting its results

but documenting is needed in this kind of a project

Project plan ”contract” with the customer basis for tracking and steering

keep up-to-date

Content of the project plan1. Introduction2. Stakeholders and staffing3. Goals4. Resources and budget5. Work practices and tools6. Phasing7. Risk log

Page 15: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Identify Stakeholders and Staffing External

customer, tech. advisor, 3rd parties, mentor, …

Internal project group and its roles sub groups?

Show the relationships between the stakeholders

Contact information emails, phones, web pages, wiki etc.

Page 16: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Goals

Defining goals identify

consider all stakeholders resolve conflicts

everyone’s commitment manage expectations

define verification criteria objective vs. subjective

prioritize

Goals and priorities change keep them up-to-date and document changes (and reasons)

Project will be evaluated against these goals

Define personal learning goals separately!

Page 17: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Resources and Budget

Personnel 150 or 190 hours/person effort distribution between iterations

how many hours per person depends on roles, vacations etc.

planning allocated vs. max. available vs. required?

Materials hardware and software resources other materials (books etc.)

Budget theoretical costs for the project if done in the “real world”

Page 18: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Work Practices and Tools

Analyze the major challenges in the project context

Plan which practices and tools you will use and how

Document the practices shortly all stakeholders need to know what to do

Make sure the practices are deployed and the usage is visible to the mentor

Continuous process improvement reflection workshop in the end of iterations analyze practices in the final report

Increasing visibility

Use low overhead approaches!

•build trust with the mentor

•show work products generated by the use of practices, e.g. code review notes

•invite the mentor to the group’s reflection workshops

•invite the mentor to work sessions

Page 19: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Phasing

Iterations fixed

Add important events to the general project schedule internal milestones

Plan tentative goals and deliverables for each iterations with the customer

Tentative plans are refined during iteration planning make PP iteration plan immediately

Page 20: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Tracking

Communication Time tracking Documenting Risk management Process improvement Iteration demo

Page 21: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Communication

Plan efficient communication channels between all stakeholders physical distribution

Who needs what information and when? provide enough information, but avoid information overflow

For example regular meetings e-mail lists discussion forum status reports project metrics project web pages

documents, source code and executable program

TikiWiki accounts will be created tomorrow.

Page 22: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Time Tracking Purpose

visibility for tracking project progress managing resource usage (fixed budget) learning to estimate better

Plan how and when some time reporting tool, Excel, … personal reporting daily

reliability weekly summaries

on project’s web page

Page 23: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Documenting Required project documents

project plan including QA plan and description

of work practices requirements document technical specification* user’s manual* QA reports progress reports (a slide set for the

iteration demos) final report

Course provides some document templates

their use is mandatory, but irrelevant topics can be omitted

Documentation practices use a change log clear and compact form once and only once

avoid duplication use links/references give IDs to items (reqs, tests, …)

spelling checker printability

Deliver documents to the course by iteration’s last Monday 11:00 am

Page 24: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Risk Management

Risk identification involve all stakeholders

Risk analyzing for the most important risks analyze

probability, severity effects controlling actions

document risks to the risk log

Risk controlling implement controlling actions to avoid or reduce risks

Risk monitoring check the risk situation and status of controlling actions update the risk log in the end PP and I1 iterations

Page 25: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Management - Hints Arrange a kick-off

good team spirit is crucial get to know each other discuss roles and responsibilities find out about each other’s

commitments and personal interests

Test unfamiliar technologies and tools early to minimize risks

Start work immediately in the beginning of iterations

more calendar time to react to unexpected situations

Try one-day group sessions problems can be addressed

immediately prepare well (e.g. hw+sw)

Spy on others to get ideas Projects from previous years/this year give a reference, if you copy some

ideas/materials

Page 26: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Project Management – Mandatory Practices

Page 27: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 28: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Software Process – Requirements Engineering

Making sure that the project’s results solve the customer’s problem

Page 29: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

ElicitationFind out using any possible means:

•business goals•main domain concepts

•user groups•requirements

AnalysisAnalyze the gathered information.

List identified requirements shortly.

Estimate roughly: customer value, effort, architectural impact.

AnalysisRe-estimate the “most important” requirements

Iteration planningChoose iteration’s requirements

RepresentationFind out the details of iteration’s requirements

(Re-)AnalysisRe-estimate required effort. Ensure realism of the plan.

ValidationReview iteration’s requirements. Get customer’s approval.

Implementation, QA, DeliveryCollect feedback from the customer

I1&I2 Iterations PP Iteration

Change m

anagement, status tracking, tracing

In practice many activities are parallel

and iterative!

Requirements Engineering

Page 30: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Other Requirements Engineering Activities

Change management “content” of the requirements content of the iterations

Status tracking requirements’ statuses communicate project progress to the customer

Tracing showing relationships between requirements and other artifacts

e.g. test cases are often derived from requirements

Page 31: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Requirements Engineering - Mandatory Practices

Page 32: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 33: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Quality Assurance

QA means all practices that are used to achieve the required level of quality in the end product evaluate the actual achieved level of quality

Page 34: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Planning QA – Project Level What are the most important quality goals?

e.g. among explicitly stated non-functional requirements, implicit customer expectations, project goals and project risks

for which parts of the system are the goals relevant

What practices are performed in order to achieve the quality goals? testing levels, test types, other QA practices a quality palette (see QA report)

How, when and by whom are the QA practices performed?

What kind of QA materials are produced test cases and their documentation test data, test logs, defects reports, utilities such as scripts etc.

How the QA information is utilized? for evaluation of quality status, for providing feedback to steering the project etc.

What metrics are used to evaluate the quality status in the end of each iteration

Page 35: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Planning QA – Iteration Level

For what functionality, when and by whom are the QA practices performed?

How many times and when certain tests are executed (test rounds)? some tests may be executed continuously (smoke tests) some tests may be executed earlier in the iteration if major bugs are found and fixed, how the system is regression tested?

What hardware, software, test environments and test data are needed?

Page 36: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Performing QA – Functional Testing

Test case based (TCB) testing pre-designed test cases based on requirements must be used for at least 50% of the requirements

Exploratory testing continually adjusted plans re-focusing on the most promising risk areas, following hunches minimize the time spent on documentation session based test management (SBTM)

test session charters may be used instead of TCB for <50% of the requirements

can always complement TCB

Page 37: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Reporting QA

Communicating the project's quality status status of project's quality goals quality status of the different parts of the system characterizing what the status evaluation is based on

QA report used QA practices (quality palette) quality status

quality goals, metrics, quality dashboard

Page 38: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Quality Palette

Which QA practices were used and how much? plan and realization

What was the contribution of each QA practice?

Page 39: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Quality Dashboard

Quick overview of the quality status

Page 40: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Defect Tracking

Ensure that found defects are handled defect = bug, change request, idea, …

Defect tracking process how to report defects how to decide which reports will be implemented and when who tests the implemented changes and when how to provide access to the reports for all project stakeholders.

Defect status evaluate found defects before the end of each iteration resolve at least all major defects list open defects in the end of the project

Page 41: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Peer Testing

Peer groups test each other’s systems in I2 additional collaboration is highly recommended

At least 8 hours of testing effort

Exploratory testing give at least two test session charters

Report findings exploration log defects, ideas, etc. summary

Evaluate the value of the testing done by the peer group

Peer groups will be announced soon!

Page 42: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Quality Assurance – Mandatory Practices

Page 43: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 44: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Design

Implementation

Identify architecturally significant requirements Create architecture description

iteratively first based on the most important requirements different views

Validate architecture does it address the significant requirements

New guidelines coming soon!

Page 45: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Implementation - Mandatory Practices

Page 46: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Contents

Software process framework Project management Requirement engineering Quality assurance Design & implementation Iterations

Page 47: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iterations - Project Planning (PP) Iteration planning

customer is only in a minor role work plan for the next ~3 weeks how are you going to do project

planning and requirements elicitation plan tasks, resources, schedule

Project planning

Requirements engineering business goals, main domain concepts,

user groups list of requirements

name & short description

Deliveries Project plan (except ch. 5.2 QA plan) Requirements document

(except details in ch 6-8) Progress report

Design initial drafts of the system architecture selecting the implementation

technologies

Iteration demo present the project plan and req.

document

Page 48: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iterations - Implementation 1 (I1) QA plan for the whole project and for

the I1 iteration

Iteration planning architectural importance business value

Decide about technical documentation

level of detail, format, …

RE, design, implement, QA, delivery

Deliveries Implemented software

Project plan (especially ch. 5.2 “QA plan” & 6.3 “I1”)

Requirements document Technical specification

(at least the general architecture) Test cases QA report and test log Progress report SEPA diaries (T-76.5158)

Page 49: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Iterations - Implementation 2 (I2) QA plan for the I2 iteration

including utilizing the peer testing

RE, design, implement, QA keep a demo to the customer in the

middle of the iteration (1.2.2006)

Create the User’s manual

Finalize technical documentation

Deliver to the peer testing fix critical defects

Deliver to the customer installation/training?

Evaluate your work and the course

Deliveries Implemented software

Project plan Requirements document Technical specification Test cases Test report and test log

User's manual Final report SEPA diaries (T-76.5633)

Page 50: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Other Practices

In addition to the practices discussed in the process framework you may use any other relevant practices

See for example the Recommended practices for the SEPA topics Heuristic evaluation Usability tests Design patterns Pair programming Refactoring Automated unit tests Test-driven development Test automation on system test level Static methods Meeting practices …

Page 51: T-76.4115/5115 Software Development Project I/II Software Development Process Framework

Experience Exchange Session for Project Managers

Tu 3.10. 16:15 - ~18:00 @ T1 e-mail your questions and proposals for discussion topics by Mo 2.10.

14:00 Teachers will prepare agenda for the session Prepare to present your questions and tell your own experiences and

solutions language Finnish