t-76.4115/5115 software development project i/ii software development process framework jari...

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

Upload: donna-maxwell

Post on 28-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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 Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Course Arrangements

Contracts all groups members sign together one copy and send it to the teacher

Jari Vanhanen, SoberIT, PL 9210, 02015 TKK encircle correct IPR and NDA options include project manager’s home address DL as soon as possible

e.g. companies may ask for NDAs

Mentors and peer groups will be assigned later this week see “Projects”-page

Tools MSDN AA

accounts created Magic Draw UML Tool

instructions e-mailed to project managers soon TKK Wiki

if needed, email group name to t764115 ## soberit.hut.fi

Page 3: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Contents

T-76.4115 Software process framework Project management Requirements engineering Quality assurance Design & implementation Iterations

Page 4: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Process Should Match the Context

Typical challenges in the T-76.4115 context no existing, common development culture within the team varying level of experience between developers 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 and improving the process (work practices, tools etc.) is part of project management.

Have you already found other challenges?

Page 5: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

T-76.4115 Software Process Framework

Helps the groups define how they are going to do the work

Includes educational aspects trying certain practices in a real context

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

Minimizing risks requires some “overhead”

Page 6: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

T-76.4115 Software Process Framework

Instructions and templates Mandatory and recommended practices

mandatory ones written as “group must do xxx” and summarized in Overview Chapter 3

Process documentation http://www.soberit.hut.fi/T-76.4115/09-10/instructions/index_process.html

Check the materials of SoberIT’s SE courses.

Page 7: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iterative Development

Why iterations? regular control points force packaging the results

remember testing and delivery! enable giving feedback

If you want shorter iterations, split a course’s iteration into two

iterations.

Page 8: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iterations

Page 9: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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

Iteration planning meeting customer selects and prioritizes what is implemented based on

business importance group’s rough effort estimates for implementing sw units group’s effort allocation for the iteration group’s estimates about architectural impact

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

Deadline for the PP Iteration plan Fr 2.10. 13:00

•by e-mail to customer, mentor and teacher

Page 10: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iteration Demo

Arranged in the end of each iteration for all project stakeholders

Agenda = progress report slideshow project status (10-15 min)

iteration goals project metrics

iteration’s results including a sw demo (20-25 min) experiences of used work practices (3 min) discussion

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

Iteration demo schedule preferences now!

Tu-We 20.-21.10. 8:00-18:00customer + mentor + group members

Page 11: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Contents

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

Page 12: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Project Management

Planning how are we going to do the work

Tracking noticing any deviations to the plans

Steering reacting to the deviations

Page 13: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Identify Stakeholders and Staffing External

customer, tech. advisor, mentor, 3rd parties

Internal project group and its roles sub groups?

Show the relationships between the stakeholders e.g. organizational chart

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

You can rotate or change the assigned roles within the group.

Page 14: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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’s results will be evaluated against project’s goals

Define personal learning goals separately!

Page 15: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Resources and Budget

Personnel 27h/credit/person - ~15h spent before the project

-> 120-200h for project work + educational aspects effort allocation per iteration

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 16: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Work Practices and Tools

Plan which practices and tools you will use and how analyze the major challenges in the context of your project

Document the practices shortly all stakeholders need to know how work is done

Continuous process improvement reflection workshop in the end of iterations

present action points in progress report analyze practices in the final report

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

Increasing visibility to mentor

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 17: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Phasing

Iteration dates fixed

Add important events to the general project schedule internal milestones

Plan tentative goals and deliverables for all iterations with the customer

Tentative plan is refined during iteration planning make PP iteration plan immediately

Page 18: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Communication

Plan efficient communication channels between all stakeholders

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

How to ensure that people have received important information?

For example project Wiki/web pages

documents, online demos regular meetings Skype conference calls e-mail lists discussion forum status reports/project metrics

Page 19: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Time Tracking Purpose

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

Plan how and when some time reporting tool,

GoogleDocs, … personal reporting daily

reliability Weekly summaries on a web page

Page 20: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

T-76.4115 Typical Effort Distribution

design; 8

documenting; 17

infrastructure; 4

meetings; 17programming; 32

proj. management; 8

studying; 8

testing; 6

Page 21: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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

Document delivery send URL to 1)customer, 2)mentor and

3)teacher www-page must contain separate

documents and a zip-package DL is iteration’s last Monday 13:00

Page 22: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Risk Management Risk identification

involve all stakeholders use brainstorming and lists of typical risks

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 23: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Content of T-76.4115 Project Plan

1. Introduction2. Stakeholders and staffing3. Goals4. Resources and budget5. Work practices and tools6. Phasing7. Risk log

planning is more important than documenting its results, but

documenting is also needed in this kind of a project

•”contract” with the customer

•basis for tracking and steering

