Upload
bruis
View
79
Download
0
Tags:
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
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
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