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 :
What organization can achieve such a challenge ?
Scrum By Default
But Scrum is heavy
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
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 ?
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
👨⚖️ 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
Kanban
Make your own !
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