<<

http://home.hit.no/~hansha/?page=software_development poke.com - and - The

http://geek Development . Available: Process geek&poke (SDLC) O. Widder. (2013). Hans-Petter Halvorsen IT System

B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ Planning Deployment Maintenance

Testing The Requirements Lifecycle Analysis (SDLC) Implementation

Design 4 5 The Development Process The Development Process involves different phases, e.g.: In this case the overall Requirements are given by the Teacher in the The Requirements may be Assignment. given by the Customer Requirements The details are written by you!

Design The Design phase is important, but make sure you have time left for all the other tasks as Are the Design wrong? Go well) back and correct it! Implementation

Errors? Improve your code and fix the bugs Testing Make sure everything work as expected

When you are finished, you deploy and test the solution Deployment on the Customer Site 6 Functionality Requirements Initial Interface Planning Technology Platform Selection Technical Architecture Support Requirements Installation Project Plan Application Architecure Detailed Specifications System Interface Deployment/ Design Maintenance Design

Deployment Finalize

Acceptance Test Plans Testing

Application Code Development System Testing Testing Implementation System Interface Development

Unit Testing RegressionTesting Integration with existing Apps poke.com - and - http://geek . Available: geek&poke O. Widder. (2013). 8 Software Releases Start

Alpha Release

Beta Releases

RC (Release Candidate)

RTM (Release To Manufacturing)

Finished Note! other terms are also used 9 Software Releases

Before the software is released • Alpha Release(s) (Internal release, not public) • Beta Release(s) (“Developer Preview”, “Consumer Preview”) • RC - Release Candidate(s) (“Release Preview”) • RTM – Release To Manufactoring Maintenance (after the software is released) • Patches (small fixes) • SP - Service Packs (lots of small fixes and pathes bundle together), SP1, SP2, R1, R2, .. … Start Planning next Release 10 Teams and Roles

Customer/Stakeholders • Customer/Stakeholders • Project Manager • Software Architect Collaboration! • Software Designer • Developer Software Architect Software Tester • Tester • etc. Project Manager

Software Designer

11 Software Teams

12 Software Team

Stakeholders

Project Manager Software Tester

UX Designer System Engineer

Programmer

Software Architect

A System Engineer is a general person that could be a Programmer, Architect, Designer, Tester in different phases in the project, or he could be a tester in one project and a programmer in another project – all in one person. That is usually the case in small companies, while in larger companies these roles (designer, tester, programmer) could be a full-time job. Project Planning and Management

Project Planning Tools: Gantt Chart, Backlog, Task Board, Burn Down Chart, etc.

B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ 14 How to work in the project period

Project Working with Documentation Management Project Tasks (Report, etc.) Start

Finish

Important: Work with these activities in parallel!!! 15 Brainstorming/Kick Off

A Project should always start with a Brainstorming • Involve all in the group • Discuss what you are going to do in the project • How are you going to solve the project? • etc.

16 Deadlines As a software developer you need to deal with lots of deadlines during the software project!

Proper Project Planning and Management makes it easier to fulfill these deadlines

17 Software Phases

Hans-Petter Halvorsen Software Phases

Requirements

Deployment Design

Testing Implementation Software Development Process – Requirements & Design

• The Requirements is normally given by the Customer • SRS – Specification document Software Requirements & Design Requirements (WHAT): • WHAT the system should do • Describe what the system should do with Words and Figures,etc. • SRS – Software Requirements Specification (HOW): • HOW it should do it • Examples: GUI Design, UML, ER diagram, CAD, etc. • SDD – Software Design Document Many dont separate SRS and SDD documents, but include everything in a Requirements document. In practice, requirements and design are inseparable. Software Development Process - Design

How the Software will work • Technical Design (Platform, Architecture, etc.) • UX Design (User eXperience, GUI/HMI)

22 Software Development Process

Requirements

Plan what you are going to do Design Implementation before you actually do it

• Make sure to have the Design ready before you start the Implementation (Coding) • Flow Charts, UML, Modelling, etc. • Create Detailed Requirements • GUI/HMI – Start by designing your GUI on the “paper”

23 Software Development Process - Testing

Document Test Planning Tests Perform Tests Results

24 Software Development Process - Testing

Always test your application! • Test it yourself • Test it on other computers and environments • Make sure others test your application • Eat Your Own Dog Food

25 Software Development Process - Deployment

Software deployment is all of the activities that make a available for use. • Make sure the Software is well tested • The Software should be easy to install

26 Software Development Methods/Processes

