• JohnMakin 7 hours ago

    > 90%, maybe 93%, of project managers, could probably disappear tomorrow to either no effect or a net gain in efficiency.

    This is more a statement on how many bad project managers there are rather than on the role itself being useless. I've worked as an IC with a lot of PM's over the course of my career - I can definitely bring to mind a few PM's that left a huge impression on the project I was working on. I can think of many more that were completely worthless. I think the latter group makes developers think the role itself is useless, which I could not disagree more with. Developers are absolutely terrible at balancing business and customer priorities with technical ones, and the worst part is, many of them believe they aren't bad at that.

    • BobaFloutist 6 hours ago

      If the plurality are bad at their job, maybe the role itself needs at the very least a hard look.

      Any time you find yourself saying "It's not the field that's fundamentally broken, it's that (almost) every individual in it just happens to suck (at it)," you need to take a step back and realize that that's the same problem.

      If you have to be exceptionally skilled at something to do it in a way that's net positive, and that field doesn't reasonable filter for the exceptionally competent, then the field is setting individuals up for failure, and needs to be restructured.

      And if most people in the role suck at it, you by definition have to be exceptionally skilled to succeed. Even if from the outside it looks like the people just tend to suck and the field is easy.

      • JohnMakin 6 hours ago

        This isn't just a problem common to project management, it's very familiar sounding to "devops" teams as well - while I agree that something fundamentally needs to change I do not believe it is the same problem.

        In the case of project management, what you have is horrible hiring practices that favor extreme credentialism (PMOC, etc) rather than a proven track record of results. Businesses seem think that anyone with a cert is going to be effective, but in my view, these certifications are mostly worthless in terms of actual skills gained.

        Another thing is, what should even change? No one knows. This isn't an unknown phenomenon, there just isn't anything better at this current moment. It's very easy to point at things and say they should change, another thing entirely to propose a solution. To me, I would put more technical requirements on PM's rather than these dumb PM certs, as the better PM's I've worked with always seem to have a much deeper understanding of technical nuance than their shittier peers.

      • jatins 7 hours ago

        Agreed, I used to believe the same until I worked with a good project manager. But in hindsight they went way beyond their responsibilities and actually served as a mix of product/project/engineering manager. So maybe author's point stands in the sense most "project managers" think their job is moving jira tickets from one state to other

        • veggieroll 6 hours ago

          My experience has been that a good project manager is critical at defending against other teams' (bad) project managers. The other PM's can cause a lot of trouble if they're politically saavy.

          This applies to business analysts, scrum/agile people, communications people, and other non-technical project staff, too.

          I've observed an arms race at play in my department. Our team used to be 4-to-1 developers to business people. But we've increasingly needed to hire more business people just to defend ourselves against political scheming.

          • dagw 6 hours ago

            I can think of many more that were completely worthless.

            But the question is why? I spent a decade of my career in civil engineering, and on the whole every project manager I dealt with there was both at least OK at their job and important to the success of the project. None were useless. If other technical fields can reliably produce competent project manager, why can't software?

            • randomdata 6 hours ago

              > why can't software?

              It can, but remember that we lost the competency to Agile, which is centred around eliminating managers in favour of self-organizing teams. For a time we didn't think we needed managers at all.

              As we as an industry are coming to reject self-organization and now returning back to more formalized management again you might find some old timers from way back in the day who still remember how to manage, but if you watch any new manager coming onto the scene you will notice that they will reach for tools that were designed for operations without managers – because that's all they've ever known – introducing an interesting impedance mismatch.

              It will no doubt correct some day, but these kinds of things tend to happen at a glacial pace. It could take decades for managers to discover/rediscover tools that are actually suitable for management, rather than something meant for self-organizing teams. As before, newer managers don't know anything else, so the impedance mismatch isn't even immediately recognizable. The default assumption is that this is just how it is done.

            • randomdata 7 hours ago

              > Developers are absolutely terrible at balancing business and customer priorities with technical ones

              True, but project managers are even worse! (There are always exceptions)

            • theideaofcoffee 6 hours ago

              > Standups are actually useful for keeping an eye on the newbies.

              If you're relying on a daily standup to keep the newbies on track, then something is deeply broken with your management and people development structure. They should be continually coached one-on-one, rather than left to fend for themselves only then to pipe up once per day. A little time investment by both the noob and someone more seasoned really, genuinely helps them to get up to speed. It's something that will pay itself back many times over in the future.

              I've experienced both when I stepped in as a greenhorn, I leveled up so much faster when I had the ability to pepper questions throughout the day to someone more seasoned. And I remember feeling discouraged and listless in a culture where you don't interrupt the senior people, wait for the standup, regurgitate your problems, speak the scrum prayer every morning.

              Does it cost something in terms of efficiency, or vElOCiTy? Sure, but like I said above, the returns on investment compound when you really care about developing people, and not being a slave to the scrum process.

              • polishdude20 6 hours ago

                I completely agree. Even seniors who have just joined your org need a buddy to help get up to speed and pick their brain. Standup isn't the place to learn how to do your job.

              • allochthon 6 hours ago

                Overall I like the list. Some of the bullet points were stated a little more strongly than I was comfortable with.

                > People who stress over code style, linting rules, or other minutia are insane weirdos

                I feel like programmatically enforced linting is like keeping a shared house clean. Suppose you live in a house with roommates. You wipe off the counters, you clean up after yourself, you put dishes in the dishwasher, so that the house is tidy and pleasant. If there's a lint or style rule that requires judgment and is hard to enforce programmatically, perhaps better left as an occasional PR comment.

                Programatically enforced linting also has the benefit of removing degrees of freedom that aren't very important and don't merit getting bogged down about.

                • arp242 3 minutes ago

                  The problem is that many linters are excessively pedantic, require workarounds that are just silly, and if we ask "does it actually improve things?" then ... often not really, not in a substantial way. Once you agree on the "big basics" like brace style or whatever makes sense for your language, you quickly get diminishing (often miniscule) returns.

                  This also ties in to what I call the "linter fallacy"; which goes something like:

                  "This code passes 56 linters"

                  "Therefore, it's good code"

                  And the related:

                  "Our code is a mess"

                  "I spent a week adding 56 linters and rewriting it all to pass"

                  "Therefore, now our code is good"

                  What really matters is "can I read this code naturally?" And if the answer to that is "yes" then it may be good code. Obsessing over whether it should be written with some small differences that don't really matter is just not useful for anyone.

                  • randomdata 6 hours ago

                    To be fair, those who become uncomfortable from words are equally insane weirdos.

                  • j-scott 7 hours ago

                    > People who stress over code style, linting rules, or other minutia are insane weirdos

                    Stressing over these things is certainly a Sisyphean task.

                    However, investing in automating and standardizing the application of these things every time a new repo is created eliminates an entire class of problems and saves you all sorts of trouble down the road.

                    • meaydinli 6 hours ago

                      I am one of those weirdos that like to work on "un-sexy" things behind the scenes which hopefully makes the life of my colleagues a bit better with every attempt. I don't think it is necessary for small teams, and may even be considered a waste of time, but once a team is sufficiently big and spread out, I think a few people working in the background, keeping watch of things, cleaning up after people, proactively improving stuff, creating and enforcing rules and standards is very beneficial and necessary for a team's next growth spurt.

                      • jweir 7 hours ago

                        Everyone uses the same formatter & options (which really should have no options, but that ins't the reality for most languages). The formatter rules - move on.

                        • woooooo 7 hours ago

                          Primarily it's protecting yourself from those weirdos by pre-empting them, though.

                        • ramon156 7 hours ago

                          > After performing over 100 interviews, I can say that interviewing is thoroughly broken. I also have no idea how to actually make it better.

                          I resonate with this greatly. I'm in the middle of applying for jobs, and I try to put myself into the recruiter's shoes. At the end of the day, I don't blame recruiters for the calls they make (e.g. ghosting, denying for $REASON).

                          When you are supposed to interview a potential software dev, how are you going to differentiate the people you should invest into from the ChatGPT extension? How do you know whether the person actually worked at $FAANG_COMPANY for 3 years? Don't forget the other 78 people that also applied for the job.

                          • mdaniel 7 hours ago

                            > I don't blame recruiters for the calls they make (e.g. ghosting,

                            False. This is not Tinder: if you don't want to move forward, an email stating as much is super cheap.

                            • EGreg 7 hours ago

                              Tell me, why is it OK for Tinder?

                              • BobaFloutist 6 hours ago

                                It's not necessarily, but interpersonal bad behavior reflects on your self, professional bad behavior reflects on your institution.

                                The stakes are also higher. Yes, love is more important than money, but having a job at all is definitely lower on Maslow's hierarchy than finding a romantic partnership.

                                • randomdata 4 hours ago

                                  > but interpersonal bad behavior reflects on your self, professional bad behavior reflects on your institution.

                                  Perhaps, but their self or their institution don't want you, so why would they be concerned with what you think of them?

                                  In the olden days where you only had the choice of the 20 people you could realistically get in touch with by horse, there was always an inkling in the back your mind that maybe you'll get desperate in the future, so there would be a lot of fear around completely destroying ties. But now that there are 8 billion people at your immediate disposal, there is no reason to cling to something you clearly don't want.

                                  In fact, if their actions give you a sour taste, that's ideal! It will save them from thinking you are a good idea later when they have a desperate moment. If their niceties leaves you still willing to engage even after they realized you're not a good option, that's not a good place for anyone.

                                • stonogo 7 hours ago

                                  Because it's the basis of the product. You swipe and move on. Professional interactions are and ought to be different.

                                  • EGreg 6 hours ago

                                    Why ought they be different? ATS scans resumes and discards most of them. The whole thing has become just another dark forest

                                    • stonogo 6 hours ago

                                      Parent comment was specifically commenting about recruiters, indicating there was human communication at some point, hence the term 'ghosting'.

                                      Anyway it's much the same, since most competent HR software can autosend a 'no thanks' email when the system bulk-rejects applications.

                                      Whether or not a person is involved, it's so little effort to send that close-of-conversation email that there's no reason not to. Meanwhile, the point of Tinder is that people choose when and how to engage. They're not the same.

                                      • randomdata 4 hours ago

                                        And the comparison with Tinder also carried the implication that the successful swiping had already taken place that there was human-to-human communication that was happening, but where one party decided to no longer engage.

                                        There may be essentially no effort to say that you are no longer interested, but at the same time if you are no longer interested, who cares?

                              • knallfrosch 7 hours ago

                                > How do you know whether the person actually worked at $FAANG_COMPANY for 3 years?

                                In the United States of America, you call the company. In Germany, employees get a certificate.

                                If you get 100 applications for an opening, your HR tool can automatically send emails to declined candidates. You do track which ones you’ve rejected in the past and which ones you go forward with, right?

                                And on and on. It’s not hard.

                              • randomdata 6 hours ago

                                > Code coverage has absolutely nothing to do with code quality

                                It is quite indicative of documentation quality, though, which is most important as a codebase ages. You may know how it works now without documentation, but future developers (which may include you) are going to want more information to know what kind of expectations are found around the code.

                                • kccqzy 6 hours ago

                                  > Code coverage has absolutely nothing to do with code quality

                                  I'm going to disagree respectfully here. I don't think hard-and-fast rules on code coverage are useful (e.g. must achieve 90% coverage before merging), but just having code coverage run automatically and its results displayed is useful. When I add an "if" check and one of the branches isn't covered for example, I start to think what if some junior engineer didn't understand the reason behind this "if" check and decided to delete this check altogether? If no unit tests fail after deleting this check, that junior engineer might not have enough context to judge whether this check is needed in production.

                                  • randomdata 4 hours ago

                                    You're really speaking about documentation quality, though. The most horribly written code ever written can still do a good job of documenting what the "if" does.

                                    I think the real takeaway here is that code quality doesn't really matter. The most horribly written code is still quite fine to work with if well documented.

                                    • mdaniel 4 hours ago

                                      You actually brought to my attention a metric that I hadn't previously considered but now desperately want: branch coverage. I don't need 90% of lines covered, because one cannot measure coverage of missing lines

                                        /* BadImpl.java */
                                        if (theFile.exists()) {
                                            doTheAwesome(theFile);
                                        }
                                        // uh, and else ... what?
                                      
                                        /* BadImplTest.java */
                                        @Test
                                        public void looksGoodTestCoverage() {
                                          theFile.create();
                                          instance.runIt();
                                          println("hurray, 100% coverage");
                                        }
                                      
                                      versus if the coverage tool was able to artificially rewrite the code to be this way, it would show up as not covered:

                                        if (theFile.exists()) {
                                          ...
                                        } else {
                                        }
                                    • hyggetrold 6 hours ago

                                      Nice article. These stood out to me:

                                      > Software architecture matters probably more than anything else. A shitty implementation of a good abstraction causes no net harm to the code base. A bad abstraction or missing layer causes everything to rot.

                                      > Pencil and paper are the best programming tools and vastly under used.

                                      > Code coverage has absolutely nothing to do with code quality.

                                      > Micro-services require justification.

                                      • mdaniel 7 hours ago
                                        • mbonnet 7 hours ago

                                          This is a decent idea to do every few years. I may make my own version.

                                          • mdaniel 7 hours ago

                                            > Standups are actually useful for keeping an eye on the newbies.

                                            ... and thus should include only project managers and/or team leaders and leave the rest of the professionals to do work and provide status updates via the bug tracker

                                            • randomdata 6 hours ago

                                              > should include only project managers and/or team leaders

                                              The daily standup comes from XP, which has no real concept of project managers or team leaders. Under XP, everyone is considered to be the project manager and team leader, so to speak. Thus, that isn't technically possible in the strictest sense.

                                              If you have a "standup" in name only for the benefit of distinct project managers and/or team leaders, then I suppose you can just not show up. If that raises alarm in the organization, you're the newbie and just don't realize it.

                                              • undefined 4 hours ago
                                                [deleted]
                                              • cynicalsecurity 7 hours ago

                                                It's really bad when standups last for half an hour. A standup must include 5-7 people at most and last no longer than 15 mins. Preferably 5-10. Anything else should be discussed outside of standup between specific team members only.

                                                • randomdata 7 hours ago

                                                  I'm skeptical that there is anything of value communicated in just 15 minutes when you have more than one speaker and without a very specific agenda. At most you're going to get a brief status update, but that is pointless information as it already known by way of the commit log.

                                                  • candiddevmike 7 hours ago

                                                    And then there's a "parking lot attendant" ready to kill useful/interesting discussions "in the interest of everyone's time".

                                                    • polishdude20 6 hours ago

                                                      There are so many stand-ups I've been in where my coworkers would say what they've been working on and none of it would apply to me or my work and vice versa. It was more for the manager to hear what's being worked on. I think status updates should just be async in your slack channel

                                                      • randomdata 6 hours ago

                                                        Thing is, the standup originated out of a methodology that describes operation of an organization without managers. The standup is time allotted for the developers to fulfill some of the duties the manager would have otherwise done for them. Perhaps there is some kind of merit to it if you actually operate that way, but if you can recognize someone as the manager then why are the developers doing their job? Async or not, it is just silly cargo culting.

                                                        • fragmede 6 hours ago

                                                          they can be!

                                                        • knallfrosch 7 hours ago

                                                          Nothing of importance is happening in the code base.

                                                          What's important are blockers like inability to implement something, missing permissions, awaiting external communication, freshly detected requirements that need a decision, absences etc pp

                                                          • randomdata 6 hours ago

                                                            Everyone will already know about the blocker as soon as it happens. Reasserting it again at a regularly scheduled meeting would be even sillier than regurgitating the commit log. At least there is a slim chance someone hasn't kept up with the commit log. There is no chance of someone not being aware of blockers by the time the standup comes around.

                                                            • mdaniel 6 hours ago

                                                              > freshly detected requirements that need a decision

                                                              Oh, in that case one should definitely wait 23 hours to bring that to anyone's attention, and for sure an (allegedly) 15 minute meeting is a great place to get requirements

                                                              > absences

                                                              Uh-huh, go ahead and include births and puppy adoptions, too; I can see that you and the Certified Scrum Master™ have obviously attended the same workshops on Team Health

                                                          • ChrisKingWebDev 7 hours ago

                                                            I like async standups on slack. Everyone just post what you are doing today, and if anyone has any questions they can follow up.

                                                            • mdaniel 7 hours ago

                                                              See, I have almost the opposite opinion: it costs more interruption and "life stupidity" to have 7 people stand up, assemble, stop talking about sports, go around the room saying "no blockers," go get a pastry, go back to their desks, unlock their workstations, try to remember what the hell they were trying to do before all that dumbness. All of that to just hear the exact same thing any sane person who gave a shit could have read on a report emailed to them that morning, or -- more common in my experience -- that they would have read in the Mattermost/Slack/Teams/Zulip from the past day

                                                              If one wants a status report, fine, have one periodically. But don't vaporize 30 minutes a day times 7 people just to go around the room talking. What a 1950s concept holy shit

                                                              I have never in my life met a professional who sits on their hands for 23 hours waiting to say "uh, I have a blocker, but wanted to save it for this magic 15 minutes to ask for help." Yes, fine, n00bs do that, and that's what TFA was saying that interns need supervision, who knew.

                                                              • randomdata 6 hours ago

                                                                > I have never in my life met a professional who sits on their hands for 23 hours...

                                                                I will if there is a regularly scheduled meeting to discuss such matters. If the company is fine with you taking the day off, take it!

                                                                • theideaofcoffee 6 hours ago

                                                                  Hard agree. It's all just devolved into cargo cult nonsense, follow the process, to parrot what they think large orgs are doing. And if you have an adequately competent culture, those noobs aren't going to be left hanging, they're going to learn that it's ok to ask to help get unblocked, and that's what should be taught.

                                                                  And yeah, I also can't agree more with your assessment about status reports being this relic from the past. What is this? The military? "SITREP. NOW!" Such a waste of breath, time, human life.

                                                                  • polishdude20 6 hours ago

                                                                    I feel like in a remote culture, stand-ups are kind of playing double duty. Both as a status reporting time and a team-vuuldinf socialization time.

                                                                    I feel we should separate these two things into async slack status reports and them regularly maybe bi weekly 30 minute team building meetings where no work is being talked about.

                                                                    • randomdata 4 hours ago

                                                                      I was around (working remotely, even) before anyone had ever heard of standups. Back then, developers were excited enough about their work that they would share what they were working on by their own accord.

                                                                      How did we get to the point where we determined that the only way to get anything out of developers was to setup a meeting to force it out? Telling them they must provide a status update on Slack instead is ultimately just a different cartoon character on the same basic bandaid – What is the actual problem here?

                                                                      • polishdude20 2 hours ago

                                                                        It could be the feeling that nobody cares about your work. I don't give status updates naturally because I don't usually feel anybody cares or needs that info other than managers or PM's

                                                              • dangitman 7 hours ago

                                                                [dead]