πŸ‘€hadriπŸ•‘6yπŸ”Ό183πŸ—¨οΈ248

(Replying to PARENT post)

> I followed my mentor’s advice and started to check-in at least every half day with each pair of engineers I was working with.

This is monumentally bad advice.

> I try to find a time when a pair does not seem to be heavily focused. Some of the cues might be they are having a casual non-work related conversation or are just returning from a break

So surveill and/or eavesdrop and/or ambush. Nice.

> Hadrien Raffalli is a Product Lead at Pivotal.

Here's me thinking it's probably a more junior PM doing this. Nope, it's a Product Lead.

PMs/TPMs can be great, if they are good. I've worked with some that made my life easier. I've worked with others who really didn't.

Based on this article alone, Pivotal's PMs would make me quit.

πŸ‘€whycombagatorπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

There seems to be a lot of misunderstanding about this article.

First, you have to understand the context. This person is talking about an Extreme Programming team. Speaking as someone who wrote a book about XP, here are some things that are true about by-the-book XP teams:

1) All production programming is done in pairs, all the time.

2) Everybody sits in a shared team room at dedicated "pairing stations."

3) The atmosphere is highly collaborative and friendly, and there's always a low buzz of conversation in the room. Interruptions are normal and expected, as the team's overall performance is valued more highly than individual performance. Due to pairing, interruptions tend not to interrupt flow.

4) Requirements are conveyed verbally, not through written documents. Stories are short "reminders to hold a conversation," not fully-fleshed out.

5) The team values feedback and wants frequent conversations with their on-site customers (including the product manager) to confirm that they're on the right track, particularly about nitpicky details that are difficult to anticipate in advance.

Given this context, the author is talking about how he, as a product manager, does his job of providing business context and customers' points of view.

This material is not meant for people who aren't on an XP team. It's good advice for product managers who are.

πŸ‘€jdlshoreπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> 1. Check-in regularly

> I followed my mentor’s advice and started to check-in at least every half day with each pair of engineers I was working with

Uuuuhhh...

If a PM did that with me when I have a lot of work to do it'd send me off the rails.

This article seems more to be about "what I have done as a non-technical PM to reduce my own anxiety at the detriment of my team".

It's hard to say without a lot of detail, but I think there's something disfunctional about the team or about how the project is structured in this example. How big are the tickets? It's common for a "user story" to take days or weeks; it can say something simple like "user can submit a form" but have a lot of big system dependencies that were not well thought out (a form system, a state system, a server component, etc).

Instead, tasks must follow a technical logic (a form system first, state management after, etc) and engineers should be left to do their own thing, with minimal "checking". Something like BaseCamp's "Shape Up" [1] comes into mind, with a few bets every cycle.

1: https://basecamp.com/shapeup/

πŸ‘€whatever_dudeπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I'm a PM and this does not resonate with me. If you're getting status twice a day... I think something is very wrong.

The brutal truth of software development is that the quality of your output is going to vary with the quality of the engineers you work with. Good engineers don't need daily standups to build great products, and bad engineers aren't going to be helped by doing twice-daily checkins.

πŸ‘€tschwimmerπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Seems like engineers are not trusted to do their job. I mean if you hire lots of inexperienced engineers, fair enough, but I certainly wouldn't work at Pivotal.

If my PM was constantly worrying about whether I was distracted, or working on something outside of the backlog, I wouldn't be too happy about that. As an engineer, part of my job is to prioritize my daily and weekly tasks, and to avoid getting distracted throughout the day. Unless their is a hard deadline coming up soon (in which case it is helpful to check in with the PM so you know what to cut), requesting status updates on stories on a daily basis seems like way too much. If you want a window into what I am doing, come to standup (which should be async most of the time anyways, IMO).

I've worked at a company founded by people from Pivotal, with a very similar culture, and I'm not very surprised by this post. There were a lot of new bootcamp grads and more inexperienced developers, so the company didn't really give them the same freedom that developers are used to. Everyone pair programmed all the time, even when doing basic UI work (super exhausting), working hours were fairly strict, and work was broken down fairly finely. For better or worse, developers were treated more like just people who can write code, for the most part, rather than people who are able to intelligently prioritise tasks and take initiative on things that need to be done.

