Re: [extremeprogramming] What has changed for you over the past 20 years?

"James Grenning" <[email protected]> Thu, 5 Dec 2019 10:28:19 -0600
Newsgroups gmane.comp.programming.extreme-programming
Message-ID <dddd88f5-bf7e-47bc-8650-28248f1fe8b6@localhost>
--EdoMail5de93023_66ac831e_709
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline




 Sometimes the hardware spec is wrong and, as you mention,    sometimes th=
e hardware is right sometimes and wrong other times.    I think there is a =
role for software in the latter. As we will see the MAX problem fixed in so=
ftware.    =20


The opposite happens too.    Hardware is changed to address software probl=
ems.  =20








>  =20
> On Dec 5, 2019 at 10:04 AM, Steve Gordon  <[email protected]>  wrote:
>  =20
>  =20
>  =20
> Sometimes the hardware is wrong.    Then the battle ensues whether or no=
t the software should compensate   for hardware errors.    For example, the=
 737MAX.
>  =20
>  =20
>  =20
> On Thu, Dec 5, 2019 at 7:24 AM James Grenning  <[email protected]>  w=
rote:
>  =20
> >  =20
> >  =20
> >  =20
> >  =20
> >
> > This happens next to hardware:
> >
> >  =20
> >
> > 1) test drive to the spec off the target hardware. (getting it almost =
right)
> >  2) integrate with the hardware and find the places you got it wrong.
> >  3) run the off-target tests to see in your tests what you got wrong
> >  4) make the tests match the world
> >
> >    =20
> >
> > James Grenning - Author of TDD for Embedded C -  wingman-sw.com/tddec
> >   wingman-sw.com
> >   wingman-sw.com/blog
> >   twitter.com/jwgrenning
> >   facebook.com/wingman.sw
> >
> >  =20
> >
> > On 5 Dec 2019, at 8:45, Steve Gordon wrote:
> >
> >  =20
> >  =20
> >
> >  =20
> > >  =20
> > >  =20
> > >  =20
> > > There are 3 distinct cases in my mind:
> > >  =20
> > >
> > >  =20
> > > 1. Trivial bug - it is obvious what we did wrong and we just correct=
 it.    That case might involved fixing a few unit tests, but does not invo=
lve TDD.
> > >  =20
> > >
> > >  =20
> > > 2. What we did was wrong. - Rip out the wrong code and tests and sta=
rt over with the right functional test.    This involves redoing the develo=
pment using TDD, but TDD is no more or less useful that it is for normal de=
velopment.
> > >  =20
> > >
> > >  =20
> > > 3. What we did was right, but we were missing a requirement - formul=
ate a new user story and implement it.    This again involves TDD, but stil=
l in the ordinary way.
> > >  =20
> > >
> > >  =20
> > > Saying "TDD works great here" implies a non-existent difference with=
 how TDD works in normal development.
> > >  =20
> > >  =20
> > >    =20
> > >  =20
> > >  =20
> > > On Thu, Dec 5, 2019 at 6:19 AM Ron Jeffries  <[email protected]=
om>  wrote:
> > >  =20
> > > >  =20
> > > > FWIW I [almost] never debug. In most languages I don't even know h=
ow to run the debugger. Once in a while, rarely, I'll stuff in a print. Gen=
erally, I just write a test that fails.
> > > >  =20
> > > >
> > > >  =20
> > > > >  =20
> > > > > On Dec 5, 2019, at 8:11 AM, Phil Goodwin  <[email protected]=
m>  wrote:
> > > > >  =20
> > > > >  =20
> > > > >  Right. There's a step zero involving good old fashioned debuggi=
ng to find the root cause, but then it makes sense to test drive the soluti=
on for all the trains it makes sense to TDD in the first place.
> > > > >  =20
> > > >  =20
> > > >  =20
> > > >  =20
> > > >  =20
> > > >  =20
> > > >  =20
> > > >  =20
> > > >  Ron Jeffries
> > > >   ronjeffries.com
> > > >  Whenever I feel discouraged, I   remember the words of my   then-=
3 yr old after she puked   carrots on the floor: =E2=80=9CI=E2=80=99m gonna=
   need more carrots.=E2=80=9D
