News for hackers. Stuff that matters.
Re:Introductory bullshit detection for non-technical managers by piyush_soni on Monday July 10, 2017 @12:51AM (#14733447)
Ironically, this looks like a bullshit article to me. I have no idea what is the experience level of the author, but as a senior developer, several times I have "created a framework" (and a quite useful one at that) which not only made the problem solving manageable for myself, also resulted in clean readable code which is maintainable for others in the team as well.

Also, don't underestimate the real need of refactoring at times. There's no red/yellow flag here. Sure, we can keep postponing that and create bigger mess - which is a decision we do have to take at times to avoid last minute bugs, but that still doesn't mean the developer is bullshitting when he says he needs to refactor some old ugly code.

Re:Introductory bullshit detection for non-technical managers by eight_ender on Monday July 10, 2017 @01:11AM (#14733528)
Refactoring as a "yellow flag" is not only dangerous, it's the opposite of how you should treat it. It's not just about cleaning up code that might not meet the bar on quality. Sometimes it's about challenging assumptions by the developer that were completely valid when they wrote the original code that aren't now through hindsight, technology changes, etc.

It's possible for a developer to write all-star top shelf code only for it to be significantly improved a year later with a few line changes. To not challenge all code, even the good stuff, is doing your codebase a disservice.

Re:Introductory bullshit detection for non-technical managers by omginternets on Monday July 10, 2017 @10:32AM (#14736241)
>Refactoring as a "yellow flag" is not only dangerous, it's the opposite of how you should treat it.

Hmm, I actually thought it was pretty reasonable. Refactoring is real and necessary, but it also gets thrown around a lot in order to mislead. Contractors who are overbooked and not working on your project always seem to be "refactoring".

Re:Introductory bullshit detection for non-technical managers by ljw1001 on Tuesday July 11, 2017 @07:51AM (#14743341)
Having been both a manager and engineer for a number of years in a number of organizations, I can say with some confidence that an excess of refactoring is NOT the problem.
Re:Introductory bullshit detection for non-technical managers by omginternets on Tuesday July 11, 2017 @09:04AM (#14743797)
Having worked as a contractor for many years, I can say with absolute certainty that actual excess refactoring is not a problem, but that claims of refactoring very much are.

Again: when a contractor is backlogged, "we're refactoring" is the go-to justification for the delay.

Re:Introductory bullshit detection for non-technical managers by xsmasher on Tuesday July 11, 2017 @04:00PM (#14747511)
Refactoring without a clear and stated purpose is bad. Refactoring WITH a clear and stated purpose may also be bad, if the purpose is bad; "Support some use cases we don't care about," etc.

There's a checklist in the "Value" section of the article than can help sort out what value (if any) the refactor has.

Re:Introductory bullshit detection for non-technical managers by megablast on Monday July 10, 2017 @05:12AM (#14734389)
And a non-tech person will have great difficulty understanding that, or why? Why didn't you just write it correctly in the first place?
Re:Introductory bullshit detection for non-technical managers by Nadya on Monday July 10, 2017 @10:46AM (#14736388)
> Why didn't you just write it correctly in the first place?

For the same reason Bluray replaced DVD replaced VHS. "The better solution didn't even exist at the time" (new browser features) often coupled with the equivalent of "Now everyone has a Bluray player so we can start using Bluray features going forward." (ubiquitous browser support)

That tends to get understood by my management. Compare it to something they are familiar with - and anyone over the age of 25 will be familiar with the BR/DVD/VHS comparisons.

Re:Introductory bullshit detection for non-technical managers by samdg on Monday July 10, 2017 @11:14AM (#14736627)
Because you needed a "generic" version of it, but your manager read this article and told you not to do it...
Re:Introductory bullshit detection for non-technical managers by markatkinson on Monday July 10, 2017 @05:44AM (#14734555)
I am working on a code base where refactoring the code as the product grew was not even considered as most of the technical decisions somehow fell into the hands of non-technical business people (for the last ten years).

Just over a year ago the code base was handed over to a technical team (there used to just be one coder (never the same coder as they all seemed to hate the product and move on, now we know why)) to review, and fix to make it more scalable. Well to put it lightly it is a complete cluster fuck that has seen a couple people resign and it is not worth trying to fix.

Now the burden has become trying to convince the business people that drastic steps need to be taken (ie full re-write). They don't seem to want to even entertain the idea, so not sure what is actually going to happen.

Re:Introductory bullshit detection for non-technical managers by OpenDrapery on Monday July 10, 2017 @02:23PM (#14738407)
Drive it until the wheels come off can be a valid decision. Just be aware that when the wheels come off, you will be without a car for some period of time.
Re:Introductory bullshit detection for non-technical managers by Hydraulix989 on Monday July 10, 2017 @01:08AM (#14733517)
Yes, tech debt is a real thing, and sometimes it makes sense to pay it down.
Re:Introductory bullshit detection for non-technical managers by eddigo on Monday July 10, 2017 @01:50AM (#14733669)
If you're a competent programmer who uses these terms and phrases, then indignation is not an unreasonable reaction.

However, I think it's a completely valid article if you've ever experienced the interactions between an unproductive programmer and their non-technical manager. I've witnessed this dance every week for the past 3 years. The programmer in this case has used every one of those phrases except "platform independent".

Re:Introductory bullshit detection for non-technical managers by piyush_soni on Monday July 10, 2017 @03:57AM (#14734117)
The thing is, you just can't detect a programmer is bullshitting by just hearing those terms - thus making it a misleading article. There are all sorts of programmers out there - those who use these terms and work a lot (on those things), those who don't use them but still work on them, those who use these terms but don't actually work satisfactorily, and those who neither use these terms nor work. Correlation is not causation here is what I want to say.
Re:Introductory bullshit detection for non-technical managers by draw_down on Tuesday July 11, 2017 @12:29AM (#14741586)
Sure, I totally believe it. But it doesn't sound like the problem there is that the manager is asking the wrong questions.
Re:Introductory bullshit detection for non-technical managers by angersock on Monday July 10, 2017 @01:48AM (#14733664)
> I have no idea what is the experience level of the author

Acton is the engine lead over at Insomniac Games, and has been shipping that sort of work (routinely refactored/updated) for years. He's an exceptionally pragmatic tech lead.

Re:Introductory bullshit detection for non-technical managers by lewisl9029 on Monday July 10, 2017 @02:16AM (#14733758)
Maybe it has something to do with the nature of the business of game programming, where most projects are only developed and maintained for a year or two and then the team has to move on to the next big project in order to pay the bills. In a context like that, it can be easier to make the case that monkey patching might be a better use of resources than refactoring.

Generalizing this to all of software development is still a bit presumptuous though.

Re:Introductory bullshit detection for non-technical managers by xfer on Monday July 10, 2017 @01:57AM (#14733693)
Yet, he seems to be giving black-and-white picture of what constitutes bullshit to non-technical people.
Re:Introductory bullshit detection for non-technical managers by meheleventyone on Monday July 10, 2017 @02:48AM (#14733874)
Have you read the article? He's nuanced on refactoring in a manner that the originator of this thread doesn't describe.

When you hear “refactoring” it’s a bit more of a yellow flag. Technical debt is a real thing that needs to be addressed and that you should be aware of. I recommend reading Paying Down Your Technical Debt to get a basic understanding of the concept.

However, it can also be just an excuse to change things to some conception of “better” for no real benefit. Whatever better means to that programmer today, you can be confident that they’ll think it’s shit in a couple of years as they gain more experience and skill. That’s totally fine, but you can’t afford to get caught up in a loop of always retrofitting everything to “better” every time the definition of better changes. Unless you’re Google, in which case you keep doing that until some other team solves the actual problem and your project gets deprecated.

Re:Introductory bullshit detection for non-technical managers by Bartweiss on Monday July 10, 2017 @12:07PM (#14737172)
The refactoring section is one of the better parts, though. The article is very black-and-white on "generic version", "framework", "platform independent", and so on.

I don't doubt that the author is good at this job, but I think we're seeing an 'unconscious competence' issue. If I say "Java is platform-independent while C++ isn't", the author probably knows enough to think "well, that's a factual statement, not a red flag". But the person reading the checklist he wrote probably doesn't.

Honestly, I got some value out of this article as a list of things to ask myself. But it seems to be aimed at exactly the people who won't be able to interpret it effectively, and will misapply the hard-and-fast rules here.

Re:Introductory bullshit detection for non-technical managers by meheleventyone on Tuesday July 11, 2017 @12:57AM (#14741669)
Right and I'm just pointing out that the part on refactoring is way more nuanced than people were giving it credit, very often in a manner that suggested they were commenting on something they hadn't even read!

It will always be possible to accuse an article or even a book of being light on details. It is after all some pointers and not a scheme to make a non-technical manager technical. Learning anything takes more than reading at surface level, particularly of a clearly introductory article. The principle of charity goes a long way to smoothing out the inner pedant.

Re:Introductory bullshit detection for non-technical managers by Bartweiss on Tuesday July 11, 2017 @11:05AM (#14744763)
> The principle of charity goes a long way to smoothing out the inner pedant.

Certainly true, and I do think people skipped the section on refactoring. But I guess my real complaint here is that the article itself seems to advocate against the principle of charity!

Asserting that generic versions and frameworks are inherently 'red flags' that someone doesn't know how to do their job doesn't seem like an inducement to more reading, it seems like a misleading absolute. I got that feeling throughout the whole piece, for instance with the implication that memory limits are key in all tasks.

It was either very domain-specific advice (I know the author came out of game design, which fits his list better than general software), or vastly overstated advice.

Re:Introductory bullshit detection for non-technical managers by meheleventyone on Tuesday July 11, 2017 @04:46PM (#14747893)
I come from a games background as well so am probably deaf to how domain specific things are. But people spending far too much time making something too generic or an extensible, pluggable doodad with its own DSL rather than creating the simple, dumb version you actually need is actually quite common IME. Engine code (which is partly framework building) is very susceptible to overengineering and attempted future proofing.

I don't think they're being introduced as red flags to say "call bullshit on this and don't do it" but to be aware in the following cost-benefit analysis.