NJUG 4 Agile Software Development & Interactive TV application

Preview:

DESCRIPTION

NJUG 4 Agile Software Development & Interactive TV application. By Soothi Na-Ranong (Bomber) soothi@gmail.com soothi@truevisionstv.com 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

NJUG 4

Agile Software Development& Interactive TV application

By Soothi Na-Ranong (Bomber)soothi@gmail.com

soothi@truevisionstv.com Mobile: +66-8-6563-6763

Topics

• Agile Software Development• Interactive TV Application

Agile

SDLC

Planning

Analysis

Design

Development

Testing

Deployment

Maintenance

Software Development Life Cycle

Waterfall Model

Planning

Analysis

Design

Development

Testing

Deployment

Maintenance

Iterative

Planning

Analysis

Design Development

Testing

Deployment

Maintenance

EvaluationInitial Planning

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)

Agile คื�ออะไร

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

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

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

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

Welcome changing requirements

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

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

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

Face-to-Face conversation

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

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

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

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

Simplicity

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

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

ล่'กคื�า

ล่'กคื�า

ล่'กคื�า

คืนที่,างาน

สู��อสูาร

สู��อสูาร

บร�ห้าร

บร�ห้าร

ผล่งาน

ผล่งาน

บร�ห้าร

ผล่งาน

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

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

Welcome changing requirements

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

ล่'กคื�า

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

ตัล่อดเวล่า

Face-to-Face conversation

สู��อสูาร

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

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

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

บร�ห้าร

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

คืนที่,างาน

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

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

Simplicity

ผล่งาน

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

• 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

eXtreme Programming

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

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

XP

Planning Coding

Designing Testing

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

XP

Planning

SmallRelease

ReleasePlanning

UserStories

IterationIterationPlanning

Move PeopleAround

Stand-upMeeting

Fix XP

ProjectVelocity

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

XP

DesigningSystem

Metaphor

Simplicity

CRC cards

SpikeSolutions

No functionsAdded early

Refactoring

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

XP

SequentialIntegration

AlwaysAvailable

PairProgramming

Standards

IntegrateOften

Unit TestFirst

Collective codeOwner ship

Optimization

NoOvertime

Coding

SystemMetaphor

Simplicity

Move PeopleAround

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

XP

Testing

When a Bugis Found

Unit Test

AcceptanceTest

UserStories

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

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

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

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

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

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

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

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

UI

Product

InventoryPaymentController

CRC

Changer

VendingMachine

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น

Scrum

Scrum

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

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

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

ScrumProductOwner

ScrumTeam

ScrumMaster

Index Card

By Henrik Kniberg

PVR Team

PVR Team

ServicePlanner

Developers

DevelopersServicePlanner

GraphicDesigner

QATeam

DevelopmentTeam

Architect

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

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

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/

PVR Architecture

Hardware

Real-time operating system

Drivers

Middleware Glue

Middleware

Custom Functionality

Custom Interfaces

Applications

Set-top box architecture

Video

Audio

ITV applicationServers

EPG managementSystem

Multiplexer Conditional Access System

Carousel Server

DVB-SIGenerator

Modulator

Encoder...

Encoder

Return PathServer

Internet

End

Planning Poker

Estimating without planning poker

Planning Poker

Estimating without planning poker

Recommended