If Scrum is so great
substack.com
substack.com
Scrum gives them tools to understand if there is progress or not: Is the burndown chart nicely on a downward trend? Are tickets closed? Is the sprint "green" or not? I won't blame them. They are clueless. But I hate it!
This is truth. A lot of "managers" in engineering just can't fathom the complexity. Even if they have an engineering background, even if they coded for 10 years, they can't fathom the complexity.
Some of the reasons I have discovered are
- They think of every project as "greenfield" with a clean slate, whereas 99% of the projects are built on old tech debt accumulated over years and increasing in complexity. Remember their old tech debt decision from Q4 of 2021? Yeah they don't remember it and can't fathom how that decision led to today's problems.
- They think every "headcount" at all the immense rungs of the ladder are the same. Remember that guy they fired in Q2 of 2022? Yeah they don't remember it and can't fathom how firing a person with context cannot be backfilled to the same level of context, even with an ex-faang label.
Ultimately, management does not see the pile of garbage their decisions have made. That pile is left to the garbage pickers (engineers) while they themselves just think about how to look good to execs.
So the problem is that the one button is buried under stacks and frameworks multiple layers deep. Is it a failure of management to consider a single button change an easy task when it should, in fact, be an easy task?
And the guy that they fired (possibly for good cause). Did we take the time to train and/or learn the items that were handled by this person? Granted, maybe we didn't have management that prioritized passing that person's work off to the next candidate.
I think software developers are as just as much to blame as management for these types of problems. I am one of them, so I'm pointing at myself here too. There are problems to be addressed going in both directions, from my take.
This is a great example. Why? Because you called out complexity. Specifically, that an engineering org should try to minimize complexity. And yet, the framework for adding a button is immensely complex. Why? Because management wanted a "complexity" aspect for the button framework project. Without the "complexity" aspect, the engineer on it wouldn't get a promo and management wouldn't get additional headcount for their own promo.
> And the guy that they fired (possibly for good cause)
Likely fired to serve a stack rank. Someone had to fall at the bottom in Q2 2022. Unfortunately their exact context and expertise is required in Q2 2024 and the backfill just doesn't have 5 years with our complex button framework yet.
I am sorry. Devs cannot be blamed for poor management practices such as "complexity" and "stack ranking".
Many do, though, whether electronic:
https://gettingthingsdone.com/ (OmniFocus, Things, and many others based on this)
Or paper:
And executives love task and priority tracking, here's 50 of their favorites:
https://www.spica.com/blog/time-management-techniques
They probably even use Trello or Todoist at home...
But much of what you see in vogue today (i.e. OKRs for middle mgmt.) is colored by Andy Grove's "High Output Management":
https://medium.com/@iantien/top-takeaways-from-andy-grove-s-...
Or "The Toyota Way", which actually agrees, don't use SCRUM, use Kanban.
FWIW, really grokking Kanban, and using it for oneself, can be useful no matter the role, as talked about here:
https://www.personalkanban.com/
Tools like Sunsama can help teach, use, understand and internalize the most valuable parts of a few minute Kanban ritual in the morning and evening:
Try it for a week.
Tech corporations needed a path away from waterfall and to appeal to new developers, so they took it, adapted it to existing structures and mashed it up into the rituals we have today.
Issue is those people are usually more pushy, talkative, so it is easier for them to take over and having devs as pushovers.
I work in a company where me and other senior devs made sure that we run the scrum and we use scrum as our shield.
They want to change the scope? well wait till end of the sprint and add new requirements to our refinement , we will see if you have written good requirements or if not we send it back to drawing board. Velocity is not ever increasing, velocity is for us to make sure we don’t put to much work when someone is on vacation or we have new team member that needs onboarding.
Yes there are hotfixes and special cases where we drop stuff and work on something that has priority, but it is not someone just telling us - but you have senior devs to talk to first and explain that really is special case. Because if something really helps us to make customer happy I am also happy to jump on that to fix it.
Your work needs to bring in $300,000 of new revenue this quarter or you're fired. You are responsible for all support of that product - no on call rotation. You can have QA help but they get that part of your revenue target.
Scrum is most definitely not "agile" by most definitions. The process of planning and retroactive review are important agile concepts. But scrum has been significantly distorted in most cases to become the antithesis of agile.
SAFe is even more a divergence from Manifesto Agile. Maybe it's justified because corporations haven't figure out how to do big corporate things using an agile approach. Toyota is probably the exception, since they basically invented the groundwork for Agile today.
Maybe I am missing something here?
You might argue that companies should hire more competent developers who fully understand the business domain issues. But there are few of those available at any price, especially in complex fields like healthcare.
Like... it seems plausible that developing a piece of software and, say, deciding whether to do a merger benefit from different planning and management styles.
Here's the thing: I've been developing software for 40 years now and while Scrum definitely has its issues and can be abused - I'm not denying that! - it is loads better than what we were using before! No comparison!
Scrum is dumb? Okay. Cool. What's your alternative?
What OP wrote: "Scrum definitely has its issues and can be abused"
I don't have a perfect solution, but the best one I've implemented so far works only in small teams, and is effectively Kanban-driven development. I try to stay close to The Toyota Way, which I learned while working in medical device (where they, like aerospace, draw a lot of inspiration from our industrial engineering forefathers).
I guess my solution is - create many small teams, let them implement "lightweight scrum" where the Kanban board is the main discussion point every day. What tasks are pending, what's next, what is stuck? And finally, let the small teams throw away anything they don't like, including the board, as long as they meet their deliverables defined by the broader team.
Is this too Scrum-y still? Maybe. But Scrum has lost its way and its time to just return to the basics and implement stuff that's worked for decades in other industries. Software Engineering had its chance to play around and re-invent the wheel, going all the way back to Fred Brooks Mythical Man-Month. The industry has had 50 years to get its shit together, which is an absolute eternity and inexcusable for how shitty a state of affairs we have now, in terms of program management philosophies. Frankly I'm interested in just using the original wheel at this point, where we assign tasks to teams and estimate them USING REAL TIME ESTIMATES (not story points like we are fucking fairy tales).
I care more about making high-quality software and less about management philosophies these days.
More about my rant here - https://www.ashwinsundar.com/story-points-stupid/
I've never met a business stakeholder who gives two shits how engineering manages their work - all they care about is when am I going to get it and how much is it going to cost me - and how accurate and reliable are these answers?
As far as letting engineers manage themselves - if the scope of work is small enough and there's no dependence on other teams or vendors delivering needed components then sure, do whatever you want. It's often inappropriate to apply much rigor to such small projects. Skunk work projects can also be managed that way.
If your engineering department is being heavy-handed in how they apply project management to all their projects, then that's on them. But realize it is their job to ensure the work is getting done.