Page 24: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Project Management - Hints Arrange a project kick-off

get to know the team members find out about each other’s

commitments and personal interests discuss roles and responsibilities good team spirit is crucial

Start work immediately in the beginning of iterations

more calendar time to react to unexpected situations

Test unfamiliar technologies and tools early to minimize risks

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 25: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Project Management – Mandatory Practices

Page 26: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Contents

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

Page 27: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Requirements Engineering

Ensure that the project’s results solve the customer’s problem

Requirement types functional requirement

a required function or service of the system from the users’ point of view typically documented as use cases

non-functional requirement a required property, e.g. usability, performance, reliability, security, safety

constraint a limitation to the choices available to developers for implementing the

system, e.g., “the system must run on Windows”

Page 28: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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 29: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Other Requirements Engineering Activities

Change management requirements (refine, add, delete) 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 30: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Requirements Engineering - Mandatory Practices

Page 31: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Contents

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

Page 32: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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 33: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Planning QA Identify the most important quality goals

among non-functional requirements, implicit customer expectations, project goals and risks for which parts of the system are the goals relevant

Choose QA practices based on the quality goals testing levels, test types, other QA practices mandatory QA practices

test case based functional testing, unit testing, coding standard, code review

Plan when the QA practices are performed plan concrete QA tasks during iteration planning

Plan what QA materials are needed test cases, test data, test logs, defects reports, tools, guidelines

Plan the utilization of QA information for evaluation of quality status, for convincing the customer

Page 34: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Functional Testing

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

Exploratory testing (ET) not defined in advance continually adjusted plans and re-focusing on the most promising risk areas minimize the time spent on documenting

Managing ET - Session Based Test Management (SBTM) 45-120 minutes test session charters exploration log

Page 35: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Reporting QA - Quality Palette

Which QA practices were planned and/or used? What was the contribution of each QA practice?

Page 36: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Reporting QA - Quality Status

Quality dashboard - quick overview of the quality status of the system

Relevant quality metrics e.g. defect counts, code metrics

Status of quality goals

Page 37: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Defect Tracking

Defect = bug, change request, idea, …

Ensure that found defects are handled

Defect tracking process how to report defects

including all stakeholders how to decide which reports will be implemented and when who tests the implemented changes and when possible links to requirements change management process

Defect status evaluate found defects before the end of each iteration list open defects in the end of the project

Page 38: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Peer Testing

Peer groups test each other’s systems in I2 any 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

Page 39: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Quality Assurance – Mandatory Practices

Page 40: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Contents

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

Page 41: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Design

Architecture design identify architecturally significant requirements create architecture description

based on the most important requirements at least functional and development views

validate architecture does it address the significant requirements

Construction design class diagrams error handling database schema definitions …

Documenting design negotiate with the customer

Page 42: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Software Process – Design and Implementation

Page 43: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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 Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iterations - Project Planning (PP) Iteration planning

work plan for the next ~3 weeks plan for project planning and

requirements elicitation tasks, resources, schedule

customer in a minor role compared to later iterations

Project planning goals, resources, work practices

Adoption of all relevant practices communication time tracking requirements engineering …

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

(except details in ch. 6-8) Progress report

Requirements engineering business goals, main domain concepts,

user groups list of requirements

name & short description

Design initial drafts of the system architecture select the implementation technologies

technology prototypes?

Iteration demo content of the project plan and

requirements document project status

Page 45: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iterations - Implementation 1 (I1) QA plan

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

Page 46: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Iterations - Implementation 2 (I2) Iteration planning

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

middle of the iteration

Create the User’s manual

Finalize technical documentation

Delivery to the peer testing fix critical defects

Delivery to the customer installation/training?

Evaluate your work and the course

Deliveries Implemented software

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

User's manual Final report

Page 47: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

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 -document Heuristic evaluation Usability tests Design patterns Pair programming Refactoring Automated unit tests Test-driven development Test automation on system test level …

http://www.soberit.hut.fi/T-76.4115/09-10/instructions/recommended_practices.html

Page 48: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Experience Exchange Sessions (EESs)

Innopoli2, SoberIT seminar hall, 16:15 - 18

Tu 6.10. Project managers Tu 13.10. QA managers (focus on RE and usability) Tu 3.11. QA managers (focus on QA) Tu 10.11. Architects Tu 17.11. Project managers Tu 24.11. Usability engineers

Send to teacher your proposals for discussion by previous day 16:00 teacher prepares agenda for the session

Discussion language is Finnish

Two persons per group may participate

Page 49: T-76.4115/5115 Software Development Project I/II Software Development Process Framework Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio

Next Steps

Arrange the first meetings with the whole group,

customer, mentor

Start project planning roles and responsibilities urgent work practices

communication time tracking

iteration plan DL Fr 2.10. 13:00

Start requirements elicitation

Sign the contract with TKK