tag:blogger.com,1999:blog-6918427997759942244.post2783061326048306069..comments2023-05-17T07:01:49.378-04:00Comments on Elegant Coding: Driven Developmentelegantcodinghttp://www.blogger.com/profile/12373582469986942814noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-6918427997759942244.post-6570570296749323682012-09-25T08:35:53.174-04:002012-09-25T08:35:53.174-04:00"I am really not that interested in software ..."I am really not that interested in software process, it’s the structure of software that gets me jazzed." same here.<br /><br />About TDD: Test Driven Development is one of these ideologies ,which sound great in theory but fall short when put in practice. What I mean is, in most of the places I worked at and the teams I worked in had limited resources, non-surprisingly :D I was always working for companies < 200 and not willing EVER to work for corporations, unless I have a mental/retardness disease. So, to the point, usually the time required to create and maintain such test-cases was prohibitive and we only ended up creating functional tests to save ourselves from the dreaded regression bugs :)<br /><br />Anyway, TDD and many other YADDs, fall into the Context-less Driven Development. If you fail to analyze your context first and jump blindly on following rigorously any methodology, chances are you gonna have a miss by a long shot. <br /><br />Also consider this: isn't TDD rudimentary in contradiction with Agile? To employ TDD successfully you need a very clear set of requirements, otherwise it is close to impossible to come up with a set of self contained units with well defined input-output behavior ! What if you requirement change and you need to adapt to customer requirements? What happens is you need to disregard not only the component/unit/lib you worked on, but also all the time associated with defining the test cases and implementing the tests along with it :( Such an unfortunate WASTE :(<br /><br />Yet, there are cases where TDD makes perfect case and, up to my understanding,had proved itself. Consider component development (like .Net web components),e.g. Telerik, ComponentOne etc.<br />If you indeed deliver a component with well defined behavior, perfect! TDD will save you day and secure your career too :P<br /><br />Keep the good job, another amazing post.. hope I wont loose my job of reading too much of your blog ;)pip010https://www.blogger.com/profile/01451646330176713157noreply@blogger.comtag:blogger.com,1999:blog-6918427997759942244.post-81790575715817185172011-07-25T12:06:51.269-04:002011-07-25T12:06:51.269-04:00I like your acronyms. ADD, CAYE ...!I like your acronyms. ADD, CAYE ...!slashDatahttps://www.blogger.com/profile/01489983596818961183noreply@blogger.comtag:blogger.com,1999:blog-6918427997759942244.post-81963304553961829372011-05-26T10:56:54.977-04:002011-05-26T10:56:54.977-04:00I enjoyed reading this blog. In particular I had r...I enjoyed reading this blog. In particular I had recently experienced some unexpected consequences of Test-Driven Development that I thought I would share here. I have been practicing TDD for quite a while now but am always reexamining whether or not it is worth the trouble. <br /><br />Recently I had the luxury of having extra time to hone my skills in Java Script. I decided to try TDD in Java Script and knew that I needed to create some infrastructure for a looming RIA application that I was assigned. So I used the Yahoo YUI test library and began writing tests around all the infrastructure I envisioned myself needing for that future project. After a few weeks I put this work on the back burner and was consumed by developing the Java API around the database for that same application. The later took a lot longer than I had anticipated and the project had a hard deadline. <br /><br />We had a government customer that had remedial infrastructure and I had a really terrible development machine at the customer site. And the RIA was supposed to work in IE 7. But I had no development tools for IE 7 and no debugger. <br /><br />So I debugged the UI stuff using Firefox. By the time I had the app working I only had 1 day to make the port to IE 7. Then I remembered my unit tests. I thought that If I could get them to work in IE I would be along way toward completing the port. <br /><br />I ran the tests and they failed in ways that were different than they had previously failed in Firefox. The process of debugging the code revealed IE bugs that I needed to work around. The deploy/test/fix cycle was much faster using this technique. If I had not had the tests, I would have had to deploy the web app and test it functionally in IE. And the deploy process on my memory-constrained machine took 15 minutes. But I could point my browser to the tests on my file system without deploying the web app at all. Without this ability I would never have succeeded in the port.Michaelhttps://www.blogger.com/profile/00519987958531197817noreply@blogger.com