42
NJUG 4 Agile Software Development & Interactive TV application By Soothi Na-Ranong (Bomber) [email protected] [email protected] Mobile: +66-8-6563-6763

NJUG 4 Agile Software Development & Interactive TV application

  • Upload
    bruis

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

NJUG 4 Agile Software Development & Interactive TV application. By Soothi Na-Ranong (Bomber) [email protected] [email protected] Mobile: +66-8-6563-6763. Topics. Agile Software Development Interactive TV Application. Agile. SDLC. S oftware D evelopment L ife C ycle. Planning. - PowerPoint PPT Presentation

Citation preview

Page 1: NJUG 4 Agile Software Development & Interactive TV application

NJUG 4

Agile Software Development& Interactive TV application

By Soothi Na-Ranong (Bomber)[email protected]

[email protected] Mobile: +66-8-6563-6763

Page 2: NJUG 4 Agile Software Development & Interactive TV application

Topics

• Agile Software Development• Interactive TV Application

Page 3: NJUG 4 Agile Software Development & Interactive TV application

Agile

Page 4: NJUG 4 Agile Software Development & Interactive TV application

SDLC

Planning

Analysis

Design

Development

Testing

Deployment

Maintenance

Software Development Life Cycle

Page 5: NJUG 4 Agile Software Development & Interactive TV application

Waterfall Model

Planning

Analysis

Design

Development

Testing

Deployment

Maintenance

Page 6: NJUG 4 Agile Software Development & Interactive TV application

Iterative

Planning

Analysis

Design Development

Testing

Deployment

Maintenance

EvaluationInitial Planning

Page 7: NJUG 4 Agile Software Development & Interactive TV application

What is Agile?

Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. – Wikipedia

Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams with "just enough" ceremony that produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders. - Scott W. Ambler in Agile Modeling

Agile development provides a set of practices simple enough to engage developers, managers, and customers yet sufficiently sound and disciplined to build quality software with predictability. - Dave Thomas (founding director of AgileAlliance.com)

Page 8: NJUG 4 Agile Software Development & Interactive TV application

Agile คื�ออะไร

การพัฒนาซอฟแวร�แบบ Agile เป็�นแนวคื�ดที่��ใช้�เป็�น กรอบ ระเบ�ยบ

เพั��อให้�การพัฒนาซอฟแวร�มี�คืวามีคืล่#องตัวสู'งสู(ด

Page 9: NJUG 4 Agile Software Development & Interactive TV application

ห้ล่กการของ Agile

คืวามีพั*�งพัอใจของล่'กคื�าสู,าคืญที่��สู(ด

Welcome changing requirements

สู#งมีอบงานสูมี,�าเสูมีอ

ฝ่/าย Business แล่ะ Developerที่,างานร#วมีกนตัล่อดเวล่า

