this post was submitted on 05 Jun 2024
423 points (94.5% liked)

Programming

17432 readers
134 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] pixxelkick@lemmy.world 30 points 5 months ago (1 children)

I've literally never actually seen a self proclaimed "agile" company at all get agile right.

If your developers are on teams that are tied to and own specific projects, that's not agile.

If you involve the clients in the scrum meeting, that's not agile.

If your devs aren't often opening PRs on a variety of different projects all over the place, you very likely aren't agile.

If your devs can't open up a PR in git as the way to perform devops, you aren't agile.

Instead you have most of the time devs rotting away on the sane project forever and everyone on "teams" siloed away from each other with very little criss talk, devops is maintained by like 1-2 ppl by hand, and tonnes of ppl all the time keep getting stuck on specific chunks of domains because "they worked on it so they knpw how it works"

Shortly after the dev burns out because no one can keep working on the same 1 thing endlessly and not slowly come to fucking losthe their job.

Everyone forgets the first core principle if an agile workplace and literally its namesake us devs gotta be allowed to free roam.

Let them take a break and go work on another project or chunk of the domain. Let them go tinker with another problem. Let them pop in to help another group out with something.

A really helpful metric, to be honest, of agile "health" at your company is monitor how many distinct repos devs are opening PRs into per year on average.

A healthy company should often see many devs contributing to numerous projects all over the company per year, not just sitting and slowly be coming welded to the hull of ThatOneProject.

[–] Waldowal@lemmy.world 17 points 5 months ago* (last edited 5 months ago) (1 children)

I don't disagree with you (on giving devs some creative freedom), but "Agile" as a process methodology isn't about developers working on multiple things to keep their interests up.

[–] pixxelkick@lemmy.world 2 points 5 months ago (1 children)

That's actually a pretty important part of its original premise.

It's a big part of why scrum meetings were a thing, as the expectation was any curious dev could just join in to see what's up, if they like.

Not tying devs down to 1 specific thing is like the cornerstone of agile, and over many years of marketing and corporate bastardization, everyone had completely forgotten that was literally the point.

The whole point of the process was to address 2 things:

  1. That client requirements can't easily be 100% covered day one (But you still need to get as many as you can!)

  2. To avoid silo'ing and tying devs down to specific things, and running into the one bus rule ("how fucked would this project be if got hit by a bus?")

And the prime solution posited is to approach your internal projects the same way open source works. Keep it open and available to the whole company, any dev can check it out, chime in if they're familiar with a challenge, etc.

One big issue often noted in non-agile companies (aka almost all of them) is that a dev slent ages hacking away at an issue with little success, only to find out far too late someone else in the company already has solved that one before.

An actually agile approach should be way more open and free range. Devs should be constantly encouraged to cross pollinate info, tips, help each other, post about their issues, etc. There should be first class supported communication channels for asking for help and tips company wide.

If your company doesn't even have a "ask for help on (common topic)" channel for peeps to imfoshare, you are soooooooo far away from being agile yet.

[–] Waldowal@lemmy.world 2 points 5 months ago (1 children)

I don't know man. Nothing in the Agile Manifesto talks about not focusing on one project.

In addition, I think most people (and studies) would agree that "focus" is key to building almost anything of quality. Not flittering about working on shiny pennies of the day. I mean, a key tenant of sprints is "Don't interrupt the sprint". The whole concept is about letting developers focus.

Agree to disagree I guess.

[–] pixxelkick@lemmy.world 2 points 5 months ago

Might wanna read it again, it's right there :)

The best architectures, requirements, and designs emerge from self-organizing teams.

It's an incredibly critical part companies love to completely ignore.

If you assign devs to teams and lock em down, you've violated a core principle

And it's a key role in being able to achieve these two:

Agile processes promote sustainable development.

And

The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

This is talked about at length by the likes of Fowler, who talk about how locking devs down us a super fast way to kill sustainable development. It burns devs out fast as hell.

Note that it's careful not to say on the same project