This document summarizes a presentation about improving software development practices at a company. It discusses bringing in experts to teach test-driven development, refactoring, and applying agile principles like Scrum. Over several years, it shows how the company gradually adopted more practices like automated unit testing, design principles, embedded agile, and combining agile with Six Sigma. Coaching individual teams and a whole module helped advance skills and standards, but spreading the changes more widely remained a challenge.
5. Company Overview
Vision:
Global Top 3 IT Company by 2010
Size: globally 84,000+ employee (2008 year)
Domestic: 28,659
Oversea: 55,786
4/46
6. Development Characteristics
End Products (HW + SW)
Stretched (fixed) schedule + fixed requirements
Global launching
Defects after release, cause recall!!
Portion of SW is increasing more and more!
Short development schedule
Bitter competition of market
Develop multiple models, concurrently
Reflect market/customer needs, rapidly
5/46
16. Plan
Select one team
Give 2 (full) day lecture
Select 2~3 developers (active & fresh)
3+ month on-site coaching
15/46
17. Actual
Ported UTF on our develop. environment.
Got a few Unit Tested features
Refactoring a key feature of a module
Tried to apply mock without readiness of HW or
3rd party library
Gave some seminars (1 hr, 15 times) what they
frequently made mistakes.
Built some scripts and tools for them.
16/46
18. Lessons Learned
Hard to work with developers (Busy!!)
Close relationship is important
Need to give some values to them
17/46
26. Plan
Select a whole module + one developer
Ownership & Validation on target
Give half day lecture
1 month (6+ month: maintenance)
25/46
27. Actual
Ported UTF on our develop. environment.
Made a Best Practice
Extract core logic from
UI and HW dependent code
400+ automated unit test cases
100% (statement) code coverage
All regression test takes < 1s
Used as a company-wide standard
26/46
28. Lessons Learned
Easy to progress and achieve
Hard to spread it
A few people feel better for using this way
TDD, Unit Testing is not easy!!
(2 year experience)
Still NAH syndrome!
27/46
30. Last Year
Just support only volunteer team
Visibility and light-weight process : SCRUM!
Strong commitment, but bottom-up approach
As simple as possible 竪 on demand
Trust them!
Share and Follow by themselves!
29/46
34. 2004 2005 2006 2007 2008 2009 2010
蟾 谿曙
( 貉ろ 腓)
Agile, XP
Agile, XP
Agile, XP
Software 6
Software 6
33/46
35. 2004 2005 2006 2007 2008 2009 2010
James W. Grenning
(Object Mentor 腓)
Extreme Programming Immersion
for
Embedded Software Developers
Embedded Agile
Embedded Agile
Agile, XP
Agile, XP
Software 6
Software 6
34/46
36. 2004 2005 2006 2007 2008 2009 2010
Bas Vodde
(Odd-e 腓)
Certified ScrumMaster
Embedded Agile
Embedded Agile
Agile, XP
Agile, XP Scrum
Scrum
Software 6
Software 6
35/46
37. 2004 2005 2006 2007 2008 2009 2010
James W. Grenning
(Renaissance Software Consulting 腓)
TDD in C
Embedded Agile
Embedded Agile TDD in C
TDD in C
Agile, XP
Agile, XP Scrum
Scrum
Software 6
Software 6
36/46
38. 2004 2005 2006 2007 2008 2009 2010
James W. Grenning
(Renaissance Software Consulting 腓)
Agile Embedded Design in C
Design Principles
Design Principles
Embedded Agile
Embedded Agile TDD in C
TDD in C (embedded)
(embedded)
Agile, XP
Agile, XP Scrum
Scrum
Software 6
Software 6
37/46
39. 2004 2005 2006 2007 2008 2009 2010
Rebecca Wirfs-Brock
(Wirfs-Brock Associates 腓)
Agile Development and Design:
Principles and Best Practices
Design Principles
Design Principles
Design Principles
Design Principles
Embedded Agile
Embedded Agile TDD in C
TDD in C (embedded)
(embedded)
Agile, XP
Agile, XP Scrum
Scrum
Software 6
Software 6
38/46
40. 2004 2005 2006 2007 2008 2009 2010
Bas Vodde
(Odd-e 腓)
Certified ScrumMaster
+
Agile and Lean for PM
Design Principles
Design Principles
Design Principles
Design Principles
Embedded Agile
Embedded Agile TDD in C
TDD in C (embedded)
(embedded)
Agile, XP
Agile, XP Scrum
Scrum
Software 6
Software 6
39/46
49. The 5 Levels of Agility populated with Agile Practices and Concepts
Ahmed Sidky
TDD
Pair Pgm.
Unit Test
http://www.agilejournal.com/content/view/411/33/