A STEP BACK
Waterfall shows we can plan in advance
and have all under control for the whole
Learn from feedbacks and errors, or
commonly said “adapt and evolve”. Sprint
after sprint the product and team evolve
and became faster, everything goes
SOME KEY POINTS
Scrum is a framework to develop
WHAT DOES “COMPLEX PRODUCTS” MEAN?
➤ Something diﬃcult to develop?
➤ Something new/innovative?
➤ That requires some research?
➤ Outside the team or agency knowledge or DNA?
➤ Something that requires many weeks of work? And, how much is many?
➤ Something that interacts with other software and teams (maybe outside our team/
➤ Some requirements and customizations that shift the complexity
There is not a clear deﬁnition of “complex product”
WE CAN FIND OUT WHAT DOES IT MEAN FOR US
➤ Is building a TYPO3 website complex for you?
(substitute TYPO3 with your common technology)
➤ Would you say that a product built in 4 sprint is complex?
And 10 sprints? What about 50 sprints?
➤ For a team of 7 persons?
Two or more teams?
AN EXAMPLE ABOUT BUDGET
For a 7 person team (5devs, 1PO, 1SM)
7 * 40h = 280h per week
A 2 week sprint is around 560h
A 10 sprint development is around 5600h
Multiply for your average hourly cost, you do the math
TYPICAL WEB AGENCY
- small projects
- low budgets
- small teams
- many projects at time
- PO/PM busy
- support old projects
- budget out of control
- pre-estimations for contract negotiation
- stakeholders not in Scrum
- Scrum not well implemented
- meetings, meetings everywhere
- external teams
- external designers
A ROOT OF MANY PROBLEMS: THE PO IS ALWAYS BUSY
PO in web agencies take care of multiple project at time.
PO cannot really care of a product, he or she has to deal with several stakeholders,
requests, phone calls.
Pretty often he or she cannot attend Scrum events.
Stories are bad written, often in a form of task more than a story.
The PO decide not only what to do but how to do it.
SCRUM IN WEB AGENCIES VS SCRUM COMPLEX PRODUCT
Multiple parallel projects
Non consecutive sprints timeline
Team detached from designers and
Team constantly interrupted for new leads
Short-term / low budget projects
Give-up on scrum events
One team is fully dedicated to one
Long term development
A feedback culture and
retrospectives to improve the team
and the product
Enough “heads” to ensure new ideas
and point of views or brainstorming
IF THE ONLY TOOL YOU HAVE IS A HAMMER,
EVERYTHING IS A NAIL
WHERE SCRUM OFFER ITS BEST
Scrum give its best on:
Long term products development > 10sprints
Middle size teams: 5-7 developers
A fully dedicated PO
Agile environment (including stakeholders)
On complex products development
And suggestions from my personal experience
SOME GENERAL SUGGESTIONS
Promote ownership into the team
Let the team collaborate with the client, but at the same time protect
Devs: ask why, what's the beneﬁt, the reason, the goal
Focus on one project per team at time, avoid unnecessary meetings
Give the team a constant pace
FIRST IDEA: KEEP SCRUM AND ADAPT IT TO SCALE DOWN
Scrum in small teams of 2-4 Devs
Enable and promote the ﬁgure of developer/SM
Promote a PO-substitute or representative inside the team
Enhance the client collaboration and a culture of feedbacks
Review per each story on deployment
Create a retrospective event with several teams in order to promote
innovation for the agency
WHERE IT WORKS BEST
Small teams with senior developers
Able to consult the client
With a “lean mindset”
Using no estimates
WHAT COULD GO WRONG
Teams are not large enough to ensure adequate skill sets
Scrum could be wrongly adapted, the lack of dedicated scrum masters
could degenerate into faulty scrum
Altering the roles, the principles, artefacts and scrum events could
make the “adapted-scrum” framework collapsing
ALTERNATIVE IDEA: SCRUMBAN
A hybrid solution based on Kanban with some of Scrum concepts.
A pre-planning with few devs and POs with estimations
A daily in front of the Kanban board
Pairing or dev solo
A weekly pace, for example monday-friday “sprint”
A “recap” in the end of the week, clean the board
An agency retrospective once or twice a month
WHERE IT WORKS BEST
Small feature (1-2 weeks max)
Where there is no need of brainstorming
For example after a go-live
WHAT COULD GO WRONG
It’s not scrum
There is not much collaboration between developers
If a scrum-able project comes, it could be very diﬃcult go back to real
Not control on tasks over stories, or bad written stories
Developers don’t have a real opportunity to oﬀer their experience on
Implement the culture of deploy and learn from the market, and not
just accomplish client requests
Implement the concept of Lean development
Minimal Viable Product (MVP)
MoSCoW method of prioritisation (Must, Should, Could, Would)
Explicit goals and beneﬁts for each story and tasks
Never compromise on quality
No estimate Scrum
Approach the “known unknown” with time-limit “spike” tasks
Small frequent releases
Integrate designers into dev teams
It’s an approach in Scrum to avoid wasting time in estimations and
focus on development.
It works pretty good in conjunction with spikes and expert small teams
It’s a break change approach especially in those environments where
estimations are “important”
A spike is a product-testing method that uses the simplest possible
program to explore potential solutions. It is used to determine how
much work will be required to solve or work around a software issue
A spike is an “exploration task” to make an unknown topic less
Instead of story points it has a ﬁxed time, in that time the team tries to
identify the boundary of the problem, do research, maybe solve the issue
if possible in the time.
Result of the spike is a more well deﬁned task/story in the backlog
The whole team works on the same thing, at the same time, in the same
space on a single computer
It’s an intense brainstorming-developing session
Similar to pair programming but extended to the whole team
If you are using scrum try to add a designer into the dev team,
participate in scrum events, be part of the dev team
Try also pair programming or mob programming with designer
Transfer to designers the concepts of application workﬂow
DO YOU WANT SHARE SOME IDEA?
Feel free to share :)