How we approach the different phases in software development (Requirements, Design, Implementation, Testing, Deployment) differ depending on what kind of Software Development method we choose.

A short overview of the most used/known methods are given on the next slides.

Hans-Petter Halvorsen Software Development Methods

• V model • Iterative and Incremental development • Rapid application development (RAD) • Test Driven Development (TDD) • Agile development – (XP) – Scrum (the most popular Agile method) • Lean software development • • etc.

28 29 Software Development Methods

Traditional Plan-driven Agile Methods Methods

eXtreme Programming Scrum V-Model Waterfall (XP) Method

Lean Software Feature Driven Development Development (FDD)

Test Driven Kanban Spiral model Development (TDD) 30 Software Development Methods

Traditional Plan-driven Methods Agile Methods

eXtreme Programming (XP) Waterfall Method Scrum

Feature Driven Development (FDD) V-Model Test Driven Development (TDD) Spiral model Lean Software Development Kanban Even if we use different software development methods, we deal with the same phases like Requirements, Design, Coding, Testing and Deployment – but they may have different priority and may be done in different manners and order, etc. 31 Plan-driven vs. Agile Plan-based development

Requirements Requirements Design and engineering specification implementation

Requirements change requests

Agile development

Requirements Design and engineering implementation

I. Sommerville, : Pearson, 2010. 32 Waterfall method • Sequential process • The Phases Requirements, Design, Implementation, Testing, Deployment and Maintenance poke.com

- need to be followed in that order. and

- • In a strict Waterfall model, after each phase is finished, it proceeds to the next one.

http://geek • Cons: – impossible for any non-trivial project to finish a phase of a

. Available: software product's lifecycle perfectly before moving to the next phases

geek&poke – For example, clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it O. Widder. (2013). 33 The Waterfall Model Planning to create a new Software

Finished Requirement A Sequential Process

Finished Not Finished? -Go back and Fixit! Design

Finished Not Finished? Implementation -Go back and Fixit!

Finished Not Finished? -Go back and Fixit! Testing

You cannot go to next phase before Deployment Not Finished? finsihed the previous phase -Go back and Fixit! Maintenance

Software Finished V-model

35 V-model

• An extension of the waterfall model • More flexible

• “The V-Model reflects a view of software development and fits the needs of project managers, accountants and lawyers rather than software developers or users.”

36 Spiral model

37 Spiral model

• Some key aspecta from Waterfall and RAD • Iterative risk analysis • Suitable for large-scale complex systems

38 Agile Software Development

Hans-Petter Halvorsen 40 Agile

• A group of software development methods • Iterative approach • Self-organizing and cross-functional Teams Examples: • eXtreme Programming (XP) • Scrum • Kanban

41 Agile

Focus on Programmig Focus on Process

XP Timebox-based Flow-based

Scrum Kanban

42 Scrum

Daily Scrum Meetings

Sprint Review

43 Scrum

• A Framework for Software Development • Agile Software Development method • Simple to understand • Flexible • Exremely difficult to master! • Self-organizing Teams (3-9 persons) • Scrum Team: – Product Owner – Scrum Master – Development Team

44 Kanban

• Kanban is based on Lean and Toyota production priciples – Just-in-Time principle • Kanban has fewer “rules” than scrum • Kanban is flow-based, while Scrum is Timebox- based (Sprints) • Limit WIP (Work in Progress) • Less focus on Esitmation

45 Kanban board (Task board)

https://kanbanflow.com

Similiar to the Taskboard used in Scrum 46 eXreme Programming (XP)

• An Agile method • Pair Programming • Code Reviews • • Standup Meetings

47 eXreme Programming (XP)

48 TDD

49 Finally…

“There are no right or wrong software processes” Ian Sommerville

But someone may be better than other in a given situation It is better to use a software development metod than using none

50 Summary

Learn from your previous mistakes!

51 References

• I. Sommerville, Software Engineering: Pearson, 2010. • Wikipedia. (2013). Scrum Development. Available: http://en.wikipedia.org/wiki/Scrum_(development) • Wikipedia. (2013). Agile Software Development. Available: http://en.wikipedia.org/wiki/Agile_software_development • CoreTrek. (2013). Scrum i et nøtteskall. Available: http://www.coretrek.no/scrum-i-et-noetteskall/category642.html • S. Adams. Dilbert. Available: http://dilbert.com • O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com • B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/

52 Hans-Petter Halvorsen, M.Sc.

University College of Southeast Norway www.usn.no

E-mail: [email protected] Blog: http://home.hit.no/~hansha/