Download - Agile is not working in big project?

Transcript
Page 1: Agile is not working in big project?

Agile is not working in BIG project?

TaoWen & LiuFan

Page 2: Agile is not working in big project?

Once upon a time

there was a BIG project

Page 3: Agile is not working in big project?
Page 4: Agile is not working in big project?
Page 5: Agile is not working in big project?
Page 6: Agile is not working in big project?
Page 7: Agile is not working in big project?
Page 8: Agile is not working in big project?

“Agile” in Reality

• Small team

• Client start from big plan

• Big scope

• Complex business logic

• Tight schedule

• Big team

• Quick feedback

• Collective ownership

• Simple design

• Continuous refactoring

Page 9: Agile is not working in big project?

Do you feel the pain?

Page 10: Agile is not working in big project?

• Code organization in BIG project

Page 11: Agile is not working in big project?

Same code again and again

Page 12: Agile is not working in big project?

Big Mess

Page 13: Agile is not working in big project?

Layered Code Design

• View => Controller => Model => Service => ORM => Table => Stored Procedure

• “OOP Leads to Big Objects”: blindly put logic inside models do not help us. Enforcing putting logic into models, is enforcing layering.

• Layering is important, but not enough to control total complexity

• Over-layering is pain in the butt

Page 14: Agile is not working in big project?

“ Big Ball of Mud, Still the Most Popular Software Design

”http://www.infoq.com/news/2010/09/big-ball-of-mud

Page 15: Agile is not working in big project?

Is there a better way?

Page 16: Agile is not working in big project?

% cat inFile | grep pattern | sort > outFile

Pipeline Architecture

Unix styleEclipsePlugin architecture

Page 17: Agile is not working in big project?
Page 18: Agile is not working in big project?
Page 19: Agile is not working in big project?

Besides Code,What else is painful?

Page 20: Agile is not working in big project?

• Team in BIG project

Page 21: Agile is not working in big project?

Long process

Page 22: Agile is not working in big project?

Bottleneck

Page 23: Agile is not working in big project?

Layered Team Design

• Client => Michael => BA s + UI => DEV s + UI => QA s =>Deployers => Client=> Users

• Roles == Layers

Page 24: Agile is not working in big project?

Is there a better way?

Page 25: Agile is not working in big project?

• Separate team by features

– Feature Owner (Developer/Business analyzer)– QA/Business analyzer– DevOps

Page 26: Agile is not working in big project?

Conway’s Law

“ organizations which design systems ... Are constrained to produce designs which are copies of the communication structures of these organizations

Page 27: Agile is not working in big project?

Vertical <=> Horizontal

Big problem

CodeTeam

Page 28: Agile is not working in big project?

That is so coolWhy not do it?

Page 29: Agile is not working in big project?

• Capbility• Simple Design• Tight Schedule• Integration Cost• Reuse• Organization Structure

Vendor side

Page 30: Agile is not working in big project?

• User perceive it as single system• Customer want a total solution

• Vendor lack of business insight• Customer lack of IT perspective

Customer side

Page 31: Agile is not working in big project?

Should we just doBIG up front design?

Page 32: Agile is not working in big project?

• Do features in parallel from beginning• => Validate concept very late• => Harder to change direction, re-prioritize

Page 33: Agile is not working in big project?

• Big project, but think first=> Separate the important from unimportant=> Do the most important part first

=> Earlier to validate the concept=> Easier to change direction

Page 34: Agile is not working in big project?

• Eric Evan call it “Strategic Design”

Page 35: Agile is not working in big project?
Page 36: Agile is not working in big project?

Why we need to plan strategically?

Page 37: Agile is not working in big project?
Page 38: Agile is not working in big project?

Q & A