πŸ‘€GhostVIIπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

You know what I don't get about status updates? We're all using tools like Jira, Trello, Pivotal Tracker, GitHub issues, etc., where you can see what everyone's working on and the status of each of those tasks. Why do we need frequent status updates like standups and PMs looking over our shoulders if you can just go to the project board and look for yourself? If I'm going to be asked about the status of what I'm doing every day, then don't make me use these systems.

It's like that episode of Seinfeld where Kramer pretends to be Moviefone. "To update the status of your ticket, press 1 now. .......... Why don't you just tell me the status of your ticket?"

πŸ‘€ravenstineπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Is it really common for software engineers to work under these conditions? As an electrical Engineers I have plenty of deadlines and do plenty of work with PMs, but none of this daily standup and thankfully Jira was recently dropped as it was considered more trouble than it is worth (management just wanted to know the big things going on and not all things). Of course it's better than plenty of other jobs, but the constant treatment of employees like they're on an assembly line sounds rough. I know software development is tough and respect those that do it. I have critical time sensitive tasks and I'm expected to have them completed on time. My manager might check in once a month on a year long 1/4 million dollar project among all the other work I do. I know that's peanuts compared to a large software project, but still.
πŸ‘€6thaccount2πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Here is a missing advice in the art of interrupting software engineers: don't. Use asynchronous messaging, not alert-based messaging. Send emails. Make sure they read emails once a day and only interrupt if your question is really more urgent than that.

Thanks.

Daily meetings are not good. They waste people time and constitute an interruption. If you can sync the whole team so that the meeting happens on the morning before people start working, that's better, but still not good as you are imposing a schedule on a team that may know better.

I just finished a deadline at 2 am yesterday. My team is sane and did not expect me in the morning today (joined the slack around 11 am). Would not have done that if I had a daily at 9:30 am. I would not only have missed the deadline but the daily would have even further delayed it. What's more, I would have spent some time preparing it because I would feel I need excuses ready in case someone starts a blame-game.

If developers time is precious, don't waste one hour per day on dailies/daily preparation.

πŸ‘€IvπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

There are two times of the day to catch software engineers: the start and end of the day. Usually at the start of the day we haven't gotten our minds into "programming mode" yet. By the end of the day, mental fatigue is setting in.

The team I joined - 4 developers and 1 manager - goes for a coffee walk in the morning. The manager waits for us to go through email and other communication that came in overnight. Then we walk to a nearby coffee shop. On the walk, we discuss issues and what we intend to accomplish for the day. It takes about 20 minutes.

Occasionally, we take a walk at the end of the day as well to discuss issues. When the manager calls for an end of day walk he senses our energy is low.

As I get older, I like routines in the morning. They help me get my mind in gear. We go for the coffee walk. When we get back I might read a short technical article. Then it's time to get stuff done.

πŸ‘€bpyneπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I honestly can't tell if this is a terrible practice or just the worst possible way to describe it for the HN crowd.

People who end up in manager roles tend to be people persons and some use very touchy-feely language. I'm personally put off by all the references to his own anxiety as just one example. That doesn't necessarily mean he's actually a terrible manager.

Part of his job is to make sure things get delivered in a timely fashion. If that's not happening, then feeling stressed by it isn't unreasonable, but the article sounds like he's just trying to manage his emotions rather than get deliverables from his people in a timely fashion.

I'm not posting this to dog the author. I'm posting this to suggest that his framing may reflect the fact that his job involves managing people rather than things.

If it were framed differently, the exact same practices might sound much more reasonable and palatable to people here on HN who are overall reacting fairly negatively to this.

πŸ‘€DoreenMicheleπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The Art of Micromanaging Software Engineers!

Here's the thing: as programmers we sometimes have a bad day. Sometimes a bad week or two. Sometimes there is unresolved ambiguity in how something needs to be done that we tend to procrastinate on it until it becomes clear. When you're working through an agile/XP backlog - a never-ending backlog mind you - you're expected to produce at a consistent cadence, not much different from laying brick after brick, but unlike construction, this one is an infinite pool of uninteresting work.

