Live data from Hacker News

Developers spend most of their time figuring the system out

lepiter.io

411–418 of 418 posts

Re: Developers spend most of their time figuring the system out

#411

Earlier quoted context omitted.

That’s not how that works at all. There’s clear precedent that employers are allowed to require specific degrees.

For certain (or certain kinds of) positions, yes. That's the "almost all" part.

There’s no problem with requiring a CS degree for every single software developer, software engineer, programmer, or coder job. Since those are the kinds of jobs that were obviously being discussed it’s not “almost all”, it’s essentially none.

Re: Developers spend most of their time figuring the system out

#412

Figuring out existing bespoke systems is what sucked the joy of programming out of my soul.

I see this perspective too often. The good news is that it does not have to be painful :). Looking inside the system can be beautiful if only we change the tools through which we look.

What are the right tools? I’d love to read about what I may be missing out on.

Re: Developers spend most of their time figuring the system out

#413

In my experience, the biggest obstacle in understanding the system is that the underlying business process is not properly documented. A technical system is only as good as the business system it's implementing. Knowing the business process makes it much easier to understand the technical implementation, especially if you're trying to find bugs in the technical system since you can more easily see the mismatch betwee…

Isn't coding basically documenting the business processes? (just in a way/language that computers can understand and read). Why document it twice? That's just violating DRY/SRP no?

Re: Developers spend most of their time figuring the system out

#414

Earlier quoted context omitted.

> Hmm, i don't like this for subjective reasons, you should rewrite it to be different That's why code review process must have a guidebook with a rule "it's on the reviewer to show why the suggested change has a tangible benefit".

> That's why code review process must have a guidebook with a rule "it's on the reviewer to show why the suggested change has a tangible benefit". Agreed, yet you're implying that: - there must be a guidebook in the first place - that it must actively be followed Sadly, that is not the case in many environments, where disagreeing with another developer might actually make you waste more time discussing (or rather) ar…

Does not seem to be a good place to be in.

Re: Developers spend most of their time figuring the system out

#415
post #62

Earlier quoted context omitted.

The studies I've seen about pairing show that it's OK for beginners or lower-skill developers, but absolutely less productive for expert/senior developers. So yes, you're correct.

There are high-profile cases of world-class developers pairing: https://www.newyorker.com/magazine/2018/12/10/the-friendship...

That's documenting an emergency, all-hands-on-deck response to a crisis.

I absolutely can pair for such an event. I'll pair for knowledge transfer. I'll pair for fun. If every second counts, or if the goal isn't maximum productivity throughput, the sure, pair away.

My point is not that it can't help for world-class developers, but rather that two world-class developers working on routine coding are absolutely not more efficient than two world-class developers working separately.

And people who advocate for pairing typically advocate for 100% pairing. Which can be fun but it won't be more than 2x as productive as two world-class developers working independently.

Re: Developers spend most of their time figuring the system out

#416
post #34

Earlier quoted context omitted.

The studies I've seen about pairing show that it's OK for beginners or lower-skill developers, but absolutely less productive for expert/senior developers. So yes, you're correct.

I would say that there is still a benefit of pairing an expert with a novice now and then. Not for productivity but for long term effects. They cannot be _too_ far apart though.

Occasional pairing, especially for knowledge transfer, is great.

It's the 100% pairing, or worse, 100% mob programming (up to six people with one screen!) that I can't believe would ever be more efficient than the programmers working independently.

Sure, have a party and mob-program for fun for an afternoon, or solve a particularly sticky problem that way, or use it to transfer knowledge about the system to the wider team. Have a blast, and teach everyone something useful at the same time. By all means.

Just don't pretend (as pairing/mobbing advocates do; not you) that two people sitting at a computer can be as efficient at day-to-day coding as two people coding separately, unless at least one of the two is a junior or near-incompetent developer who would contribute negative productivity on their own.

Re: Developers spend most of their time figuring the system out

#417

Earlier quoted context omitted.

The studies I've seen about pairing show that it's OK for beginners or lower-skill developers, but absolutely less productive for expert/senior developers. So yes, you're correct.

Forgive my possible laziness in searching, but do you by chance have links to some of the studies you reference?

Sorry, don't have the references handy.

Re: Developers spend most of their time figuring the system out

#418

Earlier quoted context omitted.

That just can't be more productive over the long term, though. Lets say, hypothetically, that you can use it to ramp any programmer up to being an expert on the system. Maybe that takes two months? Or even six months? Once you have a team full of experts, you're now spending two programmer hours to do every bit of work that could have been done in one programmer hour by a single expert. Unless you have such incredibl…

There are other benefits, pair programming reduces a whole category of simple bugs/typos to basically 0, keeps people on task, offers (literally) immediate feedback. Unlike most programming "best practices" or paradigms, there's actual empirical evidence that pair programming is "better". Fewer bugs, easier to read code, shorter review cycles. My guess as to why we don't see more adoption is 1) most developers aren't…

"Fewer bugs" needs to produce 2x productivity over the productivity of the two developers independently in order to actually be a benefit. Code review and using typesafe languages can also catch nearly 100% of those bugs as well, without the 50% performance penalty.

"Keeps people on task" seems like management-think adjacent to "butts in chairs in an office" requirements: There's a fear that someone might be "wasting" time by being distracted, when you seriously need to contemplate problems sometimes.

I'd need to see that "actual evidence" that we're allegedly discarding. Two programmers with two computers clearly could produce twice the productivity if they're both strong programmers. When I've been pairing with people I simply do all the work. I might get 1-2 comments per hour about a missing semicolon that I would have discovered the moment I tried to build. The claims of the pairing advocates are pretty hard to believe, and I don't see extraordinary evidence to back their extraordinary claims.

As I intimated above, the only way it would work is if the developers are junior (or mediocre) enough to be prone to contributing 0.5x or less productivity left to their own devices, so that the two developers' inadequacies at programming complement each others' and you get a 1.5x productivity out of them combined or something. And I do suspect that companies use that fact to hire less competent developers and make them at least reasonably productive; Pivotal does 100% pairing, and sells it hard, but note that they're paid per developer hour and so actual productivity per-developer isn't what they're necessarily what they wanted to optimize.

As to your Edit: The exact thing I'm objecting to is 100% pairing, which is practiced at some companies like Pivotal. Or worse, 100% mobbing, which is more than two people at one screen.

Post reply on HN