Re: [testdrivendevelopment] "I think the community needs more explicit direction...."

"Roy Osherove" <[email protected]> Mon, 25 Nov 2019 11:20:16 +0200
Newsgroups gmane.comp.programming.test-driven-development
Message-ID <CAAMhxnwcqiUb1Ejgxi3HXJM-zoC274DNbiudgyrQ5Y9Ajr1btA@mail.gmail.com>
--0000000000003e4b0d059828464c
Content-Type: text/plain; charset="UTF-8"

In my view TDD requires three distinct skills to be "fully effective":
1. Writing the test first (as opposed to after)
2. Writing good tests (as opposed to crappy tests: You can write crappy
tests first..)
3. Understanding design (this is where the initial test guides our design
for the entry point in the unit of work, and the refactoring is us guiding
the code into a more maintainable and readable internal design)

Teaching all three at the same time is hard. I've seen people try to just
jump into TDD in places and failing because climbing this wall is too high
in one go.
I've created courses separately for the design part and named them
"refactoring skills for TDD" because even in a 5 days class, teaching the
first two skills is difficult enough.

I'm not including here the skill of refactoring LEGACY code into a testable
state. I do teach that stuff, but there seems to be a distinction, at least
to me between continuous refactoring during new code vs legacy (not tests)
refactoring which is a much more dangerous state and might even require
integration tests to begin. Perhaps we are really talking about 4 skills
and not three.


On Mon, Nov 25, 2019 at 10:56 AM Brian Marick <[email protected]> wrote:

>
> > On Nov 23, 2019, at 12:32 PM, J. B. Rainsberger <[email protected]>
> wrote:
> > I have noticed something when programmers try to practise TDD: they
> don't seem to learn how to refactor. I don't mean to state this so harshly,
> but it seems that they struggle a lot more with refactoring than I did when
> I started.
>
> This seems really important. Do other people see the same thing?
> 
>
>

-- 
Thanks,

Roy Osherove

http://osherove.com
http://elasticleadership.com

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#35758): https://groups.io/g/testdrivendevelopment/message/35758
Mute This Topic: https://groups.io/mt/61850834/3268755
Group Owner: [email protected]
Unsubscribe: https://groups.io/g/testdrivendevelopment/leave/6156322/744556386/xyzzy  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


--0000000000003e4b0d059828464c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">In my view TDD requires three distinct skills to be &quot;=
fully effective&quot;:<div>1. Writing the test first (as opposed to after)<=
/div><div>2. Writing good tests (as opposed to crappy tests: You can write =
crappy tests first..)</div><div>3. Understanding design (this is where the =
initial test guides our design for the entry point in the unit of work, and=
 the refactoring is us guiding the code into a more maintainable and readab=
le internal design)</div><div><br></div><div>Teaching all three at the same=
 time is hard. I&#39;ve seen people try to just jump into TDD in places and=
 failing because climbing this wall is too high in one go.</div><div>I&#39;=
ve created courses separately for the design part and named them &quot;refa=
ctoring skills for TDD&quot; because even in a 5 days class, teaching the f=
irst two skills is difficult enough.</div><div><br></div><div>I&#39;m not i=
ncluding here the skill of refactoring=C2=A0LEGACY code into a testable sta=
te. I do teach that stuff, but there seems to be a distinction, at least to=
 me between continuous refactoring during new code vs legacy (not tests) re=
factoring which is a much more dangerous state and might even require integ=
ration tests to begin. Perhaps we are really talking about 4 skills and not=
 three.</div><div><br></div></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Mon, Nov 25, 2019 at 10:56 AM Brian Maric=
k &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
&gt; On Nov 23, 2019, at 12:32 PM, J. B. Rainsberger &lt;<a href=3D"mailto=
:[email protected]" target=3D"_blank">[email protected]</a>&gt; wrote=
:<br>
&gt; I have noticed something when programmers try to practise TDD: they d=
on&#39;t seem to learn how to refactor. I don&#39;t mean to state this so h=
arshly, but it seems that they struggle a lot more with refactoring than I =
did when I started. <br>
<br>
This seems really important. Do other people see the same thing?<br>
<br>
<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr=
" class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><di=
v dir=3D"ltr"><div><div dir=3D"ltr">Thanks,<br><br>Roy Osherove<br><br><div=
><div><a href=3D"http://osherove.com" target=3D"_blank">http://osherove.com=
</a></div><div><a href=3D"http://elasticleadership.com" target=3D"_blank">h=
ttp://elasticleadership.com</a><br><br><br></div></div></div></div></div></=
div></div></div></div></div>

<div width=3D"1" style=3D"color:white;clear:both">_._,_._,_</div>
<hr>
Groups.io Links:<p>

You receive all messages sent to this group.


<p>

<a target=3D"_blank" href=3D"https://groups.io/g/testdrivendevelopment/mes=
sage/35758">View/Reply Online (#35758)</a> |


  <a target=3D"_blank" href=3D"mailto:[email protected]?subj=
ect=3DRe:%20Re%3A%20%5Btestdrivendevelopment%5D%20%22I%20think%20the%20comm=
unity%20needs%20more%20explicit%20direction....%22">Reply To Group</a>
  
    | <a target=3D"_blank" href=3D"mailto:[email protected]?subject=3DPriva=
te:%20Re:%20Re%3A%20%5Btestdrivendevelopment%5D%20%22I%20think%20the%20comm=
unity%20needs%20more%20explicit%20direction....%22">Reply To Sender</a>
  


|


  
    <a target=3D"_blank" href=3D"https://groups.io/mt/61850834/3268755">Mu=
te This Topic</a>
  

| <a href=3D"https://groups.io/g/testdrivendevelopment/post">New Topic</a>=
<br>



<br>

<a href=3D"https://groups.io/g/testdrivendevelopment/editsub/3268755">Your=
 Subscription</a> |
<a href=3D"mailto:[email protected]">Contact Group Own=
er</a> |

<a href=3D"https://groups.io/g/testdrivendevelopment/leave/6156322/7445563=
86/xyzzy">Unsubscribe</a>

 [[email protected]]<br>
<div width=3D"1" style=3D"color:white;clear:both">_._,_._,_</div>


--0000000000003e4b0d059828464c--