This is common in consulting work. Agile and XP were created by consultants to create predictability in delivery. It makes sense for that context - clients are often far removed from the consultants, there is no intrinsic alignment between their incentives, and being external people there is always an information gap in what is best for the company and whether the contractors are making actual progress.

So you need a way to smoothen this out. Transparency, constant communication, a structured process, consistent cadence, measurable metrics, and most importantly number of hours with your bum on the seat.

When consulting companies start out, there is a distinct messaging on their websites: "we don't want to be just consultants, we want to be an integral part of your team" or suchlike. See, we also want meaningful work, we want to truly participate in your business. But as consulting companies mature they realize this is not a feasible approach at scale. While external messaging might not change, internally they realize the business is about selling X number of hours in a year per consultant, with a percentage of their earnings as your profit margin. To make this work, you need Agile/XP. You need to bring Taylorism back into the world of programming. That is just the systemic incentive of this sort of business. Companies that fail to realize this and change accordingly (the idealists) go out of business very fast. Others thrive.

Within this system it is still possible to have meaningful work for developers (I've worked in such companies, and I've enjoyed it). But if you have a micro-managing PM like in this article, then better run for the hills or you'll find out hating IT and fully burnt out in a few years.

πŸ‘€jasimπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> This was mostly me passing by and asking how things were going

Hello Peter whaaaat's happening?

πŸ‘€rchπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Thank you for reminding me how much I dislike working with PMs

I especially can't imagine working with this one. Imagine constantly having to revise estimates and getting micromanaged by someone who isn't your manager. The "role responsibilities" conversation would happen very quickly

I find it especially ridiculous that this person is interrupting people two times a day for fresh updates on top of a daily standup. And they even admit their technical knowledge is not good enough to actually be able to help much if there is an issue. If you are bothering and interrupting every single person on your team multiple times a day just in case you need to increment a number in a JIRA board now instead of tomorrow morning, you are wasting people's time. Leave it to the standup.

Your job as a PM is not to micromanage engineers. If that is anybody's job, that is the engineers' managers. Your job is to make the engineers more productive and make sure they're working on the right things - but not at an hourly granularity.

πŸ‘€opportuneπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I work for Pivotal. Product managers vary in how they work with a team, so this approach is new to me.

As an anchor (approximately a tech lead) I made it my business to work closely with PMs on the product: giving feedback on how the technical direction was shaping up, asking for stories to be updated or broken apart, giving options for technical seams and so on. Frequently we embed product designers as well, so discussing design options and asking for modifications was common.

But when I was pairing with another engineer we did whatever was on the top of the backlog according to our best judgement and with attention to quality. If it needed refactoring, we refactored. If we felt that would be better to wait, it would wait.

The most important discussion, I found, was about chores -- work that engineers view as paying dividends in future velocity. Our view is that engineering is the ultimate owner of chores and can schedule them according to its considered discretion. The system works because of trust. I trust that product managers and product designers will be diligent in identifying user values and priorities. They can trust us to do what needs to be done to make the software to a sustainable high quality.

I remember once I was rotated in as anchor for a product that had begun to struggle a bit. In particular we had a particular giant tech debt: we had fallen behind on React versions. Worse, there were three parts of the codebase using React, in three different ways. With my peers I decided that we were going to fix it. "I think it will take one pair week", I remember saying.

It took five weeks. But nobody ever said: stop, you work for me, my way or the highway. We talked about the reasons. This tech debt would only grow as time passed. There was no good time to repay it, so sooner was better than later.

We were trusted to do the right thing, so we did the right thing.

πŸ‘€jacques_chesterπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

If I had a PM come by my office twice a day to "check-in" I think I'd quit.
πŸ‘€raptorfactorπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

One trick a lot of PMs and other managers don't seem to understand is to listen and really understand what people are dealing with. If people are complaining about something then listen and see if you can improve the situation. It doesn't help to constantly ask "When is it done?" but you should ask "How can I help?". And then really help and don't just set up more meetings that don't result in anything.

Also, learn how to use JIRA or whatever tracking is being used. In my company managers doesn't bother to look at the JIRA board so you end up reporting the same thing five times to different management levels.

In short, be less controlling but try to help and treat people like professionals who know what they are doing.

