There's no way you're slower with TDD. You can spend your time writing tests or you can spend your time fixing your crappy code and supporting your pissed off customers. Also, making changes rippling through tests sounds like bad design. AKA skill issue.
@SeanJung-rx1vo10 күн бұрын
I applied a valid type by referring to the video. The code has become more readable. thank you
@alexandreg393311 күн бұрын
Excellent and insightful talk
@htx80nerd20 күн бұрын
Thought this was about Terry Davis, never mind.
@bgseenivasababu719122 күн бұрын
Is there any project which is easily maintained by others without TDD. I don't think so. Robert clearly told that without TDD approach programmer will encounter lack of productivity within a day. I don't think you can ignore TDD easily unless the project is not already done by someone.
@Baelrog66622 күн бұрын
Footsteps sounds are very annoying.
@cezartorescu28 күн бұрын
60 mins of bullshit. Get a life 😂😂😂😂
@mozhdehnouri29 күн бұрын
The one of the best I ever seen
@victorserranobarguesАй бұрын
Amazing I have learned many new things
@harikrishificationАй бұрын
Thank you for sharing this fantastic presentation! I'm thoroughly intrigued by the scientific process involved in developing mental models for predicting the future. Dave adeptly linked this science with effective leadership and decision-making, which was truly impressive.
@denniszhzАй бұрын
This is mind-blowing. Simple logic yet super powerful! This video should be viewed by millions! Dave should be teaching this at larger platforms. I would sacrifice a lot to work for such a true leader!
@XeonProductions2 ай бұрын
Maybe the reason I hate TDD so much is that I've always been on projects that are rapidly changing with poorly defined requirements. I very seldom encounter a project where I have good enough requirements to write tests BEFORE writing the code. I've also worked on projects where the leads are obsessed with code coverage and code smells, even though the code was still a bug ridden mess. I've spent more time writing tests, refactoring tests, debugging tests, and researching how to write tests than I ever did writing any of the code. The time and cost savings just wasn't there, and still isn't there. In my experience my untested code has been no more buggy than my tested code. You then have the massive bloat that comes along with making every single dependency in a class injectable (interface hell) so that it can be "easily testable", even though most of the dependencies you are injecting will NEVER need to have an alternative implementation during the lifetime of the code. You then have the problem of poorly written tests by inexperienced or low skilled developers, which will throw up false positives or falsely show that something is passing giving you a false sense of security.
@Salantor2 ай бұрын
I am waiting for a day that someone will convince me that TDD is a good way of wriring web FE code, especially dor frameworks. From my perapective it is a royal pain in the ass.
@Kenbomp2 ай бұрын
Ivar Jacobson
@Kenbomp2 ай бұрын
14:29
@Kenbomp2 ай бұрын
It's not that humans are bad at making it fast it's that they are bad at it in 7billion different ways
@TheJimNicholson2 ай бұрын
I have a vision in my head of having Alan speak to the IT leadership in my organization, but I always end up thinking it would have to look like that scene from Kubrick's "A Clockwork Orange" where they have the protagonist tied to a chair with devices that force him to keep his eyes open and watch the re-programming.
@hasan07708162682 ай бұрын
notes to self books: programmer anarchy, spike and stabilize, lean software development (all do away with tdd) test driven development by example kent beck refactoring by martin fowler refactoring to patterns by kerievesky ------ TLDR do not bake implementation details into tests as this makes refactoring difficult. refactoring is changing the internals of code not the public interface. the majority of tests must be unit tests as they are fast and automatic. 58:58
@natanloterio2 ай бұрын
valid points, others not so valid. For instance, the use of `Either` results chained to a `fold` function seems an unnecessary overhead since you already have the conditional operator `when`. Besides being counterintuitive when reading from left to right, it makes it harder to read the code.
@96merluzzo2 ай бұрын
yeah this talk was a wonderful discovery.
@ryanhewitt99022 ай бұрын
There are not enough comments here - this was a well put together presentation! My question is: Can I use this technique in a Lisp-like language? I like the idea of thinking with algebraic types in order to get a birds' eye view, and wonder if I can apply this sort of thinking to languages lacking algebraic union types and compilers.
@user-wr4jm5og3b2 ай бұрын
Very commendable presentation given it was held during an earthquake... Even the cameraman was holding it together (barely)
@arunmarapally69692 ай бұрын
Thank you guys for recording it.
@danielbartley5163 ай бұрын
The sniffling m’kay. FFS
@core2extremist3683 ай бұрын
The suggestion to "just go read Kent Beck's Test-Driven Development: By Example" is amazing. GOAT suggestion. READ IT. It explains what the tests are *actually* for, and has full examples of how to use the process. And, surprise surprise, it's TOTALLY different than what my team was doing. Short summary: *start by writing tests from the client's perspective:* like `assert(Currency.dollars(5).times(2) == Currency.dollars(10))`. Then write the code to implement the tests. That's it! It's hard to write the tests? Refactor the code so they're easy to write. Writing tests is really annoying because there's lots of duplication? Refactor. Spending lots of time making elaborate mocks to test internals? Stop! You're doing it wrong. *Good tests == getting the right answer means your implementation is right.* THIS is what lets you refactor easily - if your refactored code passes all the tests, then it's right. In Gang of Four terms: do NOT peek behind the public facade! Just test the facade. Leave the details where they belong: as hidden details. It's not the details you care about: it's whether you get the right answer!
@alerya1003 ай бұрын
Scott Wlaschin is a god tier teacher !
@jacmkno50193 ай бұрын
If the trigger is a requirement, those come in very different shapes and flavors. "I need a software that makes some money for me online". What test would you start writing for that?. Prototype driven development is what really happens. All those other philosophies are only childs of particular situations that arise during development. Impossible to generalize as far as their followers usually try to do...
@jacmkno50193 ай бұрын
There is no way to do tests without establishing an interface between the testing system and the system being tested. This interface then has to be maintained. And then it becomes impossible to say if it is true that in most cases this extra maintenance cost is lower or higher than just manually testing the code for relevant cases or all the other intermediate uses of automated testing. Too many variables to explore. Is the same as asking is religion is good or bad. Who knows, but surely you would not want to say something that is likely to offend most religious people in front of an audience that you don't know...
@HiddenUsename3 ай бұрын
And what were the user stories when IBM was writing DB2? All this "user stories" is crap that Web brought upon us. What's really needed is a smart guy who talks to the users and specs out the features. What you rally need is smart guys. And this is the crux of the issue: all this BS about respect, etc comes from an assumption that you have high quality people on your team. The kind of ppl who signed the Manifesto for Agile Development. Smart and passionate. The reality is far from it. you have to deal with mediocre lazy developers. Which is also doable but the Agile is not the way to make them deliver a decent product. You need a rigid process for that. You need to do it the way the Army does it. And I saw it done in 1990s
@avsync-live3 ай бұрын
Assume you have really smart capable people on a project. What resources do you recommend reading on software development process?
@HiddenUsename3 ай бұрын
@@avsync-live Simon Brown C4 stuff and everything by Coplien. Anything that's not TDD bs push. But thing is, you never have a team of really smart capable ppl, except in rare cases like some startup or Google Go lang team. U need to be able to make average, often mediocre ppl deliver decent product. And it's done with leadership, mentoring, discipline. I saw it done at IBM. The army like approach.
@HiddenUsename2 ай бұрын
@@avsync-live the whole point is that there is no single magic process. the process is established by the senior people on the team, just like a lead surgeon set the process for his team. Read Fred Brooks, he wrote a lot about it. Same goes for the coding standards. No BS like TDD or some other crap like that.
@alexanderpodkopaev66912 ай бұрын
@avsync-live anything published before 2010 should work if uou have real professionals, as they would be capable to choose approach and adjust it to needs. As one ex-M$ project manager wrote, all software development books describe dancing around developers while they wrote code. And yes, it does much more sense if all you've got is mediocrity.
@HiddenUsename2 ай бұрын
@@alexanderpodkopaev6691 if uou have real professionals, And this is the key! What the last 10 years have been is an attempt to make mediocre ppl deliver something via a process rooted in maximizing FUN for those mediocrities.
@rogerdeutsch58833 ай бұрын
“The most effective organizations are learning organizations. Learning is The Work.” 38:35 Wish more orgs knew this and understood the truth of it. Fantastic talk
@edgeeffect3 ай бұрын
I'm a pathetic Kevin Henney fanboy and I understand that I **DO** have issues in this particular area... but I find myself wishing he actually did do that 50 hour version. ;)
@GunterZochbauer3 ай бұрын
For me the biggest advantage is that wtiting tests pushes me into the view of the user (caller) of the code. This helps to get it right the first time.
@edwardlloyd16553 ай бұрын
Promo sm
@JitendraAanadani4 ай бұрын
👍
@PaulSebastianM4 ай бұрын
6 years and we've not made any progress. And how many years since those books were written?
@foobarz-coding4 ай бұрын
I was doing unit test for the last 2 weeks in my current job for the first time . I was mocking to dependecies of the class and also spying on the implemntation . I knew that I'm doing something wrong . Nice Lecture Now I understand how to go . what do you thing guy about mocking repositories with in Memory database for Unit test ?
@PaulSebastianM4 ай бұрын
What do you do if other devs complain that your refactorings "keep changing" the code they have to work with, directly or indirectly?
@edgeeffect4 ай бұрын
Or it's too hard to review your code because you do too much.
@PaulSebastianM4 ай бұрын
@@edgeeffect yes! Exactly! Or there's too much to test manually because there's not (enough) automated testing. Even though you have improved the code a lot and fixed some really bad design, allowing faster and safer development in the near future.
@ChrisB_Crisps2 ай бұрын
That's when one looks for another team/company/project. If these best practices are for, whatever valid reason, seen like that, the one is seen as an unfit cog in the organization. I have seen similar things happen in healthcare systems in eu in conjunction with php and .net
@ForgottenKnight12 ай бұрын
If the changes are a lot and devs can't follow the thought process, do pair programming or even mob programming. Integrate them in the process so they can digest all the steps, not just the end result.
@PaulSebastianM2 ай бұрын
@@ForgottenKnight1 fair and it worked. Problem is only one or two developers were willing to do pair programming.
@PaulSebastianM4 ай бұрын
Oh how the world is broken in so many ways. It's astounding that there are still people that try to fix it. Especially knowing how hard it is and how everything and everyone is against you, against learning, against good...
@rupture0074 ай бұрын
That lanyard rubbing on the mic irritates me just about as much as doing TDD, TDD still wins. I do agree your tests should only test the behavior of a feature, not each method or function in your code.
@vorpae4 ай бұрын
Great stuff. Very insightful, thank you.
@rursus83544 ай бұрын
Wow! I formulated my own scratch hacking method (for script writing) and tought it to my pupils, and Phase 1 and 2 sounds very similar to the Q'n'D phase of and the refactor phase of TDD. Thank you! That was interesting indeed..
@piesho4 ай бұрын
28:51 The name of that book is "The Fifth Discipline" by Peter Senge.
@user-kq4hh7kl3c4 ай бұрын
Wonderful! I must implement this ideas now )
@gofudgeyourselves90244 ай бұрын
Deepika Padukone
@kodabar4 ай бұрын
In the thumbnail image of Nikhila Ravi, her skin colour was changed.
@allakashivakumar4 ай бұрын
Dave should start podcast or youtube channel for engineering leadership !
@nukabuga4 ай бұрын
Steaks contain zero or close to zero carbohydrates.
@psingh0074 ай бұрын
Always a pleasure to see and hear Allen
@sandrodelacruz81254 ай бұрын
He's back!
@Tony-dp1rl4 ай бұрын
So. Much. Mock. Code. I am so glad we moved away from Unit Testing to other forms of test automation.
@gruttewibe764 ай бұрын
What are those other forms of test automation? I think unit testing can work well if we are testing with the right definition of 'unit' (a unit of behaviour), and if the architecture is testable. 'Unit of behaviour' may be a couple of classes together. We don't have to mock stuff when it's our own code, and when that own code doesn't talk to the external world/environment.
@duckHuntDano5 ай бұрын
Is this the same guy who created fake women to add to his conference? or is that a different @EduardsSivos ?
@rorycawley5 ай бұрын
There are few like Ian who can make everything so clear. Got to see him in NDC Porto 2023. Always excellent.