> > > >  =E2=80=94 @JessicaValenti    =20
> > > >          =20
> >  =20
> > >  =20
> >  =20
> >  =20
> >
> >  =20
> >  =20
> >  =20
>  =20
>  =20
>  =20
>=20
>  =20

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

View/Reply Online (#160434): https://groups.io/g/extremeprogramming/messag=
e/160434
Mute This Topic: https://groups.io/mt/39418691/2417047
Group Owner: [email protected]
Unsubscribe: https://groups.io/g/extremeprogramming/leave/4902963/61983806=
5/xyzzy  [[email protected]]
-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-


--EdoMail5de93023_66ac831e_709
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<div id=3D"edo-message"><div><br>Sometimes the hardware spec is wrong and, =
as you mention,&nbsp; sometimes the hardware is right sometimes and wrong o=
ther times.&nbsp; I think there is a role for software in the latter. As we=
 will see the MAX problem fixed in software.&nbsp;</div><div><br></div><div=
>The opposite happens too.&nbsp; Hardware is changed to address software pr=
oblems.&nbsp;<br><br><div id=3D"edo-signature"></div></div></div><div id=3D=
"edo-original"><div><blockquote type=3D"cite"><div id=3D"edo-meta">On Dec 5=
, 2019 at 10:04 AM, Steve Gordon &lt;<a href=3D"mailto:[email protected]=
">[email protected]</a>&gt; wrote: <br><br></div><div dir=3D"ltr"><div>S=
ometimes the hardware is wrong.&nbsp; Then the battle ensues whether or not=
 the software should compensate&nbsp;for hardware errors.&nbsp; For example=
, the 737MAX.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D=
"gmail_attr">On Thu, Dec 5, 2019 at 7:24 AM James Grenning &lt;<a href=3D"m=
ailto:[email protected]">[email protected]</a>&gt; wrote:<br></div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex"><u></u>




<div>
<div style=3D"font-family:sans-serif"><div style=3D"white-space:normal">
<p dir=3D"auto">This happens next to hardware:</p>

<p dir=3D"auto">1) test drive to the spec off the target hardware. (gettin=
g it almost right)<br>
2) integrate with the hardware and find the places you got it wrong.<br>
3) run the off-target tests to see in your tests what you got wrong<br>
4) make the tests match the world</p>

<hr style=3D"background:linear-gradient(to right,rgb(204,204,204),rgb(51,5=
1,51),rgb(204,204,204)) rgb(51,51,51);border:0px;height:1px" height=3D"1">

<p dir=3D"auto">James Grenning - Author of TDD for Embedded C - <a href=3D=
"http://wingman-sw.com/tddec" target=3D"_blank">wingman-sw.com/tddec</a><br=
>
<a href=3D"http://wingman-sw.com" target=3D"_blank">wingman-sw.com</a><br>
<a href=3D"http://wingman-sw.com/blog" target=3D"_blank">wingman-sw.com/bl=
og</a><br>
<a href=3D"http://twitter.com/jwgrenning" target=3D"_blank">twitter.com/jw=
grenning</a><br>
<a href=3D"http://facebook.com/wingman.sw" target=3D"_blank">facebook.com/=
wingman.sw</a></p>

<p dir=3D"auto">On 5 Dec 2019, at 8:45, Steve Gordon wrote:</p>

</div>
<div style=3D"white-space:normal"></div>
<blockquote style=3D"border-left:2px solid rgb(119,119,119);color:rgb(119,=
119,119);margin:0px 0px 5px;padding-left:5px"><div id=3D"gmail-m_-260503927=
21155908036F194398-672F-4C4E-BF0E-F12441131B0D"><div dir=3D"ltr"><div>There=
 are 3 distinct cases in my mind:</div><div><br></div><div>1. Trivial bug -=
 it is obvious what we did wrong and we just correct it.&nbsp; That case mi=