πŸ‘€IdidntdothisπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This should be called the art of micromanagement. It's complete bullshit. I've worked under such conditions for a few months and I came very close to quitting. I didn't quit because it eventually stopped but I was considering some offers. This is one way to get your top engineers to quit. Why even hire product managers if this is what they think the job is? Save money. All they will do is slow down your team. Measuring time estimates in hours is also ridiculous especially when one has multiple things to work on. If this guy was a product manager in my company he'd be looking for a job in the morning.
πŸ‘€mnm1πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I see a lot of anxiety in the article. This sentiment is going to permeate through the team!

As a developer, all I need from management is clear priorities. Let me know what the business needs, and keep reminding me what those are in case I get lost into code. Create chunks of time where the priorities don't change so I can focus. The bigger the chunks the better.

Then let me do my job please! I need to be able to trust that management is picking the right priorities, and management needs to trust that I am able to convert those into code. Trust is paramount.

If you can do that, I will be 10x more productive than any of these pseudo management techniques. It doesn't matter if we do scrumm, agile, daily standup, use Trello or some other tool. These are just implementation details. Let the developers pick whatever they are comfortable with.

πŸ‘€zimbatmπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Software engineers aren't special. Literally any job that requires a modicum of concentration, whether it's writing marketing copy or doing complex financial forecasts, means that interruptions are costly.
πŸ‘€jbarciauskasπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I've found the best way to avoid interrupting engineers is to have a daily sync (a.k.a stand up meeting). My team meets for 30 minutes each morning to give an update, have Q&A, and discuss priorities and issues. We're a small team (3 developers) but it works perfectly because folks either had their inquiry answered earlier in the day or can execute good judgement to try to figure it out and if not ask about it tomorrow. We all receive tickets and if it's critical enough we'll meet to devise a plan. Under this scheme we are rarely interrupted and have been grinding through features all summer.
πŸ‘€40acresπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I don't see the point in getting updates more than once a day. If something could change that you needed to know before tomorrow, isn't something else potentially wrong with the process?

The only case where I want such frequent updates are when (1) there's some P0 bug on production and it needs to be fixed / tested / deployed yesterday or (2) we're trying to pressure the person to want to quit their job or magically improve (more the former than the latter).

πŸ‘€isoskelesπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I only read the first paragraph and couldn’t read anymore. I’m unsure why he cannot Know when a story will be delivered. A story should fit into a sprint and so he should reasonablely expect that it’s delivered at the end of that sprint. If it’s not going to be delivered then this information should be relayed back to the pm.

Going and pestering the team is only going to slow down development process and increase the likelihood of the team not delivering for the sprint.

πŸ‘€philliphaydonπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

First I hoped for a parody but now I'm left unsure whether this is meant serious or not.

Especially this (joke?) is hilarious:

"I followed my mentor’s advice and started to check-in at least every half day with each pair of engineers I was working with."

But I suspect he is not at all trying to be funny and, I'd say, it is utterly terrible advice from some PM fitting right into what seems to me a work environment turned buzzword hell.

πŸ‘€rv-deπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Wow, where do we start here? First of all, it is much more effective to team with a tech lead or engineering manager to remain semi-realtime up to date with the status of where things are in engineering rather than asking status update questions directly. To not understand that is a level of naivete that prevents a product manager from operating at the basic level of competence to be considered a senior IC.

Second of all, I've seen two kinds of product managers. One kind looks at software development estimates as commitments to be contractually adhered to. The other treats software development estimates as assets/investments with risks to be managed.

Which kind is more effective? Well, which computation accomplishes more results, the one that doesn't halt and logs the same line over and over, or the one that does halt and additionally does the thing it set out to do?

πŸ‘€yowlingcatπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I've worked with quite a few POs over the years; good and bad. We used to call them project managers and it's more or less the same thing. As soon as you are asking when questions instead of what questions, you are managing a project.

One thing that I've learned over the years is that product management is often effectively a junior management position and actually should not be a management role at all.

