Agile Design

and

Organization Structure

Han Yi

2017.9

What do we need before thinking of

technical design in agile development?

  • Everything about current system

  • Desired user journey

  • UI & Interaction

  • Non functional requirement

  • Third party system spec

Everything about current system (personal)

Codebase (backend + frontend)

Capacity of Framework (backend + frontend)

Data model class (diagram)

Core code design

API design

Deployment pipeline

Environment configuration

Tech debts (link)

...

Desired user journey (BA/UX/TL)

User journey sample (link)

UI & Interaction (UX)

UI mockup (low-fi)

Interaction spec

Non functional requirement (BA/UX/TL)

ISO/IEC 9126 / ISO/IEC 25010:2011 (link)

Security

Fault tolerance

Recoverability

Understandability

Learnability

Efficiency

Maintainability

Portability

...

Third party system spec (BA/TL)

Payment gateway

edTPA

Box storage

...

  • Everything about current system

  • Desired user journey

  • UI & Interaction

  • Non functional requirement

  • Third party system spec

Agile Design Flow

  • Domain decomposition

  • Concept extraction (core model, support model): Domain analysis

  • Support module: CRC diagram

  • Sequence diagram

  • Core code snippet / New library demo (Backend + Frontend)

  • API spec (Public API / Private API / Rake interface)

  • Related tech debts

  • Additional Resources

  • Domain decomposition

  • Concept extraction (core model, support model): Domain analysis

  • Support module: CRC diagram

  • Sequence Diagram

  • Core code snippet / New library demo (Backend + Frontend)

  • API spec (Public API / Private API / Rake interface)

  • Related tech debts

  • Additional Resources

  • Domain decomposition

  • Concept extraction (core model, support model): Domain analysis

  • Support module: CRC diagram

  • Sequence diagram

  • Core code snippet / New library demo (Backend + Frontend)

  • API spec (Public API / Private API / Rake interface)

  • Related tech debts

  • Additional Resources

We have flow, what's next?

Implementing Agile Design Flow

is design dead?

Communication First

Time Box Based

Trackable Contracts

Organization Structure

"Technical leadership is shown by teaching the programmers and helping them make decisions."

Improve technical communication model

                 lead dev leadership

                 whole team capability

                 tech debt management

Prevent any potential technical risk

Purpose of Designing Organization Structure

🐯

🐯

🐯

🐯

🐯

🐯

🐯

🐯

🐼

🐼

🐰

🦊

🦊

🦅

UX

BA

QA

DEV

PS&M

TL

🦉

PM

🐺

🦁

LEAD DEV

🦁

🦁

🦁

Step 1: Lead Dev * 4

Non development Responsibility: 

1. Solution proposal

2. Technical design

3. Estimation

4. Knowledge sharing

5. Coaching

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 2: Lead Dev Second Tier * 4

Non development Responsibility:

1. Play role of Lead Dev if need (time off, rotate)

2. Each Lead Dev should have one second tier (non lead dev), and different lead dev can not share same one

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 3: Mini Feature Team * 2

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🦅

🦅

BA

Team 1

Team 2

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 3: Mini Feature Team * 2 (opt. 2)

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🦅

BA

Team 1

Team 2

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 4: Mini Feature Team with QA * 2

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🦅

🦅

BA

Team 1

Team 2

🐼

🐼

QA

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 5: Mini Feature Team with QA * 2 + UX * 1

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🦅

🦅

BA

Team 1

Team 2

🐼

🐼

QA

🐰

UX

🐯

🐯

🐯

🐯

🦁

DEV

🦁

🦁

🦁

Step 6: Feature Team with QA/DevOps * 2 + UX * 1

Lead Dev

Lead Dev

Lead Dev

Lead Dev

🦅

🦅

BA

Team 1

Team 2

🐼

🐼

QA

🐰

UX

🦊

🦊

Challenges

  • Full life cycle feature toggle analysis and maintenance
  • Feature team collaboration
  • Knowledge sharing
  • Domain architecture
  • Quality assurance
  • Deployment process
  • Tech debt management

Thanks

Agile Design and Organization Structure

By hanyi8000

Agile Design and Organization Structure

  • 2,077