สูนบสูน(นให้� Developerมี�คืวามีสู(ขกบงานที่��ที่,า

Face-to-Face conversation

คืวามีคื�บห้น�าวดตัวจากsoftware ที่��ที่,างานได�

ตั�องแน#ใจให้�ได�ว#า Process ที่��ใช้�ช้#วยให้�งานคืล่#องตัวจร�ง

ใสู#ใจพัฒนาคืวามีสูามีารถที่1งด�านprogramming

แล่ะ design ตัล่อดเวล่า

Simplicity

ผล่งานที่��ด�เก�ดจากคืวามีคื�ดของที่�มีงาน

พัร�อมีที่��จะเป็ล่��ยนแป็ล่งป็รบป็ร(งเพั��อให้�ด�ย��งข*1นไป็อ�ก

ล่'กคื�า

ล่'กคื�า

ล่'กคื�า

คืนที่,างาน

สู��อสูาร

สู��อสูาร

บร�ห้าร

บร�ห้าร

ผล่งาน

ผล่งาน

บร�ห้าร

ผล่งาน

Page 10: NJUG 4 Agile Software Development & Interactive TV application

ห้ล่กการของ Agile

คืวามีพั*�งพัอใจของล่'กคื�าสู,าคืญที่��สู(ด

Welcome changing requirements

สู#งมีอบงานสูมี,�าเสูมีอ

ล่'กคื�า

ฝ่/าย Business แล่ะ Developer ที่,างานร#วมีกน

ตัล่อดเวล่า

Face-to-Face conversation

สู��อสูาร

คืวามีคื�บห้น�าวดตัวจากsoftware ที่��ที่,างานได�

ตั�องแน#ใจให้�ได�ว#า Process ที่��ใช้�ช้#วยให้�งานคืล่#องตัวจร�ง

พัร�อมีที่��จะเป็ล่��ยนแป็ล่งป็รบป็ร(งเพั��อให้�ด�ย��งข*1นไป็อ�ก

บร�ห้าร

สูนบสูน(นให้� Developerมี�คืวามีสู(ขกบงานที่��ที่,า

คืนที่,างาน

ใสู#ใจพัฒนาคืวามีสูามีารถที่1งด�าน programming

แล่ะ design ตัล่อดเวล่า

Simplicity

ผล่งาน

ผล่งานที่��ด�เก�ดจากคืวามีคื�ดของที่�มีงาน

Page 11: NJUG 4 Agile Software Development & Interactive TV application

• Extreme Programming (XP)• Scrum• Agile Modeling• Adaptive Software Development (ASD)• Crystal Clear and Other Crystal Methodologies• Dynamic Systems Development Method (DSDM)• Feature Driven Development (FDD)• Lean software development• Agile Unified Process (AUP)

Agile Methods

Page 12: NJUG 4 Agile Software Development & Interactive TV application

eXtreme Programming

Page 13: NJUG 4 Agile Software Development & Interactive TV application

The Rules and Practicesof Extreme Programming

Planning– User stories are written.– Release planning creates the schedule.– Make frequent small releases.– The Project Velocity is measured.– The project is divided into iterations.– Iteration planning starts each iteration.– Move people around.– A stand-up meeting starts each day.– Fix XP when it breaks.

Coding– The customer is always available.– Code must be written to agreed

standards.– Code the unit test first.– All production code is pair programmed.– Only one pair integrates code at a time.– Integrate often.– Use collective code ownership.– Leave optimization till last.– No overtime.

Designing– Simplicity.– Choose a system metaphor.– Use CRC cards for design sessions.– Create spike solutions to reduce risk.– No functionality is added early.– Refactor whenever and wherever

possible.

Testing– All code must have unit tests.– All code must pass all unit tests before

it can be released.– When a bug is found tests are created.– Acceptance tests are run often and the

score is published.

Reference: extremeprogramming.org

Page 14: NJUG 4 Agile Software Development & Interactive TV application

แนวที่างป็3ฏบตั�ใน XP

XP

Planning Coding

Designing Testing

Page 15: NJUG 4 Agile Software Development & Interactive TV application

แนวที่างป็3ฏบตั�ใน XP

XP

Planning

SmallRelease

ReleasePlanning

UserStories

IterationIterationPlanning

Move PeopleAround

Stand-upMeeting

Fix XP

ProjectVelocity

Page 16: NJUG 4 Agile Software Development & Interactive TV application

แนวที่างป็3ฏบตั�ใน XP

XP

DesigningSystem

Metaphor

Simplicity

CRC cards

SpikeSolutions

No functionsAdded early

Refactoring

Page 17: NJUG 4 Agile Software Development & Interactive TV application

แนวที่างป็3ฏบตั�ใน XP

XP

SequentialIntegration

AlwaysAvailable

PairProgramming

Standards

IntegrateOften

Unit TestFirst

Collective codeOwner ship

Optimization

NoOvertime

Coding

SystemMetaphor

Simplicity

Move PeopleAround

Page 18: NJUG 4 Agile Software Development & Interactive TV application

แนวที่างป็3ฏบตั�ใน XP

XP

Testing

When a Bugis Found

Unit Test

AcceptanceTest

UserStories

Page 19: NJUG 4 Agile Software Development & Interactive TV application
Page 20: NJUG 4 Agile Software Development & Interactive TV application
Page 21: NJUG 4 Agile Software Development & Interactive TV application
Page 22: NJUG 4 Agile Software Development & Interactive TV application
Page 23: NJUG 4 Agile Software Development & Interactive TV application
Page 24: NJUG 4 Agile Software Development & Interactive TV application

User Stories: ตั'�ขายเคืร��องด��มีอตัโนมีตั�แสูดงยอดเง�นที่��ห้ยอดเข�าไป็ในตั'�

ยอดเง�นเร��มีตั�นที่�� 0 ห้ล่งจากห้ยอดเห้ร�ยญเข�าไป็ในเคืร��องแล่�ว ห้น�าจอจะแสูดงจ,านวนเง�นที่��ห้ยอดเข�ามีา จนกว#าจะกดคื�นเห้ร�ยญ ห้ร�อกดเล่�อกเคืร��องด��มีแล่�ว

เป็6ดไฟบนป็(/มีกดสู�นคื�าที่��ซ�1อได�

ตัามีป็กตั�แล่�วป็(/มีกดสู�นคื�าจะไมี#มี�ไฟ แตั#ห้ากยอดเง�นที่��ห้ยอดเข�าตั'�เพั�ยงพัอที่��จะซ�1อสู�นคื�าช้�1นใด ให้�เป็6ดไฟบนป็(/มีน1น

กดป็(/มีเล่�อกซ�1อสู�นคื�า

ห้ากยอดเง�นพัอซ�1อสู�นคื�าที่��กด เคืร��องจะป็ล่#อยสู�นคื�าออกมีาจากช้#องรบสู�นคื�า แล่ะที่อนเง�นที่��อย'#ในตั'�ที่��เก�นราคืาสู�นคื�าที่��กดออกมีายงช้#องรบเง�นที่อน

แสูดงข�อคืวามีสู�นคื�าห้มีด

ห้ากสู�นคื�าใดห้มีด ให้�แสูดงไฟสู�นคื�าห้มีดบน label ของสู�นคื�าน1นๆ

Page 25: NJUG 4 Agile Software Development & Interactive TV application

UI

Product

InventoryPaymentController

CRC

Changer

VendingMachine

Page 26: NJUG 4 Agile Software Development & Interactive TV application

Development

Pairprogrammers

CreateUnit Test

WriteCode

Run UnitTest

Pass all testsCommit torepository

ContinuousIntegration

Testers& User

AcceptanceTest

CreateNew User

StoriesFoundbug

Readyto release

Acceptable

เง�นที่อนในตั'�ไมี#เพั�ยงพัอ

ห้ากภายในตั'�มี�เง�นที่อนไมี#เพั�ยงพัอที่��จะที่อนเง�นให้�แก#สู�นคื�าใดๆ เมี��อเป็ร�ยบเที่�ยบกบจ,านวนเง�นที่��ห้ยอดเข�าตั'�แล่�ว สู�นคื�าน1นๆ จะไมี#สูามีารถเล่�อกซ�1อได� จะเล่�อกซ�1อได�แตั#เฉพัาะที่��พัอด�กบเง�นที่อนเที่#าน1น

Page 27: NJUG 4 Agile Software Development & Interactive TV application

Scrum

Page 28: NJUG 4 Agile Software Development & Interactive TV application

Scrum

Scrum เป็�นว�ธี�การพัฒนาซอฟแวร�ร'ป็แบบห้น*�ง

ในห้ล่ายร'ป็แบบของ Agileโดยแนวคื�ดจะอย'#บนพั�1นฐานของ Sprint

แล่ะพั( #งคืวามีสูนใจไป็ที่��การที่,าให้�สู,าเร<จตัามีเป็=าห้มีายที่��ก,าห้นดไว�ให้�ได� ภายใน 30 วน

Page 29: NJUG 4 Agile Software Development & Interactive TV application

ScrumProductOwner

ScrumTeam

ScrumMaster

Page 30: NJUG 4 Agile Software Development & Interactive TV application

Index Card

By Henrik Kniberg

Page 31: NJUG 4 Agile Software Development & Interactive TV application
Page 32: NJUG 4 Agile Software Development & Interactive TV application

PVR Team

Page 33: NJUG 4 Agile Software Development & Interactive TV application

PVR Team

ServicePlanner

Developers

DevelopersServicePlanner

GraphicDesigner

QATeam

DevelopmentTeam

Architect

Page 34: NJUG 4 Agile Software Development & Interactive TV application

Process

IterationPlan

AcceptanceTest

User Story

Feature Listing

1 Month

Release PlanAdditionStories

Deliverable

ProjectVelocity

Every week

BrainstormSession

Every month

EvaluationProcess

& Product

Every month

PairProgramming

daily

Designing

CodingTesting

Integrate

1-2 weeks

Page 35: NJUG 4 Agile Software Development & Interactive TV application

Tools

• IDE – Eclipse• Bugs Tracking – Bugzilla• Knowledge Base – MediaWiki• User Story – PowerPoint, Visio• Product Backlog – Excel• Code repository & version control – Subversion• Designing Tool – White board, Paper, PowerPoint,

Visio• Project Tracking – MS Project, White board

Page 36: NJUG 4 Agile Software Development & Interactive TV application

References

• http://en.wikipedia.org• http://www.extremeprogramming.org • http://www.ambysoft.com/essays/agileLifecycle.html• http://www.agilemanifesto.org• http://www.softhouse.se • http://www.infoq.com/minibooks/scrum-xp-from-the-trenche

s

• http://www.crisp.se/planningpoker/

Page 37: NJUG 4 Agile Software Development & Interactive TV application

PVR Architecture

Page 38: NJUG 4 Agile Software Development & Interactive TV application

Hardware

Real-time operating system

Drivers

Middleware Glue

Middleware

Custom Functionality

Custom Interfaces

Applications

Set-top box architecture

Page 39: NJUG 4 Agile Software Development & Interactive TV application

Video

Audio

ITV applicationServers

EPG managementSystem

Multiplexer Conditional Access System

Carousel Server

DVB-SIGenerator

Modulator

Encoder...

Encoder

Return PathServer

Internet

Page 40: NJUG 4 Agile Software Development & Interactive TV application

End

Page 41: NJUG 4 Agile Software Development & Interactive TV application

Planning Poker

Estimating without planning poker

Page 42: NJUG 4 Agile Software Development & Interactive TV application

Planning Poker

Estimating without planning poker