That puts things in perspective in terms of their authority. I've ended up coaching PMs on my team more than once in terms of helping them understand what the product was (often non trivial for new PMs joining an existing team), what kinds of things are easy technically and what kinds of things are not. Even just understanding that there is low hanging fruit to pick (i.e. opportunities for them to look good) is non trivial, etc. All the good ones I've worked with were quick on their feet in learning who to talk to and who to take advice from. A good project manager does not need to be a domain expert to be effective. They just need to learn to ask the right questions.

Ultimately, knowledge-sharing between all the stakeholders in a project (including the customer) is key. PMs acting as bottlenecks can actually be a problem when they are inexperienced. I've more than once had situations where a PM asked me "can you estimate building X please because customer Foo needs this ASAP" where we ended up having a discussion about why building X was actually important, what customer Foo was asking for vs. what they actually needed and us both deciding that actually building something else is a much better way of helping customer Foo. Asking the why questions is always important for both engineers and PMs.

That's why it's important for them to be free to do that and why the proper job title is Product Owner, not Product Manager. In the organizational hierarchy this sits at the same level as the tech leads he's working with in the same team. As soon as you have engineers reporting to PMs, it's a problem and if they have no-one reporting to them, they are not managers.

πŸ‘€jillesvangurpπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> The engineers would give me highly technical explanation I couldn’t understand.

That's the problem right there. How do you expect to manage a project you don't understand?

I don't think I will ever agree with handing the project to a non technical person instead of the team lead.

πŸ‘€trabant00πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I have started to have a simple rule for being a productive developer regardless of client or boss pressure:

Get 1 tangible thing done a day. Ideally it has a visible effect (but don't make this religion- I had to rip out a cache infrastructure last week and replace it with a home-grown one and there was no visible effect other than things not breaking!)

Now, some days, this means you either don't work the full 8 or you go over 8 because the particular piece you're building just won't get built sooner (or you didn't break it up enough). But on average, just having this goal seems to be working.

If interruption would be costly, I take it to a quiet place for a few hours such as a library.

πŸ‘€pmarreckπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> I would let time pass and, on occasion, stories that I imagined would take a few hours would turn into a day or more.

...or even more...

πŸ‘€kdazzleπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

It sounds like a low trust environment.

If you actually need to know whether something is falling behind schedule every few hours (which seems unusual), of course not everybody is going to provide updates that frequently of their own volition. But most good engineers, under the right circumstances, will have a sense for when something is not on track and can raise their concerns.

If you actually had a good level of trust on the team, you would work to get people to buy into it. Of course, it's probably hard to convince most engineers that you actually need an update twice a day, for good reason.

πŸ‘€tawy12345πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Ah, if you require better visibility into the progress of a sprint why don't you just attend the daily standup where the developers talk about what they have accomplished, what they will be trying to accomplish and if they have any impediments? There is no need to shoulder tap each and every individual on the development team for a status update. If you are doing that then you don't understand scrum or agile. Maybe a few more years in the industry (myself 20years vs your 3?) and you can write a more feasible blog post.
πŸ‘€techguru99πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> It masks the fact that I have expectations as to when something should be delivered and does not communicate urgency to the team.

But why mask the expectations?

IMHO the best thing you can do is it to communicate priorities (which is your job as product owner / manager), and then if you do need time-based estimations, work them out with the team -- with the clear expectation that they are provisional.

Setting up expectations yourself, and possibly communicating them, but not down, is just a recipe for stress and desaster.

πŸ‘€perlgeekπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This guy went wrong as soon as he thought it was appropriate to measure ticket timings in hours rather than days or sprints. The pressure in this workplace must be unbearable.
πŸ‘€silverorioleπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This reads like a satirical article. Gives a really bad impression of Pivotal.
πŸ‘€crehnπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

What I don't like about agile is its an awful approach for building large complicated products.

The focus should not be on time management, that's not why software fails, it fails due to bad design.

The "ongoing conversation" developers should have should be about modules, objects, interfaces and algorithms, not about user stories. And refactoring the system to better handle new features should be encouraged, not thought of in terms of "how does this advance a user story".

User stories should be input into the exhaustive design process, and then the design should drive the development tasks.

I'm expecting push back on this, I'd probably go as far to say that for a large team on a large project 1/3 to 1/2 of a Sprint should be spent designing, and the remainder of the time coding.