ght involved fixing a few unit tests, but does not involve TDD.</div><div><=
br></div><div>2. What we did was wrong. - Rip out the wrong code and tests =
and start over with the right functional test.&nbsp; This involves redoing =
the development using TDD, but TDD is no more or less useful that it is for=
 normal development.</div><div><br></div><div>3. What we did was right, but=
 we were missing a requirement - formulate a new user story and implement i=
t.&nbsp; This again involves TDD, but still in the ordinary way.</div><div>=
<br></div><div>Saying "TDD works great here" implies a non-existent differe=
nce with how TDD works in normal development.</div><div>&nbsp;<br></div></d=
iv><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On =
Thu, Dec 5, 2019 at 6:19 AM Ron Jeffries &lt;<a href=3D"mailto:ronjeffriesa=
[email protected]" target=3D"_blank">[email protected]</a>&gt; wrote:<br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div>FWIW I [almost=
] never debug. In most languages I don't even know how to run the debugger.=
 Once in a while, rarely, I'll stuff in a print. Generally, I just write a =
test that fails.<br><div><br><blockquote type=3D"cite"><div>On Dec 5, 2019,=
 at 8:11 AM, Phil Goodwin &lt;<a href=3D"mailto:[email protected]" tar=
get=3D"_blank">[email protected]</a>&gt; wrote:</div><br><div><span st=
yle=3D"font-family:ArialMT;font-size:18px;font-style:normal;font-variant-ca=
ps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-in=
dent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decor=
ation:none;float:none;display:inline">Right. There's a step zero involving =
good old fashioned debugging to find the root cause, but then it makes sens=
e to test drive the solution for all the trains it makes sense to TDD in th=
e first place.</span></div></blockquote></div><br><div>
<div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-align:start;text=
-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div s=
tyle=3D"color:rgb(0,0,0);font-family:Arial;font-size:16px;font-style:normal=
;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-ali=
gn:start;text-indent:0px;text-transform:none;white-space:normal;word-spacin=
g:0px"></div><br>Ron Jeffries<br><a href=3D"http://ronjeffries.com" target=
=3D"_blank">ronjeffries.com</a><br>Whenever I feel discouraged, I&nbsp;rem=
ember the words of my&nbsp;then-3 yr old after she puked&nbsp;carrots on th=
e floor: =E2=80=9CI=E2=80=99m gonna&nbsp;need more carrots.=E2=80=9D<br>=E2=
=
=80=94 @JessicaValenti</div>
</div>
<br></div>


<p></p><p></p></blockquote></div>

</div></blockquote>
<div style=3D"white-space:normal">
<blockquote style=3D"border-left:2px solid rgb(119,119,119);color:rgb(119,=
119,119);margin:0px 0px 5px;padding-left:5px">
</blockquote></div>
<div style=3D"white-space:normal">
</div>
</div>
</div>




<p></p><p></p></blockquote></div></div>



<br></blockquote></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/extremeprogramming/messag=
e/160434">View/Reply Online (#160434)</a> |


  <a target=3D"_blank" href=3D"mailto:[email protected]?subject=
=
=3DRe:%20Re%3A%20%5Bextremeprogramming%5D%20What%20has%20changed%20for%20y=
ou%20over%20the%20past%2020%20years%3F">Reply To Group</a>
  
    | <a target=3D"_blank" href=3D"mailto:[email protected]?subject=3DP=
rivate:%20Re:%20Re%3A%20%5Bextremeprogramming%5D%20What%20has%20changed%20f=
or%20you%20over%20the%20past%2020%20years%3F">Reply To Sender</a>
  


|


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

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



<br>

<a href=3D"https://groups.io/g/extremeprogramming/editsub/2417047">Your Su=
bscription</a> |
<a href=3D"mailto:[email protected]">Contact Group Owner<=
/a> |

<a href=3D"https://groups.io/g/extremeprogramming/leave/4902963/619838065/=
xyzzy">Unsubscribe</a>

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


--EdoMail5de93023_66ac831e_709--