Agile is not working in big project?

38
Agile is not working in BIG project? TaoWen & LiuFan

description

Agile development way works good for small projects and also works good for big project in the beginning. But most of time, the big projects face the same situation as projects not using Agile way. Adapt process and practice in system module design wise, team structure wise, project plan wise help big projects live better.

Transcript of Agile is not working in big project?

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