When a team of programmers is left to their own devices, they too screw shit up. They all do things in their own way and argue over what is best, and often fail to see the bigger picture.
I watch scope creep and lack of organizational planning from both programmers and managers. It’s all personality issues.
I also don’t believe anyone actually follows or knows what agile is (not saying I do either). Everyone on every team at every place sure talks about it, but it doesn’t seem like anyone actually does it. These are all just labels for “we adapted as we went.”
Found the PM/TPM. The best software was written without Agile and PMs/TPMs. It’s only after software becomes successful that the need is felt for that stuff.
The world runs on open source software and I don’t know of a single open source project that uses Agile or PMs/TPMs.
What? I’m not privy to RedHat/IBM/Google’s internal processes but they are all massive FOSS contributors at least some of which I assume are using Agile internally. The Linux kernel is mostly corpo-backed nowadays.
The development cycle of FOSS is highly compatible with Agile processes, especially as you tend towards the Linux Kernel style of contributing where every patch is expected to be small and atomic. A scrum team can 100% set as a Sprint Goal “implement and submit patches for XYZ in kernel”.
Also agile ≠ scrum. If you’re managing a small github project by sorting issues by votes and working on the top result, then congratulations, you’re following an ad-hoc agile process.
I think what you’re actually mad at is corporate structures. They systematically breed misaligned incentives proportional to the structure’s size, and the top-down hierarchy means you can’t just fork a project when disagreements lead to dead ends. This will be true whether you’re doing waterfall or scrum.
What’s agile?
A family of software development processes for teams, which focuses on cycles of quickly building and delivering smaller blocks of program functionally (often just a single program feature - say: “search customers by last name” - or just part of a feature) to end-users so as to get quick feedback from those users of the software, which is then is use to determining what should be done for subsequent cycles.
When done properly it addresses the issues of older software development processes (such as the Waterfall process) in siuations where the users don’t really have a detailed vision of what the software needs to do for them (which are the most usual situations unless the software just helps automates their present way of doing things) or there are frequent changes of what they need the software to do for them (i.e. they already use the software but frequently need new software features or tweaks to existing features).
In my own career of over two decades I only ever seen it done properly maybe once or twice. The problem is that “doing Agile” became fashionable at a certain point maybe a decade ago and pretty much a requirement to have in one’s CV as a programmer, so you end up with lots of teams mindlessly “doing Agile” by doing some of the practices from Agile (say, the stand up meeting or paired programming) without including other practices and elements of the process (and adjusting them for their local situation) thus not achieving what that process is meant to achieve - essentially they don’t really understand it as a software development process which is more adequate for some situations and less for others and what it actually is supposed to achieve and how.
(The most frequent things not being done are those around participation of the end-users of the software in evaluating what has been done in the last cycle, determining new features and feature tweaks for the next cycle and prioritizing them. The funny bit is that these are core parts of making Agile deliver its greatest benefits as a software development process, so basically most teams aren’t doing the part of Agile that actually makes it deliver superior results to most other methods).
It doesn’t help that to really and fully get the purpose of Agile and how it achieves it, you generally need to be at the level of experience at which you’re looking at the actual process of making software (the kind of people with at least a decade of experience and titles like Software Architect) which, given how ageist a lot of the Industry is are pretty rare, so Agile is usually being done by “kids” in a monkey-sees-monkey-does way without understanding it as a process, hence why it, unsurprising, has by now gotten a bit of a bad name (as with everything, the right tool should be used for the right job).
HOW MANY STORY POINTS DOES IT TAKE TO SAVE THE WORLD?
WHY DID THIS 3 POINTER TAKE FIVE DAYS
YES YES, IT’S NOT TIME BUT WE ARE TRACKING IT THAT WAY BUT IT’S IMPORTANT FOR YOU TO NOT THINK OF IT THAT WAY WHEN YOU ESTIMATE BUT WHY DID YOU GO OVER THREE DAYS
Don’t look at me. I voted five. And then when the scrum master was like, “jubilationtcornpone, are you ok with it being a three?” I said “No.” But someone who thought they knew better decided it was going to be a three anyways.
Let’s all head to the conference room, so we can discuss the definition of a story point for an hour. I’d also like to talk about why we are behind schedule and our velocity is dipping. Let’s make it two hours.
Management where I work finally unbent and admitted that story points were time.
…but also want to continue raising velocity in each sprint.
Dont worry, they are unserious about actual results; they just care about the appearance of results that they can report up. Just start padding extra… Fucking story points…jesus… To each ticket. Now everyones charts look like their velocity increased. Dont worry, noone is actually measuring results.
That’s exactly what we ended up doing. Every story has now become one Fibonacci step higher than it would have been before.
I don’t even see why them roughly representing time is a problem due to them raising in a fibonacci sequence.
If they were a day each, it’s not like the jump from 5 to 8 means it’s going to take 3 more days, but that it’s gotten more complex and maybe it’ll still be 5 or 6 days but I can’t be sure because this one has a lot more unknowns that might not reveal themselves until I’m into it. That’s why we’re forced to go from 5 to 8 and not a 6 or 7.
The uncertainty is built right into it, so it can’t be exact time, but at the same time trying to ignore that they’re still time related is stupid.
Sounds like a good time to start padding estimates.
Not programming, but the plot of Shin Godzilla was about bureaucratic red tape holding back the actual solutions.
The project manager keeps asking for an update every 15 minutes.
Not only do I feel this in my soul, I’ve been working for almost 13 years, and to this day, I’m still not sure what a project manager contributes.
The only thing I can tell is that their job is to be the designated impatient person.
Good project managers are invaluable. I’d much rather explain status to a sympathetic ear and have them reword it for diplomacy than try and directly advocate with executives - and I celebrate any customer communications I don’t have to be a party to.
When PMs act like part of the dev team and handle the communication side of the project it lets devs focus on the important shit… and if your PM is asking for daily updates then they’re too green (or you’re too unreliable) to have built up a good level of trust. Nobody fucking cares if a project is delivered at 3PM or 4PM, so who the fuck cares about daily or hourly project updates - the status won’t be materially different.
It’s like managers or fellow developers - good ones are invaluable and shitty ones make everyone’s lives harder… the difference is that PM seems to be a position that attracts do-nothing folks so it’s more likely you’ll get a shitty roll.
I have a friend who was a project manager. He took the time to learn every platform used by his team, but held no pretenses that he could actually develop anything without the team. His main goal was filter all the horseshit from the stakeholders and higher-ups so that they wouldn’t overwhelm the team with minutia. By learning the platforms and observing the team developing, he could make accurate predictions on timeliness based on whatever arbitrary feature was being requested and he’d always answer “let me ask my team” before discussing deliverables if he wasn’t sure.
The number of times that he explained in meetings that’s the team’s timeline didn’t change, but that the stakeholders’ expectations did and that introduced a new additional timeline was incredible. It’s unsurprising that he only lasted a year or two before his bosses started pushing for a promotion. Seeing him work made mean bit jealous that I couldn’t be on his team, but we work at different companies and I don’t want to join the private sector if I can be of benefit to public education.
I don’t work in software, I’m a chemical (aka process) engineer.
Some project managers are superfluous if they don’t have a background being an engineer of some discipline themselves, but the vast majority I’ve worked with are excellent because they have a working knowledge of everything required to progress each stage of the project, and deal with most of the client interactions.
Being able to say: “we’ve done x, but we still need y, z and aa to progress” and then the project manager organising this getting done together with the other discipline leads is a godsend, letting you focus on doing the actual calculations/design/nitty-gritty details. And the fact they manage the annoying role of dealing with clients and the disagreements around that is also great.
This is working as a consultant, but I imagine if you replace clients with higher ups, I’d imagine the same still applies.
Perhaps things are very different in software, but I do think there is some use for them.
But I’ve never had one check up every 15 mins, more like once a day, and only if something is very time sensitive. Otherwise it’s once a week, or by email as required.
I’m a project manager for a team of IT systems, engineering, and infrastructure folks with just over twenty folks and my key purpose on earth is that I take one hour or less of their time once a week and by doing so they never have an email or conversation with anyone else outside of our team. I know enough to talk to any stakeholders and complete monthly status reports by simply knowing what is going on and communicating strategy to them. I’ve been praised heavily which feels very dirty being an individual contributor for so long in my career. I can speak the same language as everyone on my team spanning logistics, networking, systems, and software development but I don’t DO anything. I have major imposter syndrome as I near retirement so the praise is also appreciated greatly from them. It’s a really weird period in my career.