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, sometimes the hardware is right sometimes and wrong o= ther times. I think there is a role for software in the latter. As we= will see the MAX problem fixed in software. </div><div><br></div><div= >The opposite happens too. Hardware is changed to address software pr= oblems. <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 <<a href=3D"mailto:[email protected]= ">[email protected]</a>> wrote: <br><br></div><div dir=3D"ltr"><div>S= ometimes the hardware is wrong. Then the battle ensues whether or not= the software should compensate for hardware errors. 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 <<a href=3D"m= ailto:[email protected]">[email protected]</a>> 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. 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. 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. 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> <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 <<a href=3D"mailto:ronjeffriesa= [email protected]" target=3D"_blank">[email protected]</a>> 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 <<a href=3D"mailto:[email protected]" tar= get=3D"_blank">[email protected]</a>> 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 rem= ember the words of my then-3 yr old after she puked carrots on th= e floor: =E2=80=9CI=E2=80=99m gonna 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--