With the flurry of new technology available for development today as Developer we often come accross this kind of talk lately:
Developer 1: I heard…
Developer 2: But HackerNews said….
Developer 3: Well I’ve been doing this for X years and…..
Developer 4: But [insert favorite lean company here] uses…..
Lot’s of talk about technologies, articles read, opinions muttered. To me its a lot of noise. To make a good decision when it comes to technology you need to do the footwork and actually play around with the technologies you talk about. You can chair surf all day, and spout your opinions, but until you get down in the dirt, the nitty gritty you’re never going to know how things actually perform.
What I want to hear is this:
Awakened Developer: I tested out [insert awesome new technology here] and based on my findings from [insert lists of tests and scenarios] I find that this [insert awesome new technology here] is a [good/bad] fit for our needs.
Do you see the differences? The first example includes a lot of “but”, “if”, “well”, “said”. The second is a formed thought based on actual work.
Avoid Excuses:
- I don’t want to install XYZ on my machine, It doesnt match the live environment..:
With Rackspace cloud servers or Amazon S3 you can spin up a dedicated machine for a few cents a day. - I don’t have enough time:
It may take you a few days to investigate the new technology to flesh it out and decide if it meets your needs, but the cost of not doing it is far worse. Making the square peg fit the round hole is never going to work, and you’ll waste countless hours triaging the dyeing patient till your end product is crap, over budget and doesn’t meet the needs of the project.
In Summary
Test driven should be the way we do technology. You should be able to validate the decisions you make to others, and feel confident in those decisions. This isn’t a practice of accusation, its a practice of verifiable results. We test our code, so why not test our environments and assumptions? I often say the difference between a Software Engineer and a Software Developers is that the Engineer can tell you WHY it went wrong and how to fix it in the future. The other side of that is making a better informed decision in the first place. No matter what your title is always strive to be the engineer.