Give back power to developers
or How we managed to create a 100 man/days application in 15 days without scrum
https://github.com/lechinoix
VP of Engineering @BPI
Web Performance expert
Living in Grenoble (French Alps)
I love climbing, skiing and travelling
When French governement announced the first lockdown of the country...
I was there !
(enjoying my best life)
2 weeks later, I was back in France with nothing to do T_T
Let's go back to work ! (but easy peasy)
Which means :
Emergency plan
to help companies
The mission :
✅ Save the french small companies to which banks will not give loans
✅ Avoid fraud, financing terrorism and money laundring
✅ Keep the financial risk at a controlled level
✅ Make it all automatized because we do not have the manpower
😱 All of this has to be in production in 3 weeks
Quite a transition am I right ?
First week, full conception :
🤝 Meet the BPI Team
🎨 Draw a functional diagram (user journey and data flow)
☎️ Contact all external services to make sure they meet the SLAs
🧠 Imagine high level implementations
🧮 Estimate all those
100 man/days of work to do
(2 weeks left before first bankrupcies)
So the challenge is to :
- Build a 7 people team
- Onboard them on this Domain that is new to me
- Align them on a project roadmap
- Make them collaborate to develop a complex application
- Code myself (we were short one developer)
What organization can achieve such a challenge ?
Scrum By Default
But Scrum is heavy
- Sprint iteration
- Timeboxes
- Burn down charts
In the future, there will be no developers...
Already 18 years ago
Developers have to steep themselves in the domain to build up knowledge of the business
- Team sprint -> Developer Track
- Timeboxes -> Milestones
- Points BDC -> Milestone BDC
Our adaptations
Our production process
Our team organisation
👋 Daily meetings to share achievements, difficulties and learnings
🔖 Kanban board to organize the production
🤔 Weekly retrospective to improve the way we work
📞 One meet room opened all the time
How did we build our track strategies ?
- Agile methods were built as an allergic reaction to V Cycle
- Months-long conception phase would deliver unreadable technical documentation
- Technical specification and documentation are coined as “bureaucracy”
In a nutshell
Technical Dive Ins
Our best pratices
📜 Describe models and contracts
🎨 Use the right diagrams
👨⚖️ Make technical decisions explicit
🔍 Use documents to build knowledge
☎️ List key contacts (experts and partners)
📜 Describe models and contract
A well-written implementation should be transparent, revealing the model underlying it.
Diagrams are the skeletons of ideas
Eric Evans
🎨 Use the right diagrams
The classic UML monster
C4 Model
🎨 Use the right diagrams
Entity Relationship Diagram
State Machine Diagram
Sequence Diagram
🎨 Use the right diagrams
👨⚖️ Make technical decisions explicit
- In what context did the decision happen ?
- What were the options ?
- Why did you choose this one ?
👨⚖️ Make technical decisions explicit
Step Functions
An example
🔍 Use documents to build knowledge
Crucial discoveries always emerge during the design/implementation effort
Eric Evans
☎️ List key contacts (experts and partners)
Mission complete !
Some might say : "Scrum is dead"
Where are we today ?
What worked
📚 Developers keep on building Technical documents for each feature
🧑🏭 As far as possible, we keep specialization for new features
What did not
🐣 Taking ownership is hard if you do not master the technical stack
😞 Separate goals works against team spirit
No silver bullet
Scrum
A formal methodology
- Prioritize actions to protect from wild requests
- Train new developers in high churn team
- Follow team productivity
Kanban
Make your own !
- React more quickly to situations
- Specialize team members to be more efficient
- Follow tailor made KPIs
To conclude
🧑🏭 Specialization creates efficiency and ownership but impacts team spirit and onboarding
📚 Good technical documents creates engineering thinking and helps organizing before starting to code
💡 Scrum by the book is heavy and formal, but contains good ideas that you should adapt when you start feeling the need
References
Scrum is dead : https://betterprogramming.pub/scrum-is-dead-all-hail-kanban-the-new-king-2cd6249feef8
Engineering thinking : https://medium.com/qonto-way/reintroducing-engineering-thinking-in-the-development-world-1541f7cbf1d1
C4 Model : https://c4model.com/
ADR : https://adr.github.io/
Thank you for listening !
Questions ?
Annexe
Estimation process
Split your product in bricks
Split those in tasks
Estimate tasks and apply Fibonacci
Give back power to developers
By Nicolas Ngô-Maï
Give back power to developers
- 248