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)
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,101