News for hackers. Stuff that matters.
Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @03:58PM (#30420525)
I almost agree with all of this, with the caveat of "leave developers alone".

A well functioning Agile team is talking to one another (within the team) about 50% of the time. Of a 40 hour work week, 20 of those hours ought to be spent discussing.

If you're on the development team (and you should be), you should not think of yourself as "bothering" the other members of the team when you need to discuss something with them. Doors should be open, and lost coding productivity gets made up for by making extremely sure the code that does get written is the right code.

I know it's super popular to think of alone time for developers as sacred, but it leads to worse outcomes. Honestly, at this point, developers probably shouldn't ever be coding alone to begin with, but there are limits to what people who are used to being treated a certain way will tolerate.

If you're not on the development team, fine. Leave the development team alone. But a team who doesn't have a person dedicated to figuring out what to work on next (often called the "PM"), is not going to be autonomous, and will suffer as a result.

Re:A PM's guide to communicate effectively with software eng... by DoingIsLearning on Monday February 21, 2022 @04:19PM (#30420759)
> about 50% of the time. Of a 40 hour work week, 20 of those hours ought to be spent discussing.

On a first pass, I thought this was a typo.

I genuinely cannot think of single scenario where discussion is even close to 50% percent of developer time, bar the exception of on-boarding and mentoring a recent graduate in the first month or so.

Do you mean discussion among PMs?

Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @04:37PM (#30420951)
Between discussing what to build next with your PM, discussing how to build the next thing with the experts on your team (architects, UX, devs), collaborating with other devs (pair and mob programming), figuring out how to improve the way you work as a team, not to mention the many other shared decisions a team makes, there's no way to jam all of that into anything less than 50% of your time.

Honestly, I'd expect all of that to take up your entire work day, and really to do very little else (except overhead, like filling out timesheets or training), but I understand that people are so used to working alone, it's probably not actually possible to get folks to break those (bad) habits.

Software development is done best as a team sport. I just don't see how anyone could do the prioritizations listed out in the Agile Manifesto without talking to one another, a lot:

> Individuals and interactions over processes and tools

> Working software over comprehensive documentation

> Customer collaboration over contract negotiation

> Responding to change over following a plan [0]

Every single one of these promotes communication ("talking to one another") and pushes aside "alone time". There's a reason for that.

[0] https://agilemanifesto.org/

Re:A PM's guide to communicate effectively with software eng... by losteric on Monday February 21, 2022 @05:03PM (#30421215)
What you're describing sounds much closer to my experience on a waterfall development cycle. Huge commitments without any dev-input, leading to the dev team constantly churning around knowledge silos or poor tooling setup.

My experience on agile was very different. Senior tech folks would, yes, spend up to and even more than 50% of their day in cross-team group discussions... but the junior ICs would typically spend 90%+ focusing on implementing tasks, except for the weekly sprint planning meeting.

The Agile process we had was one were stories were well-defined prior to implementation - supplemented by great documentation and test coverage. A genuine new hire would typically be able to pick up and implement small stories with zero communication overhead in their first 2 weeks. I see this as ultimate goal of an agile process - clean spec's upfront, unambiguous implementation, acceptance of potential second iterations instead of monolithic group decision making.

On that team, product had an agile process in advance of the dev sprints which built mocks and got sign-offs for implementation (I've also been on teams where design+implementation fell under the same story).

Even algorithmic or systems heavy work was still at least 60% independent work, with occasional meetings throughout the day to pass ideas by or brainstorm new areas of research.

Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @05:08PM (#30421288)
I'm not sure I know how to square "Working software over comprehensive documentation" with "well defined stories with great documentation" and "clean specs upfront".

Those sounds incompatible, I'd even go so far as to say.

Imagine throwing out every process you just described (minimal specs and plans, no contracts, no documentation, avoiding as many processes and tools as possible), and instead replacing them with conversations. You'd have those conversations (dev to dev, dev to PM, PM to customer, dev to customer), spend a few days building software, and then have those conversations all over again, continuously looping until the product is either "done" or something more important came up to work on.

Would you call that team "agile" or "waterfall"?

Re:A PM's guide to communicate effectively with software eng... by dijit on Monday February 21, 2022 @05:28PM (#30421551)
I believe that’s the definition of agile (as defined in the agile manifesto) but what is practiced as “Agile” is actually a weird waterfall pattern.
Re:A PM's guide to communicate effectively with software eng... by rzzzt on Monday February 21, 2022 @07:02PM (#30422422)
Re:A PM's guide to communicate effectively with software eng... by losteric on Monday February 21, 2022 @05:35PM (#30421626)
> Imagine throwing out every process you just described (minimal specs and plans, no contracts, no documentation, avoiding as many processes and tools as possible), and instead replacing them with conversations. You'd have those conversations (dev to dev, dev to PM, PM to customer, dev to customer), spend a few days building software, and then have those conversations all over again, continuously looping until the product is either "done" or something more important came up to work on.

> Would you call that team "agile" or "waterfall"?

Waterfall, 100%. I've been through that hell - management comes down with a date and brief elevator pitch. Then we're in constant talks over the next two weeks to hit a date no one really understands the requirements or rationales of, ironing out responsibilities between teams without any holistic long-term architectural vision (because there isn't even a product vision).

> I'm not sure I know how to square "Working software over comprehensive documentation" with "well defined stories with great documentation" and "clean specs upfront".

Comprehensive documentation literally means a very high coverage, perhaps 100% coverage of architecture docs, tutorials, design specs, etc. I said "well defined" and "great" :)

Agile is not contrary to documentation. Instead, there is a recognition that documentation's value is the time saved on development/discussion. That balance point depends on the team, and should always be considered in retrospectives.

If you're a team of 3 that all know how everything works, without immediate growth prospects... yeah, who needs docs? On the other hand, a FAANG team of 12 growing to 30 over the next 3 months will need documentation.

My "right-level" of documentation is that a junior engineer can pick up a story and ship it alone. The story is not fully-defined - implementer will have to learn some things from the docs, read through some of the code, decide on implementation strategy themselves... but they should be able to do so without meeting with others.

Meetings are expensive for teams, and context switching is expensive for ICs. Meetings that require bringing in senior engineers[1] for story-level details is all but an organizational anti-pattern.

[1] Generally, I'd regard having any single SME in the critical path of implementation is an antipattern (borrowing from kanban, this person invariably becomes a bottleneck on a large fast-paced team)

Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @05:39PM (#30421660)
So you understand that you're taking a literal primary tenet of agile and calling it "waterfall", yeah?

"Working software over comprehensive documentation" is one of only 4 values of the Agile Manifesto, and it's in direct conflict with what you're calling Agile.

Re:A PM's guide to communicate effectively with software eng... by losteric on Monday February 21, 2022 @05:49PM (#30421764)
I feel like you're spouting Agile (TM) rather than https://en.wikipedia.org/wiki/Agile_software_development - Agile is not one thing, it's certainly not a checklist. There are general philosophies of software development.

The core is really adaptive planning and acceptance/flexibility to uncertainty, biasing towards shipping first. There is no requirement to be spending all day in endless meetings, nor an opposition to documentation. If more documentation increases velocity, why would that be anti-agile?

More importantly, what works for you does not discredit another team's agile approach. I lead large and growing teams rapidly releasing greenfield software. We are definitively agile, and documentation is empirically key to that process. Perhaps your experience differs. I don't discredit that, merely provide my experience in contrast.

Re:A PM's guide to communicate effectively with software eng... by salawat on Monday February 21, 2022 @06:28PM (#30422124)
I'll second the concerns at touting FrAgile (TM). Too many teams woefully underestimate the level of work yhat goes into maintaining the full delivery of product, and the fact that as you scale up, process has to be in place to keep people working independently without running into issues.

Waterfall's issue was that it stipulated there shalt be process from stage 1 before anyone even understands WTF anyone is doing. FrAgile(TM) is notorious for just cutting people loose and winging it, with no regard to system design, architecture and maintaining a cohesive whole over the entire process that keeps your business functioning.

You can't just NOT make SOP's you can't have an onboarding process that can't ne negotiated by the average person. Doing so is a recipe for burnout/churnout and failure.

Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @07:17PM (#30422548)
So when you see, "Individuals and interactions over processes and tools." and, "Working software over comprehensive documentation." how do you square that with, "You can't just NOT make SOP's"?
Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @06:07PM (#30421939)
Hm, what is your opinion of the Agile Manifesto?
Re:A PM's guide to communicate effectively with software eng... by kungito on Monday February 21, 2022 @04:55PM (#30421151)
Half my company has this much talky talky time and its horrible for efficiency. I work on internal tooling so requirements are more clear, I spend 2-3 hours a week in meetings and I'm 3x more productive than them. My feeling is the biggest issue for the engineers spending time in meetings is that PMs are very bad at seeing technical challenges in what they are selling so there needs to be a lot of time wasted of more technical people helping them finalize the spec. In Micosoft PMs had a lot more technical background/former programmers so way less dev time was wasted in meetings
Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @05:05PM (#30421251)
I can imagine the time may seem wasted to a developer if your focus is on personal productivity (which seems to be the case since you cite your productivity rather than your team's productivity), but the lost value is in making sure what you're building is aligned with what your customers need.

The fact that you're talking about "spec" here, in addition to your focus on individual productivity makes me wonder if what you're doing fits in with what's described in what I linked (the Agile Manifesto).

Agile isn't for every team, and you can succeed despite not communicating, but there are risks and costs involved that, if made explicit, would not likely create costs you or your team would actually want to pay.

Re:A PM's guide to communicate effectively with software eng... by nicoburns on Monday February 21, 2022 @06:03PM (#30421911)
I totally agree that aligning with customer need is more than worth the time taken, but that shouldn't be taking 50% of developers time. More like 20% in my opinion. Internal collaboration between devs can take another large chunk of time, but that depends on how experienced (and how good) the developers are.

I've worked on teams with all senior developers where the dev collaboration was mostly covered within that 20%, and minimal synchronisation was needed because we were all on the same page. I've also worked on teams with lots of junior developers, and that did require a lot more detailed planning and discussion that probably did take us close to 50% discussions overall. It was probably a necessary evil, but I wouldn't call it efficient, and it certainly isn't necessary in all cases.

Re:A PM's guide to communicate effectively with software eng... by BlargMcLarg on Monday February 21, 2022 @07:00PM (#30422396)
This feels like a huge leap to justify "quantity of communication = quality of communication", while disregarding the effects it has on individuals, or the product. It also pushes people further into constant synchronous communication.

>Every single one of these promotes communication

It promotes adaptation. It doesn't specify whether it should take half your workday or just 30 minutes, that's for individuals to figure out and progressively adapt to.

Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @07:20PM (#30422572)
If you can't see how "interaction" and "collaboration" requires "communication", I probably can't help you.
Re:A PM's guide to communicate effectively with software eng... by BlargMcLarg on Monday February 21, 2022 @07:37PM (#30422725)
Fortunately I do not require your help. If you would instead highlight where exactly the manifesto requires a quantity of communication as large as half a day if not more, or prove that this is so valuable it warrants bypassing individual needs, I'm all ears.
Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @07:52PM (#30422823)
What, do you think, I meant when I wrote about "interactions" and "collaboration"? Am I quoting something or are those words I chose on my own?
Re:A PM's guide to communicate effectively with software eng... by BurningFrog on Monday February 21, 2022 @09:10PM (#30423292)
If you're pair programming, you're discussing all day.

Outside of that, yeah it's hard to imagine more than 10%, even for me.

Re:A PM's guide to communicate effectively with software eng... by ianbutler on Monday February 21, 2022 @04:10PM (#30420674)
> Honestly, at this point, developers probably shouldn't ever be coding alone to begin with, but there are limits to what people who are.

Heavy disagree, there is deep work that requires working a lone. Anything actually technically complex requires both enormous communication AND execution time. Ive worked in companies with pairing all the time and solo execution. By far solo execution of different parts with communal design and heavy communication produced the best outcomes.

Re:A PM's guide to communicate effectively with software eng... by mkl95 on Monday February 21, 2022 @04:17PM (#30420740)
> I almost agree with all of this, with the caveat of "leave developers alone".

> A well functioning Agile team is talking to one another (within the team) about 50% of the time. Of a 40 hour work week, 20 of those hours ought to be spent discussing.

I have been part of several Agile teams, starting as a junior engineer at a small startup, and eventually becoming a tech lead at a wannabe unicorn.

There's something common to all those places, and it's that spending a significant amount of time discussing things is just not possible. Spending 50% of your time discussing stuff will put a target on your back.

The pressure to deliver moderate to unrealistic amounts of work is always there. In that sense, POs and BAs never leave developers alone. Most of their time is spent making product's kitsch dreams come true.

Re:A PM's guide to communicate effectively with software eng... by Clubber on Monday February 21, 2022 @04:16PM (#30420728)
>A well functioning Agile team is talking to one another (within the team) about 50% of the time. Of a 40 hour work week, 20 of those hours ought to be spent discussing.

I've never been on a team where developers talk 50% of the time. We have a meeting to prioritize tickets once a week and talk to other devs when necessary.

If I worked at a company where devs were poking me 50% of my day, I'd leave screaming.

Re:A PM's guide to communicate effectively with software eng... by brimble on Monday February 21, 2022 @04:25PM (#30420808)
> I've never been on a team where developers talk 50% of the time. We have a meeting to prioritize tickets once a week and talk to other devs when necessary.

Shit, I have—but if you count only productive hours, it's more like 10-20% are talking :-)

Re:A PM's guide to communicate effectively with software eng... by gashmol on Monday February 21, 2022 @05:28PM (#30421544)
50% of the time talking sounds like a nightmare. I don't think you can build anything nontrivial if you get interrupted all the time.
Re:A PM's guide to communicate effectively with software eng... by TameAntelope on Monday February 21, 2022 @07:22PM (#30422582)
I would argue that the only way to build something meaningful to someone other than you is to talk about it approximately half of the time you work on it.
Re:A PM's guide to communicate effectively with software eng... by stitched2gethr on Monday February 21, 2022 @11:06PM (#30423872)
I believe many highly successful products would contradict this claim.
Re:A PM's guide to communicate effectively with software eng... by zeroonetwothree on Monday February 21, 2022 @11:08PM (#30423883)
Well you would be wrong. I’ve built many such things spending far less time discussing them.
Re:A PM's guide to communicate effectively with software eng... by btown on Monday February 21, 2022 @04:14PM (#30420711)
It's also strange that this is written as if there's no option other than "have a meeting" or "save it until tomorrow." That's what Slack is for! Start a thread, notify the right folks, but also ensure you share context about time urgency e.g. "I'd like to respond to $stakeholder today" or "Can you share thoughts sometime before standup tomorrow?" - and importantly, especially for engineers who might take things literally, make sure you share whether or not any coding action (EDIT: including digging into existing code) is requested as part of that effort.

Engineers also appreciate that their opinions are valued. Be a buffer so they don't feel like they're getting the full force of the stakeholder, but package the requests in realtime, and build a rapport so that you'll know if you're over-asking!

Re:A PM's guide to communicate effectively with software eng... by 908B64B197 on Monday February 21, 2022 @09:38PM (#30423456)
> I know it's super popular to think of alone time for developers as sacred, but it leads to worse outcomes.

As Carl Sagan said, extraordinary claims require extraordinary evidence. Have you attempted this in your organization? And measured tangible results?

> Honestly, at this point, developers probably shouldn't ever be coding alone to begin with, but there are limits to what people who are used to being treated a certain way will tolerate.

I have to be honest here: it depends a lot on the market you are hiring from and the caliber of programmers you employ. Sure, if you offshore or go for “best cost” programmers or bootcamp grads you should probably try pairing them up or at least expect to do quite a lot of handholding.

But if you hire real engineers you won’t need to do that. Anyways, if you do try it… good luck keeping them in your org for more than a month!

Re:A PM's guide to communicate effectively with software eng... by sanderjd on Tuesday February 22, 2022 @04:40PM (#30434263)
Communication is important but 50% seems really high to me. I would feel very hassled and would before long quit a team structured the way you describe here. Diff'rent strokes for diff'rent folks I guess.