@maxlynch @32DM9Y9 ORMs might be ergonomic for this, but they suck at it. I've not found one which could aggregate before joining, and avoid Cartesian products.
🟥 10 CODES FULL PACK VIRTUAL REGATTA À GAGNER 🟥
Naviguez virtuellement au rythme des 6 skippers de l’ARKEA ULTIM CHALLENGE - Brest sur @VirtualRegatta.
Pour jouer :
Suivre @VirtualRegatta & @ARKEAULTIMCHALL
RT ce tweet
Tirage au sort le 03/01
#AUCB#JeuConcours
1. #TDD requires refactoring continuously with no visible end in sight for when that will stop. So each iteration, a developer makes a solution with quality oversight at a minimum knowing in the back of their head that they will have that code rewritten. This is a major issue that makes code reviews a nightmare in the process. You're always reviewing a half-assed implementation tied to how complete the requirements are.
2. If one designs up front (eg with @EventModeling) the design part of TDD is not needed. So refactoring over and over again isn't necessary. Note that, test first/last and unit tests alone are not TDD. More importantly, the design is not siloed to just developers if you design collaboratively with other roles.
3. Making TDD unit tests a form of documentation silos that to just developers.
4. TDD pair programming, ping pong test- implementation rotation, mobbing are more examples at siloing system design to just developers. I'm not even including the over reliance on the right social conditions to have that (especially with introvert devs) as an option when designed systems don't need any, relatively speaking.
5. The amount of code in scope for refactoring grows with the size of the feature as you add more tests for the implementation of the feature. Macro refactoring that coders love tweaking extend this code massaging to the entire solution. The only way this works is if you've defined a perfect unit to keep scope in check. But that's a catch-22 because the perfect design is the outcome of the TDD cycle itself. This means refactoring is a free-for-all for most.
6. TDD aims to have "the best minimal design and implementation and working code" at the completion of each cycle. This a complete waste of effort. The differences at each addition of functionality is not trivial to reach those guarantees. So the best abstraction rarely happens and at any point the released software is at a sub optional design under the excuse that "software is never finished" anyway.
7. A design with granular modularity as you get with #EventSourcing allows for replacement of entire steps. This is what gives proper units that I mentioned before. But they are small enough that instead of maintaining them, you can wholesale replace them. There is little to no value for TDD here.
8. TDD assumes we will not have any commodity to the steps used to put together workflows. So everything must be designed like a brand new bespoke solution. Don't even think about copying how a previous step worked when you're implementing yours. This is commonly done in #EventSourcing and I'm sure other methodologies give similar building blocks. Add to this #AI where you actually want boring code to train the model more reliably instead of from subjective hot takes on design of each skill level of developer in you org.
9. TDD was sold as a better than the worst thing in the industry. But in reality, almost anything would have been better than the 2 year BDUF from the 80s and 90s. The right question was "How do we improve design" instead of "How do we replace design". These days it's just tilting at windmills. The agilists outright ousted design. They made it a detail in the hands of just developers in the worst time in the SDLC. This sold well to both sides "wow, we the developers finally have a say" and the overseers "wow, we don't have to worry about this now, the devs will take care of it plus we can pit them against one another in a constant high stress scrum for efficiency's sake".
After 2 decades of doing TDD and BDD, I've realized that ignoring design and thinking that TDD will do a decent job at it for a trade-off for quicker/higher-quality development with the extra time was entirely a scam.
I've covered two aspects here: A) why TDD is bad for any development given higher costs and lower quality growth with size of solution, and B) how superfluous it is when you have granular modular design provided outside of it.
@melvynx Sur le côté tester l'implémentation qui n'apporte pas de valeur. Par contre tester ce qui est important c'est risqué, qu'est-ce qui l'est et ne l'est pas ?
@catalinmpit I'm approaching 40 and I'm having the time of my professional life coding. Productivity is not down but up, and I work for a startup (didn't choose comfort). At this age you know what work env suits you and how to invest your energy. And I know the struggle otherwise.
@samuelbreuillet Bon là tu as ouvert la porte et je peux comprendre que tu n'ais pas le choix. Mais dans le futur pense que tu vends de la compétence plus que du temps, ça t'aidera peut-être dans tes négos. Bon courage !
@samuelbreuillet Je dirais que faire du dégressif et des remises n'a pas trop de sens. En montant en compétence sur un projet et en passant du temps dessus, tu deviens plus productif. Te remplacer après plusieurs semaines leur coûterait cher (+ en TJM et - en productivité).
@zkochan@JamesRLandrum@jsumners79 Do you expect JS to first iterate all the elements in your array, to then sort numerically when all values are numbers? What if it is a mix of numbers and strings? That's why the spec exists. With typed arrays it works differently, because JS knows what it is.
@max_lyonnais12@Mediavenir Dégager ou être payantes, et après une certaine heure. C'est pas une question de fric (c'est pas un gros budget l'alcool, la bouffe c'est 5-10x plus cher), juste d'éthique. Tu veux pouvoir picoler, t'attends une heure décente et tu payes de ta poche.