1. 74
  1.  

  2. 52

    nine-to-five-with-kids types

    God forbid people have children and actually want to spend time with them.

    As someone with kids, I’m reasonably sure I’m pretty good at what I do.

    1. 40

      The second statements includes a retraction of sorts:

      P.S. I have no problem with family people, and want to retract the offhand comment I made about them. I work with many awesome colleagues who happen to have children at home. What I really meant to say is that I don’t like people who see what we do as more of a job than a passion, and it feels like we have a lot of these people these days. Maybe everyone does, though, or maybe I’m just completely wrong.

      I disagree with them that it’s wrong to see your work as a job rather than a passion; in a system where it’s expected for everyone to have a job, it’s bullshit (though very beneficial for the capitalist class) to expect everyone to be passionate about what they’re forced to do everyday. Nonetheless, the retraction in the second statement is important context.

      1. 13

        Owning stock was supposed to fix this, rewarding employees for better work towards company growth. However the employees are somehow not oblivious to the fact that their work does not affect the stock price whatsoever, instead it being dependent mostly on news cycle about the company and their C-level execs (and large defense contracts in the case of Microsoft).

        1. 6

          Your appeal to our capitalist overlords here is incorrect. It’s a symptom of capitalism that you have people at work who are just punching in and don’t have a passion for it. If we weren’t bound by a capitalist system, people would work on whatever they’re passionate about instead of worrying about bringing home the bacon to buy more bacon with. Wanting people to be passionate about their work is a decidedly anti-capitalist sentiment, and wanting people to clock in, do their job, clock out and go home to maintain their nuclear family is a pretty capitalist idea.

          1. 1

            Every time we’ve tried an alternative at scale it’s led to mass murder, or mass starvation, or both.

            You’re also ignoring the fact that some jobs are just plain unpleasant. I’ve worked some in my youth. It’s reasonable not to be passionate about those; they’re either high paying because they’re unpleasant but skilled, or the lowest paying job because they’re work you do because your labour isn’t valuable in any other way.

            1. 1

              I agree with you.

              in a system where it’s expected for everyone to have a job, it’s bullshit (though very beneficial for the capitalist class) to expect everyone to be passionate about what they’re forced to do everyday.

              That’s true I think, undoubtedly. You can “fix” it by accepting people who aren’t passionate, or by replacing the system where people need a job to survive. I’d definitely prefer to fix it by replacing the system, but in any case, blaming 9-to-5-ers is wrong - they’re victims more than anything, forced to work a job they’re not passionate about instead of going out on whatever unprofitable venture captures their heart.

              1. 1

                or by replacing the system where people need a job to survive

                How do you propose we do that, without literally enslaving people? And without causing necessary but often necessarily low-passion jobs (like sorting freight in a courier company, at 1AM - one of my jobs as teenager) to simply not get done?

                I mean, what you’re really proposing is that some people get to go on ‘whatever unprofitable venture captures their heart’ while … what? Someone else labours to pay their way?

                I personally think that it’s entirely reasonable to accept people whose passion isn’t their job, provided they’re professional and productive. There’s nothing here to fix, really, beyond rejecting the (IMO) unrealistic idea that a good employee has to be passionate about their work.

          2. 8

            As another kind of beef against that line, in my experience, people working crazy long hours on a consistent basis generally aren’t doing it out of some kind of pure passion for the project, implementing a cool amazing design, etc. They’re usually pounding out ordinary boring features and business requirements, and are working long hours because of poor project management - unrealistic promises to customers, insufficient resources, having no idea what the requirements actually are but promising a delivery date anyways, etc. IMO, anyone with any wisdom should get out of that situation, whether or not they have kids.

            Also IME, those who do have genuine passion to build some cool new thing often don’t work long hours at all, or only do so for a short time period.

            1. 6

              Someone I know could easily be working for Google or such, but he works for a smaller, non-tech, local company as a developer, so he can spend his free time building the projects he likes (or the luxury of not having to at all), instead of some absurd scale megacorp thing which will drain all the free time he has. (Or specifically, build the great thing you want to, and not be subject to what say, Facebook wants.) IMHO, it’s pretty smart…

            2. 7

              The anonymous author apologizes about this specifically in their follow-up.

              1. 4

                The apologies sound like something between a sincere apology for just blindly ranting at it all and an apology for apologies’ sake. It looks to me like the author actually feels (felt) closer to the way he described in the first message then the second. Not all the way, but somewhat.

                1. 1

                  The apology is also written in an entirely different style. It’s not clear there’s strong reason to assume it’s the same person.

                  edit: reading through the comments, the blog’s owner says: “I won’t reveal how the anonymous poster contacted me, but I am 99.9% sure that unless his communication channel was hacked, he is the same person.” So, ok, it’s the same person.

              2. 11

                I know what people the author means though–not all these people have kids though, they’re just the ones who punch a clock from 9-5 and want to remain comfortable and don’t want push themselves to make great things. It’s not that these people want to make bad things, or don’t want to make great things, or aren’t capable of doing great work, they just don’t receive any self-fulfillment from work. I don’t blame these people for acting this way, I’d just rather not work with them.

                The best dev on my team (by a long shot) is a 9-5 worker who never finished college, but accomplishes more in one day than most devs accomplish in a week or more. He aspires to do incredible work during his time and he exceeds every day.

                1. 9

                  Once organizations get to a certain threshold of complexity, though, you need to be thinking much more about the incentives that are offered rather than the micro-level of which people want to do excellent things. You have to make it easier to do the excellent thing than not, and that can be difficult, or, in an org the size of Microsoft’s Windows kernel groups, basically, impossible.

                  1. 5

                    The comment was directed at the author’s “9-5 with kids” comment since the author is referring to the contributions of those people. Organizational structure produces different effects on products based on the personalities and abilities of those people within the organization.

                    In general, the bigger the organizational, the less risk-tolerance, but most actions incur some sort of risk. Also, staying with the crowd and doing what you’re told is safest, so inaction or repeating previous actions often becomes the default.

                    1. 2

                      Good point. It never makes sense to innovate and take risks in a large organization. If your gamble pays off, the pay off will invisibly pump up some vaguely connected numbers that will look good for some manager higher up. If it doesn’t pay off, it’s your fault. So, regardless of how good a gamble it was based on risk-reward ratio, it’s never favorable for you personally. Don’t expect your immediate superior to appreciate it either, even if the gamble pays off, because that person is also facing the same odds.

                  2. 7

                    As an anecdote, the eventually worst workplace I’ve been had a deeply ingrained culture of being passionate about work, and about being part of “a family” through the employer. It’s not entirely a healthy stance.

                    1. 4

                      I don’t blame these people for acting this way, I’d just rather not work with them.

                      Why not?

                      You said they want to make good things, great things, and can do great work. Why does someone else’s opinion of their job matter to you?

                      1. 5

                        It’s when people’s opinions affect the work they do. My point is they can do great work, but many don’t. Sometimes it manifests as symptom fixing rather than problem solving because it’s “whatever gets me out today by X, screw consequences later.” Other times it manifests as “I wasn’t told to do this, so I won’t”. When I’ve seen it, it’s often pervasive short term thinking over long term thinking.

                  3. 14

                    This piece is from 2013…. before Satya Nadella took over (2014). I would be extremely interested to get a fresh take on this after 6 years under his management.

                    1. 37

                      When this post was written, several people asked if it was me. It wasn’t, but I shared a lot of the same frustrations. To go over some of the specific things:

                      • In terms of Satya specifically, the culture has changed a lot. Today people are measured on how approachable, reasonable and cooperative they are. Dismissing outside contributions without good reason would no longer be a good career move. That said, culture change is a long and hard process, and some groups have made more progress than others.
                      • The compiler is now building more modern C support.
                      • The original comment talks about how hard it is to improve CMD; today the console (but not CMD) are on Github and outsiders (including me) have contributed to them.
                      • Moving away from dedicated test teams has plenty of problems, but it removes one source of pushback for outside contributions. A contribution is no longer a gift with a cost attached.
                      • Symbolic links are available to non-Administrators, although the documentation says this is restricted to Developer Mode, which seems like a step sideways.
                      • Windows really did move to a Git client with a TFS backend, and made substantial changes to both to make it happen.
                      • NTFS is still a giant SEH monster, but kudos to the developers who work on it. They have a hard job.
                      • In 2013 a lot of the benefits of ReFS weren’t apparent because it was still being developed. Today it really addresses a lot of NTFS limitations, including fine grained valid data, file level duplication where blocks are shared across files and diverge on write, and support for SMR drives. I was working on this in 2013, but deserve no credit for what happened since, and I think that team have delivered a lot in difficult circumstances.

                      On a personal note, a long time ago I wrote resizable dialog support outside of work to demonstrate that it wouldn’t be hard to retrofit things like the environment variable editor to be resizable. My day job was writing kernel drivers. My manager didn’t appreciate what I was doing there, and had the same reaction this post alluded to - that I should stick to my defined role. Post-Satya, I ended up contributing that code into what is now the environment variable editor. In fairness, when kernel developers write UI, some bad things happen too - I didn’t handle some high DPI cases, missed one way this could be invoked which broke a workflow I didn’t know about, which other developers ended up fixing. The team who took my change ended up paying a price for it, which kind of sucks. But it did go from essentially impossible to possible.

                      I would say though that one thing the post touched on is more true than ever. Windows is getting older. The number of people who were around when the system was designed is shrinking. There’s nothing anyone can do about that, but it’s challenging when smart, motivated, capable young people are stepping into a large scale codebase. Some level of fear is inevitable and even justified. It’s very hard to find somebody who is so smart to step into a million lines, distill all of the design considerations, then start changing them - we do find some people like that, but they’re rare. And it still seems true that this creates an incentive to add a new thing rather than to fix the old thing.

                      Just my 2c.

                      1. 2

                        Windows is getting older. The number of people who were around when the system was designed is shrinking. There’s nothing anyone can do about that, but it’s challenging when smart, motivated, capable young people are stepping into a large scale codebase. Some level of fear is inevitable and even justified. It’s very hard to find somebody who is so smart to step into a million lines, distill all of the design considerations, then start changing them - we do find some people like that, but they’re rare.

                        Would you say this is less of a problem with Linux? And in that case, why?

                        1. 5

                          Linux, in the broad ecosystem sense, comprises a lot of modular components. When one module stops being maintained, a new one can be developed, people migrate to it over time, and the old one goes away. We see this happen often enough with things like mail server components.

                          The expectation of Windows to maintain compatibility for longer means that there’s no mechanism for the old component to leave. Imagine a Linux distro that hadn’t dropped a package since 1993 - there’d be a lot of orphaned pieces in there.

                          But similar issues can still exist on Linux. I’d argue that X is a critical piece that’s become convoluted where a lot of knowledge about what it does and why has been lost, which is motivating a replacement, but being such a core piece that makes for a long transition.

                          1. 1

                            Insightful answer! Thanks.

                          2. 2

                            I think anyone can answer that question simply, as long as such person knows if there’s any sort of contiguous history in Windows source tree as well as comprehensive internal documentation.

                            I’m not even near Microsoft, so I don’t know.

                          3. 1

                            When this post was written, several people asked if it was me. It wasn’t, but I shared a lot of the same frustrations.

                            Perhaps by 2013 things got much worse but I don’t recall cross-team collaboration being this hard (unless shell team was involved, then yes). I’m also actually surprised people who know you would think that you wrote this. Author seems to not understand that contributing to a complex system is bound to cause problems. Your environment variable editor proves that but I’m also pretty sure it didn’t catch you off-guard (neither would it in 2013).

                            1. 1

                              Did you try to contribute to CMD? I mean, it’s true that contributing to a complex system is bound to cause problems, but there are groups who accept that and are willing to work through them, and there are groups who use that as justification for inaction. It’s always amused me that Powershell is under constant development (which can break scripts) and CMD is so reluctant change because it might break scripts.

                              When people asked whether I wrote it, I just told them that I wouldn’t hide behind anonymous Tor. People who know me know that’s true :^)

                            2. 1

                              It’s very hard to find somebody who is so smart to step into a million lines, distill all of the design considerations, then start changing them

                              It’s also pretty hard to find those jobs if you’re one of those persons who are good at it. Weird how misaligned that is.

                              1. 2

                                It’s as though you’re suggesting that an industry which is actively selling computerized data analytics to identify business opportunities in large amounts of data isn’t that good at analyzing lots of data to identify hidden business opportunities…

                          4. 10

                            desperate-to-please H1Bs

                            I work on the Windows accessibility team at Microsoft. We work on the Narrator screen reader and the UI Automation API among other things. Two of my most talented and dedicated coworkers are immigrants. Even if they are desperate to please, the results have been great.

                            1. 5

                              It has come SUCH a long way. I would like to see Narrator one day becoming a reasonable alternative to NVDA. Thank you so much for your work!!

                            2. 6

                              Looks like most of this should be taken with a grain of salt (after reading the authors edits). Nonetheless the comments about the different ways of working of enterprise teams, vs open source collaborators are interesting. I have experienced similar tendencies in several companies, teams are often very reluctant to accept contributions from outside their team.

                              1. 9

                                I don’t why he expects everyone who codes to have coding as a passion. That’s beyond unrealistic. This is a profession that you can make good money at. I am totally understanding that a lot of my colleagues aren’t passionate about it.

                                1. 8

                                  I think passion is the wrong word, but you need to care. If you don’t care, or if you care more about something else (money, promotions, not causing a fuss, etc.) then you have no tools for making good, long-term strategic decisions. Anything short of actually caring about what you are doing results in myopic decision-making. Or as someone else put it, “driving on the highway by looking at the centre line in your rear-view mirror.”

                                  Passion is not a requirement for caring, IMO. I wouldn’t call myself passionate – I have a full life of other things outside of my engineering job. But when I’m in the office, you would probably put me in the passionate pile because when I’m on the job, boy do I care a lot.

                                  1. 5

                                    I don’t why he expects everyone who codes to have coding as a passion.

                                    I don’t think the author really does, though.

                                    Most of the HNOP is about incentives, specifically, how the Windows team* doesn’t reward incremental performance improvements, and also doesn’t reward unscheduled work or outside contributions. The fact that people are not being rewarded, either by the organization or by themselves, is why the work doesn’t get done.

                                    * Let’s contrast this with Joe Duffy’s performance culture, and how the C# compiler team literally gates new patches on their performance tests.

                                    1. 5

                                      Agreed. I was passionate about programming before I started to be a programmer, in the same way I was passionate about reading before high school (where we had mandatory ‘read lists’). After 8 hours of sitting behind a screen and 3 hours of commute I have better things to do than programming. Cooking, eating, working out, chores, playing an instrument, and reading, for example.

                                    2. 5

                                      Well, you can also frame it positively. Development is very business-oriented. New features often do bring in more revenue than incremental improvements to old ones. At least short term. Microsoft is constantly re-adjusting to its local optimum.

                                      The problem is, when someone finds a better local optimum then Microsoft as a system may not be capable to adjust to that. Remember WindowsPhone. It is essentially a rehash of the old idea that big companies are like tankers. Amazingly efficient as transports but changing direction is hard. Microsoft does surprisingly well with Azure.

                                      1. 3

                                        After thinking about this post for a while, I wanted to note another point of view on some of the complaints. He complains that there’s a lot of process around making changes. I’d say that’s just the cost of making decent quality software that is used by billions of people around the world, in hundreds of languages, in tens of thousands of different configurations, weird workflows, unusual hardware combinations, etc. Yes, somebody needs to thoroughly test it for all of the weird edge cases. Yes, somebody needs to translate and internationalize all of your text and such to all of the supported locales. Yes, you really do need to fix all of those edge cases that those testers found. Yes, you really do need to find and fix any security holes it has or creates. Ditto writing user manuals and developer documentation, updating any docs that are related to the change, etc.

                                        All of that stuff is not terribly fun and exciting to do, and may hit some other team’s budget in a way they don’t like. Maybe there’s some room to optimize things so that this isn’t quite so hard of a sell to those other teams, I don’t know. I do know that it’s hard to call yourself an operating system that’s ready for worldwide use if you aren’t doing those things for every single change. How well do Linux and the related project do those things? I honestly don’t know. If they are supposedly getting some kind of efficiency gain by not doing those things, then Linux doesn’t belong on the desktop.

                                        1. 0

                                          Back in the day, people could read between the lines and didn’t get offended so quickly.

                                          1. 11

                                            Words mean different things to different people, so always giving authors benefit-of-doubt.

                                            I find posts like this (where somebody just tells THEYR honest opinion about a topic) refreshing. At least it’s no marketing BS.

                                            1. 9

                                              That’s probably not true. A lot of the same people here were also around “back in the day”. It’s possible their opinions have shifted about what is reasonable expectations of a worker.

                                              1. 2

                                                I think offending people should be encouraged, but if you start categorising people and criticising their behaviour and abilities - all based on personal prejudice and ignorance, I also think it should be expected that they, or others, might want to defend them.