Hi! I'll try to keep a record of some articles I read and share them here. Remember that the sidebar is updated with the most interesting posts I read on of the blogs I follow.
I was watching in the Discovery Channel a show about the Ferrari 599 and how they deliver the highest quality in that awesome machine. They seem so proud of their product! Every interviewed person was sure that his participation in the production process was important for the end product's quality.
I just wanna blog about two more things I realized:
- Each step in the Ferrari production process assessed it's quality. They knew which acceptance tests would allow the part in production (motor, leather parts, etc...) to go on in the process and be a part of a $240.000 car. Everything was done so they'd meet the expected quality... "Buyers are paying for perfection" they say. So, they minimized surprises, since they knew the expectations from the beginning.
- Any defect in the manufacturing process meant that piece would be rejected. If the chasis didn't meet the expectations, it was returned to the melting machine and they started clean with a new chasis. So, each process was sure that it was receiving quality parts.
The result?
Maybe we can learn something for our software development process!
1. Everything in the 599 manufacturing was done with the final product in mind. There was no waste. The process was well designed and executed with excellence. Do we do something during the process that doesn't add value to the final product? I'm not talking about not making any documentation. I'm sure everything in the 599 is well documented. I'm talking about being sure that every artifact, model and code adds value to "our Ferrari".
2. Validation: How do we define quality in our product? Is the user involved in that definition? Which are the acceptance tests that certify that your code does what the user expected? This practice is the one that is catching my attention lately. If we use some testing framework in collaboration with our customer to define the user's expectations, we'll be closer to define what quiality is for her. And, we are done when we find out that all of our acceptance tests are green.
Well, these are my thoughts; I think many people is doing great things with TDD and other agile practices... why don't we try them out and get the best of them?
I was commenting with a partner today about how you can keep track of new technologies and practices. Software development is so pragmatic that an idea can be cataloged as "crazy" one day and the "silver bullet" the next... And the question is ¿what do you do as a professional software developer to be updated and share your new ideas with the community?
That's one reason why blogs are so great. They are free, easy to share, to update and you can keep up with their new contents with great readers (like Google Reader). Wow, when you are keeping track of 18 blogs and 9 podcasts there is something new every day, how cool is that?
If you want to start chewing a new idea right now, I recommend you the article Test-first development with FitNesse. I think maybe this could be the next big thing in automated testing.
So, there you have some new ideas, IMO with great potential to improve our software. Why don't you take some minutes to read that links and keep tracks of some related blogs? Check my blogs and podcasts on the sidebar. Stay fit!
Last week, I read some articles about automated acceptance testing. Since I read about JUnit for unit testing in Java (2001?), automated testing has been one of my interest areas, although I didn't use it the Test-Driven way until this year. At work, we develop on .NET and use an open-source strategy with NUnit, RhinoMocks and NCover. I'll post more on TDD and how we use it at work later. But for now, Id just say that unit testing really rocks... so, I'm curious about acceptance testing automation and how can it be integrated in a continuos build strategy. I read here that:
"Fit.c2.com may be the next big thing It could be even bigger than JUnit"
Could it be so cool? So Im starting to read about Fit and Fitnesses as automated acceptance testing frameworks and trying to imagine how could we maybe use Fitnesse for .NET on future projects... Check out my related bookmarks on Delicious: http://del.icio.us/ocenteno/AcceptanceTesting