NJUG 4 Agile Software Development & Interactive TV application

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
หลักสูตร eLearning สำหรับ มทรก เม.ย.09
Advertisements

Chapter 1 : Introduction of System ข้อมูล และ สารสนเทศ
Do Research Prabhas Chongstitvatana Chulalongkorn University 13 September 2013
Business System Analyst
Information System Project Management
Course Software Engineering SE Overview and Introduction.
Examining the Code.
8/3/2014The Realities of software Testing1 Software testing Realities What is the realities of software testing Why does the software testing not complete.
การแสดงการทำงานของระบบด้วย Use Case Diagram
Simple MRP Group กฤตนันท์ มณีรัตนาศักดิ์
Simple MRP Group กฤตนันท์ มณีรัตนาศักดิ์
Simple MRP Group กฤตนันท์ มณีรัตนาศักดิ์ ทวีศักดิ์ บัวทอง ธราธร กลั่นจตุรัส วิศรุต แก้วกระจาย โสภณ ศิริโชติ
บทที่ 2 การพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศ (Information System Development)
แบบจำลองกระบวนการซอฟต์แวร์
ความต้องการเชิงคุณภาพ (Qualitative Requirements)
Chapter 2 Software Process.
โครงสร้างขององค์กร (Organization Structure)
Definition and organization
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Software Testing  - ช่วยกำจัด และลดข้อบกพร่องที่จะก่อให้เกิดปัญหาลงให้มากที่สุดที่จำทำได้ (ตามเวลาที่มี) - ช่วยลดความเสี่ยง เพิ่มความมั่นใจ และน่าเชื่อถือ.
ผู้จัดการโครงงาน และ คณะทำงานโครงงาน The Project Manager and The Project Team Information System Project Management Date 27 June 2008 Time
Modeling and Activity Diagram
school of Information communication Tecnology,
Chapter 1 Introduction to Software Engineering – Software Engineering Chaichan Kusoljittakorn 1.
16. กลยุทธิ์ที่มุ่งเน้น ความสำเร็จ. Background การเปลี่ยนทัศนคติ จาก แรงงาน เป็นผลการปฏิบัติงาน แรงจูงใจบนพื้นฐานความเข้าใจ เพื่อบรรลุสู่ความสำเร็จ แบบญี่ป่น.
Customer Relationship Management (CRM)
Homework 2 Present.
Business System Analysis and Design (BC401)
Database and Application Development Life Cycle 2.
Tawatchai Iempairote วันที่ 3 กรกฎาคม 2556
PHP FRAMEWORK – Web Programming and Web Database Asst. Prof. Dr. Choopan Rattanapoka.
1 คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ Royal Thai Air Force Academy : RTAFA Royal Thai Air Force Academy : RTAFA.
อาจารย์ วิทูร ธรรมธัชอารี. เนื้อหาในการเรียน  เครื่องมือในการออกแบบและพัฒนาระบบ บัญชีด้วยคอมพิวเตอร์  ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล  การวางระบบบัญชีด้วยคอมพิวเตอร์
Practice File. Our Executive Coaching Program is proven effective. Our customer survey show ROI of coaching can be as high as 3 times the investment value.
Information Systems Development
บทที่ 4 เทคนิคการแตกโครงสร้างงาน Work Breakdown
การทดสอบซอฟต์แวร์ Software Testing
Measuring Agility in Agile Software Development
13 October 2007
การออกแบบอีเลิร์นนิง
Thai Quality Software (TQS)
คิดไว สรุปไว ด้วย MIND MAP ยินดีต้อนรับผู้เข้าร่วมสัมมนาหลักสูตร
กระบวนการพัฒนาซอฟต์แวร์
บทที่ 5 แบบจำลองกระบวนการ
2 การพัฒนาระบบสารสนเทศ (Information System Development)
Information System Development
การสร้างเว็บไซด์อีคอมเมิร์ซ
Java Development Tools
บทที่ 10 การนำระบบไปใช้/การบำรุงรักษาระบบ
บทที่ 7 ระบบสารสนเทศ.
Software Evolution แบบจำลองกระบวนการพัฒนา/ผลิตซอฟต์แวร์ (Process Model) แบบจำลองใช้สำหรับชี้นำถึงกิจกรรมหลัก (key Activities) ในการพัฒนาซอฟต์แวร์ ด้วยการกำหนดรายละเอียดหรือข้อบัญญัติไว้ในแต่ละกิจกรรมในแต่ละขั้นตอนที่มีลำดับขั้นตอนการพัฒนาที่ชัดเจน.
การพัฒนาซอฟต์แวร์แบบเอจายล์
Generic View of Process
บทที่ 2 ภาพรวมกระบวนการ (A Generic View of Process)
13 October 2007
Object-Oriented Programs Design and Construction
Multimedia Production
Development Strategies
การพัฒนาระบบสารสนเทศ
วิศวกรรมซอฟต์แวร์ (Software Engineering)
การออกแบบบทเรียนคอมพิวเตอร์
Software Testing Apirada Thadadech Computer Science Department,
(การสุ่มตัวอย่างเพื่อการยอมรับ)
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
Activity-Based-Cost Management Systems.
วิศวกรรมซอฟต์แวร์ วิศวกรรมซอฟต์แวร์ (Software Engineering)
บทที่ 3 กระบวนการผลิตซอฟต์แวร์ (Software Process)
กลยุทธ์การทดสอบซอฟต์แวร์ วิศวกรรมซอฟต์แวร์ (Software Engineering)
Introduction to Structured System Analysis and Design
ใบสำเนางานนำเสนอ:

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

