42
Agile in a Huge-Waterfall company Wisang Eom

Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Embed Size (px)

Citation preview

Page 1: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Agile in a Huge-Waterfall company

Wisang Eom

Page 2: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Who am I?

• Working for LG Electronics, Korea

– Role: Agile coach & Trainer

– Main Activities: TDD, Refactoring, Pair programming

• Hobby

– Translation : Translate Agile books and publish Korean edition

Page 3: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What I like the most: XP

● If something is good, do it to the extreme

○ If code review is good, why not do it all the time?

■ Pair programming

● If walking is good for your health, then why not walk all the time?

○ Extreme Coding & Walking

■ https://www.youtube.com/watch?v=JWm4NnpCGgM&feature=youtube_gdata_player

■ http://www.lgblog.co.kr/frnt/postView.dev?ctgrid=8&post_id=688

■ http://news.mk.co.kr/newsRead.php?year=2014&no=1015884

Page 4: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What I like the most: XP

● If something is good, do it to the extreme

○ If code review is good, why not do it all the time?

■ Pair programming

● If walking is good for your health, then why not walk all the time?

○ Extreme Coding & Walking

■ https://www.youtube.com/watch?v=JWm4NnpCGgM&feature=youtube_gdata_player

■ http://www.lgblog.co.kr/frnt/postView.dev?ctgrid=8&post_id=688

■ http://news.mk.co.kr/newsRead.php?year=2014&no=1015884

Page 5: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Our Products

Page 6: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Work flow of typical Electronics Company

● Waterfall is natural : HW is hard to change later.o Board design -> Evaluation Board -> PCB v0.9 -> 1.0 -> ...

Traditional SW Development in Electronics company

Spec. freeze

Strict change controlAnalysis

Milestone 1 Milestone 2 ...

Page 7: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Waterfall in Detail

Page 8: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Expectations for Scrum

“Productivity 5-10 times industry average has been observed in many Scrums since 1993.”

- Jeff Sutherland

Is it true in your company?

Page 9: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What happens frequently is …

“Unfortunately, many organizations change Scrum to accommodate the inadequacies or dysfunctions instead of solving them”

- Ken Schwaber

Page 10: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What makes it hard to apply Agile?

1. Working in the Trenches

2. Waterfall Assumption

4. HR Policies

5. Systems & Tools

6. Legacy Code

7. Silver Bullet Illusion

8. But Syndrome

Page 11: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Training room vs. Trenches

Page 12: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Waterfall Assumption

1. Milestone

2. Mini Waterfall

3. Org. Chart == Software Structure

Dept. 1

Team 1-1 Team 1-2 Team 1-3

Comp.1

1-1 1-2 1-3

Page 13: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

HR Policy

● Shared responsibility, but how about evaluation? Shared evaluation?

● Bonus or Incentives

● Roles!

Page 14: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Systems & Tools

Page 15: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Legacy Code

● 2,000 lines method.

● Code disappeared when scrolling down.

● Ugly but it works!

Page 16: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Silver Bullet Illusion

Page 17: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

But Syndrome!

1. ScrumBut

2. UnitTestBut

3. RefactoringBut

4. CodeReviewBut

5. C.I. But

Page 18: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Unit Test But

• We do unit test but …

-check coverage but have no many asserts.

-don’t refactor test code.

-don’t update test code but ignore when req. changed.

-don’t improve the production code

Page 19: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Refactoring But

• We do refactoring but …

- It’s done by special team, not us.

- don’t care qualitative aspects but cares index only

: Cyclomatic complexity < Criteria

Page 20: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

C.I. But

• We do C.I. but …

- It is maintained by a special team, not us.

- we can’t change other’s code

- no many tests and not maintained

Page 21: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Starting Improvement from the Trenches

● Use the strength of the opponent

● Backward Approach(end -> start)

● Attracting developers: Technically Sexy!

● Spread out slowly

Page 22: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

SPI org?

● Responsible for company-wide standard

process & Tool

● Generally, Agile guys are enemy to them

● Can report to Top management directly

● Can make promotion easily

● Can do company-wide measurement, or

auditing easily

Page 23: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Backward Approach

● Product Backlog -> Sprint Planning -> Daily Scrum -> Sprint Review -> Retrospective

● Retrospective - Sprint Planning: DoD, Task Size, ... - Backlog Clarification & Refinement - C.I: Auto Build, Test Automation

* Invite SPI guys to Sprint review and Retrospective. They will be shocked!

Page 24: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

First Step

Page 25: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Sprint Review

Page 26: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Critical issue detection

● How much simultaneous is

simultaneous?

● How much horizontal is

horizontal?

● How much swipe is enough?

Page 27: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What Scrum itself can and can’t

● Scrum cano Make things visible, help people see it and learn

from it

● Scrum can’to Make people see it

o Make people learn

o Make people improve

o Make people improve their technical capability

Page 28: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

How to motivate developers?

● Engineers like cutting-edge technology

● They also like fancy technical practices

● Show them they can sharpen their technical excellence

by doing something Agile without telling them it is Agile

practices.

Page 29: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

How to motivate developers?

● Engineers like new technology

o Hot topics like Hadoop, Docker, …

o Design Principles / Design Patterns

o Fancy topics: Fake, Mock, …

o Technically Sexy!

● Turn something very hard for them into very easy one.

Page 30: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

But Syndrome!

1. ScrumBut

2. UnitTestBut

3. RefactoringBut

4. CodeReviewBut

5. C.I. But

Page 31: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Trivial is not trivial

Page 32: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Make it testable

Page 33: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Test Case

1. Given that it is in washing

2. When expected signal comes n times in a row

3. Then we should say it is locked.

4. Given that it is in washing

5. When expected signal comes n-m times in a row, other

signals several times and expected signal m times

6. Then we should say it is not locked.

Page 34: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Test code

TEST(SignalCheck, NotLockedIfSignalNotInARow)

{

SignalGenerator_GenerateExpectedSignal(n-m);

SignalGenerator_GenerateOtherSignal(3);

SignalGenerator_GenerateExpectedSignal(m);

CHECK_FALSE(isLocked(timer_500us_wrapper,

check_signal_count));

}

Page 35: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Smart phone application

Page 36: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

What makes everything hard?

Page 37: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Test case

1. Given that a man of height 174cm and weight of 72 kg

2. When he runs around Marina Bay Sands for an hour

3. Then it shows the track record and energy consumption

of 105 KCal.

Page 38: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Let’s Run the Test

Page 39: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

How to avoid RefactoringBut

1.Funny Metric: CodeFat

2.Make them exposed to good code

3.Make it fun to code and refactor

Page 40: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Google TOTT

Page 41: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

LG TOTT

Page 42: Agile in a Huge-Waterfall company Wisang Eom. Who am I? Working for LG Electronics, Korea – Role: Agile coach & Trainer – Main Activities: TDD, Refactoring,

Conclusion

1. Reality is tough!2. Many excuses, Hard to change.3. Use the strength of the opponent.4. Once started, it gets accelerated5. Avoid But syndrome6. Culture first, practice later7. “Fun” is important!

* Still long way to go, Probably endless!