Live data from Hacker News

What distinguishes great software engineers? (2019) [pdf]

faculty.washington.edu

21–30 of 174 posts

Re: What distinguishes great software engineers? (2019) [pdf]

#21
post #7
post #5

Earlier quoted context omitted.

> An important part of their role is estimating how long a task will take to complete Agile exists because a very large number of people dispute this.

And then jumps through large hoops to hide that it's still asking people to estimate. Sure, it's not hours, it's "velocity" and "difficulty", and you don't estimate, you play "Fibonacci Poker". But at the end of the day, the question "can we do this in the allotted amount of time" still gets asked and answered. What agile got right is realizing that the error bars increase superlinearly with duration, and that scope…

First, allotting an amount of time to delivering value is an anti-pattern in itself.

Second, Agile doesn't ask people to estimate ("respond to change over follow a plan"). Management asks people to estimate.

Jeff Patton says it best in User Story Mapping, the "client-vendor anti-pattern"

> It's the client's job to know what he wants, and explain the details to the vendor. It's the vendor's job to listen, understand, and then think through a technical approach for delivering what the client asked for. The vendor then gives her estimate - which in software lingo actually means "commitment" ..

> The real tragedy is the client understands their problem better than she's able to predict what will solve it. But in the anti-pattern, conversations about problems and solutions are replaced by discussions and agreements about requirements. No one wins.

> Try showing up at your doctor's office and giving her your "requirements". Tell her the prescriptions you'd like written and the operations you'd like scheduled. If she's nice, she'll smile and say, "That's interesting, tell me where it hurts."

> In my head, I picture a continuum where on one side is the word waiter, and on the other is the word doctor. Try to make your working relationships more like doctor-patient and less like waiter-diner.

Re: What distinguishes great software engineers? (2019) [pdf]

#22
post #3

Can't claim I read the entire thing, but I got down to methodology and must say it doesn't look particularly impressive. The study is a survey sent out strictly to Microsoft employees asking them how they rank a set of pre-defined criteria about what makes a great software engineer. That criteria includes things like "hard working", "honesty", "team player", "creates a safe haven" etc... Obviously no Microsoft employ…

The paper may not offer insightful prescriptions for experienced engineers, but can work like this still be useful for informing future studies in a meaningful way? The authors repeatedly note the widespread inadequacies of the current research landscape. (To anyone familiar with the literature, is their assessment accurate?) In my eyes, the message is that the paper represents an incremental step in the direction of a truly detailed understanding of the factors involved in developer productivity. Even if there's a broad intersection between the answers one would get from taxi drivers and from computer scientists, the distance between the two fields makes that an unexpected result, which should prompt us to change how we think about computer science* and/or how we think about studying it.

*or cab driving

Re: What distinguishes great software engineers? (2019) [pdf]

#23

Great software engineers know not to create PDFs when HTML works fine.

Given that it is presumably part of a journal, I am not sure that HTML would have worked fine. The purpose was to publish in one of those. We are a secondary audience.

Re: What distinguishes great software engineers? (2019) [pdf]

#26
> 1. Introduction

> “At the end of the day, to make changes [to software], it still takes a developer, a butt in a seat somewhere, to type [Source Control System] commit. — Dev Manager”

Not entirely relevant, but this opening comment just struck me as funny.

Re: What distinguishes great software engineers? (2019) [pdf]

#28
post #2

I'm surprised there is no reference to time estimation. An important part of their role is estimating how long a task will take to complete, and I've found many people, even engineers with a lot of experience, are terrible at this.

One place I worked said that you weren't allowed to make an estimate that was longer than three weeks. There are apparently studies showing that estimates longer than that tend to have much larger errors. So if it was going to be longer, we had to break it up into pieces until each piece was smaller than three weeks. That could get tedious. On the other hand, we did do a lot better than normal at hitting our dates. (…

But then, you still have to connect all these 3-weeks-pieces together. And how long does that take?

No we are back to the original, overall question...

Re: What distinguishes great software engineers? (2019) [pdf]

#29
The more experienced I get, the more doubtful I am about every code. In the end I will be an ermit on a mountain imagining a code base that does not evolve into a monstrous mess.

Honestly, I envy the young Mavericks who code shit and get work done. They at least sleep at night.

Re: What distinguishes great software engineers? (2019) [pdf]

#30
Weird to me how down these comments are on what I read as the main message of the paper, i.e. that engineers aren’t just code monkeys.

Being a “great engineer” is not strictly determined by technical ability; in fact, social ability plays a big role in a so-called “individual contributor role.”

Post reply on HN