Thursday, January 07, 2010

Two Interesting Posts/Quotes

First off, I think I figured out my new years resolution: if I find an interesting article/quote I may want to blog about, I should keep track of it so I can link to it.

Now, to discuss the two things that I can't link to right now, I recently came across two things that got me thinking. The first was how TDD is pointless. I had agreed with one point and that is that you can set your API in stone too early in development, which did make sense to me at the time. The second is a quote from someone who worked at Sun that alluded to the fact that formal practices and techniques, such as UML, may not necessarily improve the development process as in the experience of the person making the quote, what he has seen developed by people developing in their free time, with a potential lack of formalized processes/best practices, being of higher quality that those that worked in a corporate environment with formal processes.

These got me thinking a bit. First off, it hit me a couple days after the TDD article that I incorrectly agreed with the API point that was made. You see, I had worked on some code where I did write tests, however as I wrote the tests and used the functions I had written, I discovered I didn't like my original interface and changed it. So, perhaps by writing out tests beforehand, one can interact with the API and get a better feel on how well done it is?

I also write code in my free time in a more relaxed mode. I still do things in a certain way, but I don't force myself to work within a standardized process. I think this allows me to conceptualize the problem better and come up with better solutions. Also, and I think this is a key point, I think that because in a more relaxed environment people tend to code without a formal design more often, they can see how the code will really work and perhaps execute the code more thus seeing how it really behaves vs. how you think it will behave based on the design. I'm not saying this is a good practice, but perhaps spending less time on documenting a design and more time coding produces better results? Of course, I would be writing/testing/executing the code in small chunks as I can only imagine the nightmare if I wrote several hundred lines of code and then tried to run it.

Of course, I do enjoy writing small amounts of code and executing it frequently. It lets me make sure that every step behaves exactly how I want it to.

Food for thought.


Post a Comment

Links to this post:

Create a Link

<< Home