Writing tests fits in this "designing" bucket for me. TDD is a great way to flesh out how the system should be structured.

πŸ‘€transrealπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

From the title I expected to see something a bit more, well, tactical about how to arrange communication by changing "real" interruptions into queued requests. For example, e-mails, or (varying by workplace-cultures) instant-messages that nobody expects immediate answers to.
πŸ‘€Terr_πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This whole method is rubbish. I worked for a company who forced this method on us. The fluctuation was astronomical. Pair programming is only useful in specific cases (like getting a junior up to speed or solving super-complex problems) but in other cases it is a colossal waste of time and an extreme demotivator. Fixing bugs in pairs is the most boring thing that ever happened. Not writing down anything is a surefire way to forget what was the supposed solution for problem X or why did we put workaround Y in the code... A horrible, horrible method, I'd suggest steering clear of any company which adopts it.
πŸ‘€edemπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Interesting to read about the term "user stories" as narrative documents product managers hand off to devs so devs know what to build. (See also[0], found following links from OP.)

Is anyone able to share such "user stories"? I'd love to see how these business needs get transmitted in the real world.

Also - they're usually way longer than the one sentence referred to in these articles, right?

[0] https://www.producttalk.org/2012/04/user-stories-are-better-...

πŸ‘€brianzelipπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

The problem with checking in so frequently is that it is still intrusive and causes distraction. Many engineers would feel the need to do just make up stuff just to show something has happened since the last update.
πŸ‘€supratimsπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Why would any talented engineer work with this guy?
πŸ‘€DevKoalaπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

#2, 3, and 4 indicate that you actually have some idea what you're doing, and an understanding of developers, and are _trying_ to do the right thing, which is all really good. But #1 might be sabotaging all of that.

I don't know how many product people you have, but if everyone followed your suggestion at some companies, then the developers would spend all day chit-chatting with product managers and nothing would ever get done. Even with only 1 product manager, I can't imagine that spending ~40% of the day on status updates is worthwhile. (Literally have had meetings where the answer was "status is the same as it was an hour ago because we've been in this meeting giving repetitive status updates the whole time.")

What you need to do is get to know the developers themselves - how they work, how they communicate, what their domain knowledge is, etc. Then you'll know when you need to message them. And hopefully they'll know when to message you, but you'll also learn which ones might not under which circumstances.

Some will spend a lot of time planning, achieving nothing, but then produce something well-planned. Others take a quick stab, learn from it, iterate, and refine. And there are other styles.

Some try to understand things better before talking about them, others want to talk first. Some have enough domain knowledge that they can 'be the user', while others see the user as the one who keeps screwing things up and making things difficult.

All will occasionally get stuck in that cycle of "ok, it's _almost_ done" without realizing what they don't know until they take the next step. Interrupting to ask in that case isn't going to change anything. It's just something that is always going to happen and is (or should be) factored into the long-term planning averages.

The best PMs know their developers and know when to ping and I'm happy to talk to them when they do, even if (especially if) I'm not doing well. They don't pester me several times a day, so I don't need to spam filter them.

If you're really having anxiety attacks and paranoia several times a day when you're not monitoring your developers' every move, you should consider a therapist and possibly a more easygoing laid-back job. Software is stressful, but it shouldn't be that stressful, and inflicting stress on your coworkers isn't a great solution.

πŸ‘€Falkon1313πŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

"I was a bit paranoid and would sometimes err on the side of conspiracy theories"

This smacks of high stress environment with a bunch of people who don't really know what they're doing, maybe all the way to the top.

Good developers don't work in these places. And if they do get caught here they don't stay long.

πŸ‘€eowirorπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Judging by all the negative responses do most people see themselves as some sort of vigilante programmer in their company?

I'm not a PM but I sympathize with how difficult it is to discern where a project is up to when it comes to software, especially when you can't come up with short enough milestones...

πŸ‘€catmanjanπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

There are some nuggets of wisdom in this article, but I think it's very clouded by a certain perspective. I normally don't comment, but feel that it's important to slice what I feel is useful and what can be detrimental behavior as a PM.

