Re: [extremeprogramming] The principle behind How Test-Driven Development Works
"Slava Imeshev via Groups.Io" <[email protected]> Sun, 1 Dec 2019 07:25:31 +0700
| Newsgroups | gmane.comp.programming.extreme-programming |
|---|---|
| Message-ID | <[email protected]> |
Managers are responsible for team’s output, so they may naturally be interested in raising team’s ability to get stuff done. Not all managers are like that or it may be a team that doesn’t have a leader yet. In that case anyone who knows the subject and is willing to spend 30 min per week with the engineer and have a discussion or provide input will work. This can be a team mate, a study group or even a spouse. I came up with this approach after continuously finding myself launching use of best practices like XP at teams while not having time to do full blown teaching or running a couching model. It’s important that it doesn’t matter what part of subject sticks. It’s not a multiple choice question exercise. The note taking and reporting ensures that something sticks always. Regards, Slava Imeshev > On Nov 30, 2019, at 3:25 PM, Dave Nicolette <[email protected]> wrote: > > All good, but...why present to the manager? > >> On 11/30/19, Slava Imeshev via Groups.Io <[email protected]> wrote: >> Hi Guilherme, >> >> Guided self study is study of the subject by an engineer where they read >> some comfortable number of pages per week, take notes and present to their >> manager. >> >> The goal is to cover gaps in their abilities as software engineers. There’s >> days my favorite subjects are unit testing, OOP/OOD and refactoring for >> engineers. >> >> It works because it switches engineers from sleeping through the book to >> looking for information actively. >> >> As for testing untestable, I just start a Zoom or a Skype meeting with a >> teammate, refactor the class so that the dependencies are expressed as >> interfaces (extract method, extract class, extract interface) and then write >> a unit test to cover new logic and changed methods using mocks. The teammate >> grabs the keyboard any time they want. >> >> Regards, >> >> Slava Imeshev >> >> >>> On Nov 29, 2019, at 7:20 PM, Guilherme Froes <[email protected]> >>> wrote: >>> >>> >>> Hi Slava! >>> >>> These days I just automatically launch a guided self study of refactoring >>> for any member of the team who doesn’t have it. A fun and highly >>> educational pair programming exercise is ‘making untestable testable’ when >>> I take a class that a teammate declared untestable, refactor it and cover >>> with unit tests under an hour. >>> >>> This guided self study and pair programming exercise sound really >>> interesting. Do you have something about this that you could share or is >>> it something you create ad-hoc? >>> >>> Thanks! >>> >>> -Guilherme Froes >>> >>>> Em sex., 29 de nov. de 2019 às 01:13, Slava Imeshev via Groups.Io >>>> <[email protected]> escreveu: >>>> I totally agree. TDD is hard if not impossible without designing to best >>>> practices. >>>> >>>> One design principle that seem to work consistently is Inversion of >>>> Control (IoC) aka Dependency Injection aka Programming to interfaces >>>> because one of its natural side effects is enabling use of mocks in unit >>>> tests. >>>> >>>> The second important component is knowledge and use of refactoring when >>>> dealing with a legacy code base because it enables making code testable. >>>> These days I just automatically launch a guided self study of refactoring >>>> for any member of the team who doesn’t have it. A fun and highly >>>> educational pair programming exercise is ‘making untestable testable’ >>>> when I take a class that a teammate declared untestable, refactor it and >>>> cover with unit tests under an hour. God bless Martin Fowler. >>>> >>>> Regards, >>>> >>>> Slava Imeshev >>>> >>>> >>>>>> On Nov 29, 2019, at 2:05 AM, Charlie Poole <[email protected]> >>>>>> wrote: >>>>>> >>>>> Most folks I know who are experts at TDD consider that design is part >>>>> of it. Some have even said "It might be called Test Driven Design." >>>>> However, traditionally, it isn't called that. My personal view is that >>>>> "Development" includes Design, so calling it TestDrivenDevelopment is >>>>> most appropriate. Those who prefer "Design" appear to think that >>>>> Development simply means programming, which is not what the word means >>>>> for me. A further problem with "Test Driven Design" is that many folks >>>>> still think of design as something that happens before development, >>>>> rather than as part of it. >>>>> >>>>> I've seen that some people use ATDD for testing at the story level, >>>>> others call it TDD. I prefer separate names but they both have design >>>>> elements as part of the "development." >>>> >>> >>> >> >> >> >> > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#160369): https://groups.io/g/extremeprogramming/message/160369 Mute This Topic: https://groups.io/mt/39414677/2417047 Group Owner: [email protected] Unsubscribe: https://groups.io/g/extremeprogramming/leave/4902963/619838065/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-