Software Development Life Cycle SDLC Software Development Life Cycle Planning Analysis Design Development Testing Deployment Maintenance

Waterfall Model Planning Analysis Design Development Testing Deployment Maintenance

Iterative Design Development Analysis Testing Planning Deployment Evaluation Initial Planning Maintenance

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 ความพึ่งพอใจของลูกค้าสำคัญที่สุด ต้องแน่ใจให้ได้ว่า Process ที่ใช้ ช่วยให้งานคล่องตัวจริง บริหาร ลูกค้า Welcome changing requirements ใส่ใจพัฒนาความสามารถทั้งด้าน programming และ design ตลอดเวลา ผลงาน ลูกค้า ส่งมอบงานสม่ำเสมอ ฝ่าย Business และ Developer ทำงานร่วมกันตลอดเวลา สื่อสาร ผลงาน Simplicity สนับสนุนให้ Developer มีความสุขกับงานที่ทำ คนทำงาน ผลงานที่ดีเกิดจากความคิดของทีมงาน ผลงาน สื่อสาร Face-to-Face conversation บริหาร พร้อมที่จะเปลี่ยนแปลงปรับปรุง เพื่อให้ดียิ่งขึ้นไปอีก ความคืบหน้าวัดตัวจาก software ที่ทำงานได้ บริหาร

หลักการของ Agile ความคืบหน้าวัดตัวจาก software ที่ทำงานได้ ต้องแน่ใจให้ได้ว่า Process ที่ใช้ ช่วยให้งานคล่องตัวจริง พร้อมที่จะเปลี่ยนแปลงปรับปรุง เพื่อให้ดียิ่งขึ้นไปอีก บริหาร ลูกค้า ความพึ่งพอใจของลูกค้าสำคัญที่สุด Welcome changing requirements ส่งมอบงานสม่ำเสมอ ใส่ใจพัฒนาความสามารถทั้งด้าน programming และ design ตลอดเวลา Simplicity ผลงาน ผลงานที่ดีเกิดจากความคิดของทีมงาน ฝ่าย Business และ Developer ทำงานร่วมกัน ตลอดเวลา Face-to-Face conversation สื่อสาร สนับสนุนให้ Developer มีความสุขกับงานที่ทำ คนทำงาน

Agile Methods 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)

eXtreme Programming

The Rules and Practices of 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

แนวทางปัฏบัติใน XP Coding Planning XP Designing Testing

แนวทางปัฏบัติใน XP XP Planning User Stories Release Planning Iteration Small Release User Stories Project Velocity Release Planning Iteration Iteration Planning Planning Move People Around Stand-up Meeting XP Fix XP