As a PM of about 4-years of experience, I understand the author's concerns and at the same time believe that he has solved for the wrong problem; his own anxiety rather than team cohesiveness and trust. The issues he solves for can be solved in different ways without such a negative impact on the team, actually in a very positive manner that increases trust, cohesiveness, and user context.

I'd first like to point out that I've made the mistakes of micromanagement that he mentions in the first section. I also quickly learned how detrimental that behavior is to team relationships, productivity, and outcomes. I'm certainly not perfect!

The way the author solves the problem of pace is by creating regular check-ins every half day. He then goes on to identify, how these check-ins can be used as open to monitor common slow-downs: engineering struggle and product context (he calls is product debt).

I'd first like to make the point that some other engineers have commented here, estimates are estimates, we are agile, you learn things along the way and need to adapt. I believe your job as a PM is not to hold the team to estimates, it is to come up with creative solution and serve as a master facilitator on your team.

So when the author says the following I can't help but notice the irony. I'd explore us all to practice what we preach. Instead care about iterations (sprints) not task micromanagement:

"As a product manager (PM), I often make assumptions as to when a particular user story will be delivered. This is painful because I don’t believe in time estimates and don’t think I should be involved in estimating the relative complexity of a story since I don’t own its implementation.

I know I shouldn’t but I can’t help doing it anyway…"

So how do you solve the problems that the author points to "struggle" and "context" without adding interruptions?

β€’ For struggle, that is what standup is for. Not only standup, but if you create a culture of trust engineers will naturally reach out if they hit road blocks, make a slack channel for your team. It's even better if you can teach your team about red flags, things that the article says which are true to look out for: complexity is rapidly increasing, not feeling confident in the stack/codebase. For any of this to work you MUST create a culture of questions and answers. Yes, all want to look competent, but what's also great is being able to depend on your team.

β€’ Adding to the previous point, this is why small tasks are soo important, [read this book on product flow](https://www.amazon.com/dp/B007TKU0O0/ref=dp-kindle-redirect?...) if complexity is small to begin with you can avoid that issue AND you get the added benefit of smaller iterations, meaning faster red flags. The author points this out too, this is critically important.

β€’ For context, context is king. Want to avoid "Product debt", get your team/tech lead involved from Day 0 of your quarterly/yearly roadmap, they should know everything about the user that the PM does minus the RAW research effort. Run a Kickoff/Inception/IPM that truly integrates your entire team, every engineer should have product context. Devs will then see tricky edge cases, radiate them up to the PM and you can make a call together if the work is necessary.

All of this is to say that there are some good parts of this article, but I think that adding one more check-in is not necessary when there are other ways to solve the problems identified.

πŸ‘€ndynanπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Saw a project where the PM would come around like clockwork twice a day. This was not a sprint project, it was a two year long push for a new product. What happened that every four hours a status update was needed?

People laughed behind his back.

πŸ‘€JJMcJπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

> I followed my mentor’s advice and started to check-in at least every half day with each pair of engineers I was working with

Yeeeeah... did you get the memo about those TPS reports?

πŸ‘€JTbaneπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

My manager expects a formal report once a month, but he is always open to conversation about the products we build. We end up talking daily, but it is never forced.
πŸ‘€edgarvaldesπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

If you don't understand technical details you should not manage anything technical. Ever.
πŸ‘€GoToROπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I think there's an elephant in the room here, being overlooked:

>The engineers would give me highly technical explanation I couldn’t understand. This would frustrate me because I did not add much value and distracted them.

I have a rule which avoids this situation happening, ever, and its a controversial one, but bear with me:

* NEVER accept management from someone who cannot do your job.

This rule, hard and fast, has saved my ass so many times - and every single time I've broken it, things have been more painful than they should be.

Seriously, think about it. How can someone who isn't qualified to do your job, actually manage you? Only if 'management' is an administrative-only task - i.e. "report your hours worked - I don't care about anything else".

But if you put this rule into action and insist that your managers are able to do your job, you have a very strong, very stable organizational structure. This doesn't mean the manager has to do your job - just that they can, if they need to.

You can't manage things you don't understand. So never accept management from people who don't understand the job. And if that is not happening in the organization, you've got another problem: HR are just chair-stuffing. INSIST that this not be how your org is run.

πŸ‘€fit2ruleπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0