Programming Memes Thread
-
-
@Gribnit said in Programming Memes Thread:
There are some very fine people practicing TDD properly. I suspect some types of developers just aren't suited to it.
TDD works extremely well within the context of adding a new feature to a well-tested system. It's far more of a pain in the ass when starting with a greenfield project.
-
@dkf said in Programming Memes Thread:
@Gribnit said in Programming Memes Thread:
There are some very fine people practicing TDD properly. I suspect some types of developers just aren't suited to it.
TDD works extremely well within the context of adding a new feature to a well-tested system. It's far more of a pain in the ass when starting with a greenfield project.
Or when there are no clear requirements or specifications, and everything is just "Meh, lets change everything around until things magically looks like they work" . Like at my current gig.
-
@Carnage Well, the point of TDD is to force you to create the specification. In an executable form of a test.
-
@Carnage said in Programming Memes Thread:
@dkf said in Programming Memes Thread:
@Gribnit said in Programming Memes Thread:
There are some very fine people practicing TDD properly. I suspect some types of developers just aren't suited to it.
TDD works extremely well within the context of adding a new feature to a well-tested system. It's far more of a pain in the ass when starting with a greenfield project.
Or when there are no clear requirements or specifications, and everything is just "Meh, lets change everything around until things magically looks like they work" . Like at my current gig.
Or when developers think they understand the requirements.
This isn't what I asked you to do.
It's got 100% coverage and I tested it myself.
It's still not what I asked you to do.
-
-
@Bulb said in Programming Memes Thread:
@Carnage Well, the point of TDD is to force you to create the specification. In an executable form of a test.
Yeah, and that is putting a fuckload of stress on developers, that should be placed elsewhere in the organisation. Coming up with cute development TLAs doesn't help with things outside of the developers responsibility. I have, and can, do the job of requirements gathering and writing, API specification and documentation and all that, but when that is explicitly forbidden because AGILE, then TDD will not fix the tire fire.
-
@Gribnit said in Programming Memes Thread:
@Zerosquare said in Programming Memes Thread:
:déclenchée:
Is the root here derived from holding your ass-cheeks together like you're
carryingmaking a diamond?
-
@Gribnit said in Programming Memes Thread:
@Gąska said in Programming Memes Thread:
@Applied-Mediocrity I guess I should condemn TDD before someone pulls Charlottesville on me.
TDD is bad and that guy should feel bad.
There are some very fine people practicing TDD properly. I suspect some types of developers just aren't suited to it.
You had some very bad people in that group, but you also had people that were very fine people, on both sides™.
-
@Carnage said in Programming Memes Thread:
I have, and can, do the job of requirements gathering and writing, API specification and documentation and all that, but when that is explicitly forbidden because AGILE, then TDD will not fix the tire fire.
That's the hypocrisy of AGILE. It tells you you don't need to do requirements gathering and API specification and all that and then it tries to sneak it back on you with TDD.
Because tests without specification are pointless wanking.
-
@Bulb said in Programming Memes Thread:
@Carnage said in Programming Memes Thread:
I have, and can, do the job of requirements gathering and writing, API specification and documentation and all that, but when that is explicitly forbidden because AGILE, then TDD will not fix the tire fire.
That's the hypocrisy of AGILE. It tells you you don't need to do requirements gathering and API specification and all that and then it tries to sneak it back on you with TDD.
There is no TDD in AGILE. This is actually one of the earliest criticism, by the proponents of EP (Extreme Programming): that "agile" is just EP without all the real engineering stuff. Take it as you want, I am personally not a fan of anything "extreme".
Also, it's not true that AGILE forbids requirements gathering. It just says that it does not need to be done in a formal bureaucratic manner and 100%, it just needs to be done "as necessary, in the most practical way". Why is that interpreted as "do nothing", is kinda mystery (well, not that big mystery).
Because tests without specification are pointless wanking.
TDD actually brings the idea that the tests are the specification. Of course, this brings the issue @DogsB posted:
Or when developers think they understand the requirements.
This isn't what I asked you to do.
It's got 100% coverage and I tested it myself.
It's still not what I asked you to do.Funny thing, this is exactly the thing addressed by the most popular AGILE methodology, SCRUM. When this happens, the development just starts again, and this is repeated until the agrees that the result is good. (Also: it's important that everything is tested by someone else than the implementor, but that is actually not addressed by any methodology today...)
This is the most important crucial point and the very reason why these cycles ("sprints") exist. Yet, somehow, this is completely missed by pretty much everyone and in 99% of cases, companies "implement SCRUM" but refuse to ever throw away any work done. And in most cases, there is no such validation at all.
-
@DogsB said in Programming Memes Thread:
@Carnage said in Programming Memes Thread:
@dkf said in Programming Memes Thread:
@Gribnit said in Programming Memes Thread:
There are some very fine people practicing TDD properly. I suspect some types of developers just aren't suited to it.
TDD works extremely well within the context of adding a new feature to a well-tested system. It's far more of a pain in the ass when starting with a greenfield project.
Or when there are no clear requirements or specifications, and everything is just "Meh, lets change everything around until things magically looks like they work" . Like at my current gig.
Or when developers think they understand the requirements.
This isn't what I asked you to do.
It's got 100% coverage and I tested it myself.
It's still not what I asked you to do.Bonus points if it's EXACTLY what they asked you to do.
-
@Zerosquare said in Programming Memes Thread:
+ ᪒ because one upvote was not enough.
I nearly spit coffee when I got to "...declare bankruptcy.."
-
@Kamil-Podlesak yeah, I've seen agile be completely misunderstood and misused in almost every place I've been in the last 15 years.
And tests are a horrible specification of how things should work, because they are very hard to read and get the information you need out of them for APIs or anything high level. Not to mention that they will simply be updated without checking if it's actually correct.
-
@Carnage Tests can be OK-ish specification of what things should do—if they are high-level integration tests. Lower levels? If you CBA to specify them, it makes sense to test them too.
-
@Bulb they are often a decent, but far from perfect, de facto specification of what the developer thought was supposed to happen. They can give you a clue when you're looking at something from the past. But I also always trace the code back to some ticket to see what everyone was thinking back then.
-
@boomzilla … and I usually find a one measly vague sentence in the ticket that leaves be absolutely no wiser anyway.
-
… as in, just now I am trying to hunt down who an why decided that the client (that is completely static JS bundle for a client-side UI), but not the API (it is behind a login all right), is to require a client certificate to access. Apparently the devops
specialistdimwit, with as little thought as he gave to the other things.
-
@Bulb said in Programming Memes Thread:
I usually find a one measly vague sentence in the ticket that leaves be absolutely no wiser anyway.
Best is “workaround for
TICKET-12345
” where that ticket doesn't exist any more (or no longer has that ID, or is in an internal database owned by some other company).
-
@Bulb said in Programming Memes Thread:
@boomzilla … and I usually find a one measly vague sentence in the ticket that leaves be absolutely no wiser anyway.
Sometimes. But at least I can see if something that the code was doing actually documented as a requirement. This has been especially useful when users report a bug and then you find out the behavior was explicitly asked for.
-
@dkf said in Programming Memes Thread:
@Bulb said in Programming Memes Thread:
I usually find a one measly vague sentence in the ticket that leaves be absolutely no wiser anyway.
Best is “workaround for
TICKET-12345
” where that ticket doesn't exist any more (or no longer has that ID, or is in an internal database owned by some other company).Yes, the main project has that a lot. There is the ultimate customer Jira, the integrator's Jira and there was this departments several old Jiras (one server, but I wouldn't see all projects) and this departments several new Jiras (again, I don't see all projects). Being a subcontractor makes it a bit worse for me than the core team members, they have access to a larger fraction of the systems.
@boomzilla said in Programming Memes Thread:
@Bulb said in Programming Memes Thread:
@boomzilla … and I usually find a one measly vague sentence in the ticket that leaves be absolutely no wiser anyway.
Sometimes. But at least I can see if something that the code was doing actually documented as a requirement. This has been especially useful when users report a bug and then you find out the behavior was explicitly asked for.
You are a lucky one. Our bugs are usually vague one-sentence notes and then the user explains the problem to the developer trying to troubleshoot it, but that never gets properly documented.
-
@Bulb said in Programming Memes Thread:
Our bugs are usually vague one-sentence notes and then the user explains the problem to the developer trying to troubleshoot it, but that never gets properly documented.
Oh neat, so on average there's no way for the number of bugs to go down: it sounds like in most cases, bugs are only removed by accident but every bug report is likely to introduce a bug.
The solution here is cask-strength alcohol. Whiskey just doesn't stay that good past maybe 60%, so you're going to want to go straight to Caribbean non-export rum, the highly flammable stuff. I recommend Punceon.
-
@Gribnit said in Programming Memes Thread:
Caribbean non-export rum
They do export it, but maybe not to the US.
-
@dkf said in Programming Memes Thread:
@Gribnit said in Programming Memes Thread:
Caribbean non-export rum
They do export it, but maybe not to the US.
It might be able to travel by boat? Maybe somebody'd let you fly with it, not at all sure. Some airlines have different opinions on flammable volatiles.
There's always Spiritus but I don't like to prescribe it except in advanced cases or Slavs.
-
-
@Gąska said in Programming Memes Thread:
I think it would be more fitting with "Just because I use Linux doesn't mean I'm crazy"
-
Did you mean: "just because I'm crazy doesn't mean I use Linux"?
-
@Zerosquare I don't own a Linux machine right now.
-
-
@boomzilla Well, Larry's tall.
-
@boomzilla I'm probably being super dense (I've been in a fog all day) but how does this relate to programming?
-
@The_Quiet_One I dunno...maybe our shit ability to make interfaces? Plus it seemed funny to put it in here.
-
Just picture a normal bathroom titled "what the end user wanted"
-
@Dragoon said in Programming Memes Thread:
Just picture a normal bathroom titled "what the end user wanted"
That's one possible interpretation. Another is "okay, ship it".
-
Another interpretation is "CSS".
-
@Dragoon said in Programming Memes Thread:
Just picture a normal bathroom titled "what the end user
wantedasked for"Slightly more accurate IME...
-
@PJH said in Programming Memes Thread:
@Dragoon said in Programming Memes Thread:
Just picture a normal bathroom titled "what the end user
wantedasked for"Slightly more accurate IME...
I think you're mixing stuff up here:
The normal bathroom would be titled "what the end user wanted", as @Dragoon said. The "what the end user asked for" title would go with the above picture.
-
@The_Quiet_One said in Programming Memes Thread:
@boomzilla I'm probably being super dense (I've been in a fog all day) but how does this relate to programming?
Look: you do no more need to kneel down for puking.
That is, when you have enough strength in your stomach muscles to throw up while standing, but the product management did not test that hypothesis before requesting such a feature.
-
@BernieTheBernie one can cling to the fixture with their
uppernormal human arms if their abdominals fail, as well. This is a preferable choice for the advanced vomiter.
-
-
@Gąska TBH I expect the intersection between the two groups to be much larger than the difference.
-
@Zecc not convinced. A lot of fanfic is written by people who are very much not the developer demographic.
-
@Arantor those are male arms tho
-
@Arantor I used to write MLP fanfiction...
-
I didn't assert that no programmers wrote fanfic, nor did I assert that fanfic is only ever written by women. Merely that I wasn't convinced that the overlap was quite as large as implied.
-
Ah, crap, here we go with the iconoclastic research sources and the statements of natural law.
...
Can we at least get a "Game theory time."?...
... how about vague grumblings about true meritocracies?
-
@Gribnit how about we don't make overly broad assumptions about programmers or any other protected status while we're at it?
I know programmers aren't a protected status. Some days I feel like they should be, complete with special entry requirements.
-
@Gąska said in Programming Memes Thread:
@Arantor I used to write MLP fanfiction...
No worries. We still respect you just as much as before.
-
@Zecc that sounds perilously close to " Your files are right where you left them." for my liking.
-
@Arantor said in Programming Memes Thread:
how about we don't make overly broad assumptions about programmers or any other protected status while we're at it?
How do we know they mind?
Can I continue with my overly specific assumptions, assuming they do mind? It is a better world when C# developers named Fritz love Cheetos.