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.
Developers spend most of their time figuring the system out
411–418 of 418 posts
Re: Developers spend most of their time figuring the system out
#412Figuring 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.
Re: Developers spend most of their time figuring the system out
#413In 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…
Re: Developers spend most of their time figuring the system out
#414Earlier 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…
Re: Developers spend most of their time figuring the system out
#415Earlier 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...
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
#416Earlier 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.
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
#417Earlier 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?
Re: Developers spend most of their time figuring the system out
#418Earlier 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…
"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.