tag:blogger.com,1999:blog-48378076268671390.post3927779075795532314..comments2020-01-07T00:20:05.814-05:00Comments on Mr. Steve's Exploratorium: Gigascale Engineering talk by Bruno BowdenMrStevesSciencehttp://www.blogger.com/profile/13424865535828939064noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-48378076268671390.post-27481512598957948682015-01-03T00:01:04.141-05:002015-01-03T00:01:04.141-05:00I will be the first to admit I misunderstand some ...I will be the first to admit I misunderstand some of "the purposes and application of TDD."<br /><br />That said I think we should distinguish between writing tests first and self testing code. I whole heartedly agree with having self testing code and having good tests. I do take objection to the TDD dogma I sometimes hear where people I otherwise respect say "if you don't write tests first you are not a real programmer".<br /><br />Finally on your last point the problem is not just having "inexperienced developers" but also "experienced ones" who may not have learned much from all that experience ;) <br /><br />So good people are my first choice and having good methodologies/team habits augments, which include self testing code (whether or not those tests were written first or not) also helps.<br /><br />Cheers,<br />StephenMrStevesSciencehttps://www.blogger.com/profile/13424865535828939064noreply@blogger.comtag:blogger.com,1999:blog-48378076268671390.post-5954746586061104392014-08-15T02:41:27.571-04:002014-08-15T02:41:27.571-04:00"...people trump process and TDD may add most..."...people trump process and TDD may add most value when used with less "experienced" developers to help them stay out of trouble."<br /><br />I think you're fundamentally misunderstanding many of the purposes and applications of TDD, and leveraging a truism ('people trump process') to allay this. <br /><br />Of course, in general, people trump process, but TDD isn't necessarily applied as a salve to nurse against particularly bad people (though it can reveal them ;). It's really there to ensure that good peoples' expectations are met across iterations of development.<br /><br />In this regard, an "experienced" developer would, in fact, go about *making sure* that such tests are in place (even before coding!), especially (and this comes within the concept of the Gigascale talk) since you may not be sure who the next developer to change your code may be in your rapidly growing enterprise.<br /><br />"People trump process" works between maybe 2 or 3 people who know each other well and that they are all amazing developers (and even then it is suspect). But if what you're developing is going to be worked on by more and more people over time, how can you be certain every one will be a great developer?<br /><br />So, essentially, I argue that TDD's value is less about nursing inexperienced developers than it is about augmenting the development processes of experienced ones.Unknownhttps://www.blogger.com/profile/18021100600156007767noreply@blogger.com