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

Made with Slides.com