แนวทางปัฏบัติใน XP XP Designing Simplicity System Metaphor CRC cards Refactoring Simplicity XP No functions Added early Designing System Metaphor CRC cards Spike Solutions

Sequential Integration แนวทางปัฏบัติใน XP Collective code Owner ship System Metaphor Move People Around Standards Pair Programming Sequential Integration Always Available Unit Test First Coding Integrate Often Simplicity Optimization XP No Overtime

แนวทางปัฏบัติใน XP XP Testing Unit Test Acceptance Test User Stories When a Bug is Found User Stories

User Stories: ตู้ขายเครื่องดื่มอัตโนมัติ แสดงยอดเงินที่หยอดเข้าไปในตู้ ยอดเงินเริ่มต้นที่ 0 หลังจากหยอดเหรียญเข้าไปในเครื่องแล้ว หน้าจอจะแสดงจำนวนเงินที่หยอดเข้ามา จนกว่าจะกดคืนเหรียญ หรือกดเลือกเครื่องดื่มแล้ว เปิดไฟบนปุ่มกดสินค้าที่ซื้อได้ ตามปกติแล้วปุ่มกดสินค้าจะไม่มีไฟ แต่หากยอดเงินที่หยอดเข้าตู้เพียงพอที่จะซื้อสินค้าชิ้นใด ให้เปิดไฟบนปุ่มนั้น กดปุ่มเลือกซื้อสินค้า หากยอดเงินพอซื้อสินค้าที่กด เครื่องจะปล่อยสินค้าออกมาจากช่องรับสินค้า และทอนเงินที่อยู่ในตู้ที่เกินราคาสินค้าที่กดออกมายังช่องรับเงินทอน แสดงข้อความสินค้าหมด หากสินค้าใดหมด ให้แสดงไฟสินค้าหมดบน label ของสินค้านั้นๆ

CRC Vending Machine UI Payment Controller Changer Inventory Product

Continuous Integration Development Create New User Stories Found bug Pair programmers Create Unit Test Acceptance Test Acceptable Write Code Ready to release Testers & User Continuous Integration Run Unit Test เงินทอนในตู้ไม่เพียงพอ หากภายในตู้มีเงินทอนไม่เพียงพอที่จะทอนเงินให้แก่สินค้าใดๆ เมื่อเปรียบเทียบกับจำนวนเงินที่หยอดเข้าตู้แล้ว สินค้านั้นๆ จะไม่สามารถเลือกซื้อได้ จะเลือกซื้อได้แต่เฉพาะที่พอดีกับเงินทอนเท่านั้น Pass all tests Commit to repository

Scrum

ตามเป้าหมายที่กำหนดไว้ให้ได้ ภายใน 30 วัน Scrum Scrum เป็นวิธีการพัฒนาซอฟแวร์รูปแบบหนึ่ง ในหลายรูปแบบของ Agile โดยแนวคิดจะอยู่บนพื้นฐานของ Sprint และพุ่งความสนใจไปที่การทำให้สำเร็จ ตามเป้าหมายที่กำหนดไว้ให้ได้ ภายใน 30 วัน

Scrum Product Owner Scrum Team Scrum Master

Index Card By Henrik Kniberg

PVR Team

PVR Team Development Team QA Team Graphic Designer Developers Service Planner Architect Service Planner Developers

Evaluation Process & Product Every month Brainstorm Session Feature Listing Evaluation Process & Product Every month 1 Month User Story Addition Stories Release Plan Iteration Plan Designing Deliverable Pair Programming daily Acceptance Test Testing Coding Every week Integrate Project Velocity 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-trenches http://www.crisp.se/planningpoker/

PVR Architecture

Set-top box architecture Applications Middleware Custom Interfaces Middleware Glue Custom Functionality Drivers Real-time operating system Hardware

. Internet Encoder Video Audio Encoder Modulator DVB-SI Generator Multiplexer Conditional Access System EPG management System Internet ITV application Servers Carousel Server Return Path Server

End

Planning Poker Estimating without planning poker

Planning Poker Estimating without planning poker