Posts

Showing posts from July, 2013

Three Steps to Safer Development

Eric Ries has suggestions on why/how to move your engineering practice forward and gain speed and reliability while you're at it: So how can I help the engineering manager in pain? Here's my diagnosis of his problem: He has some automated tests, but his team doesn't have a continuous integration server or practice TDD. Hence, the tests tend to go stale, or are themselves intermittent. No amount of fixing is making any difference, because the fixes aren't pinned in place by tests, so they get dwarfed by the new defects being introduced with new features. It's a treadmill situation - they have to run faster and faster just to stay at the level of quality/features they're at today. The team can't get permission from the business leaders to get "extra time" for fixing. This is because the are constantly telling them that features are done as soon as they can see them in the product. Because there are no tests for new features (or operational...

Tests and Immersion in Code: The relationship

There is a relationship between how slow tests are and how much we interact with the tests while we are developing software. If the tests run instantaneously, I'll run them constantly. If the tests run in 30 seconds, I will run them 3 times in any 5 minute window of coding. If they run in 1 minute, I will run them 3-4 times per hour. If they run in 10 minutes, I will run them maybe 3 times a day. If they run in an hour, I'll run them 5 times a week at most. If they run for a day, I will almost never run them. If the build/test cycle is not incredibly fast, I will not participate in the code as fully and richly, instead falling back to rely on my IQ and memory and good intentions more. This is why tools like Infinitest for Java, sniffer for Python, autotest for ruby, and the like matter so much. It is also why there have to be build servers and test servers for any significant project. It is also why manu...

It Can Still Be Awesome...

Let's talk about flying. Airplanes are incredibly cool machines. Heavier-than-air, faster than cars, all thrust and lift and control and high tech. Most have massive jet engines on the wings and/or tail. They are hotrods THAT FLY. It's cooler than that if you let yourself think about it. You're 35,000 feet in the air, moving at 500 miles per hour, looking at the tops of the clouds. THE TOPS OF THE CLOUDS! When I was a kid, we liked to park near an airport and watch the planes take off and land. Yeah, we didn't have video games or cable back then. It was cool, and the closer you could get to the end of the airstrip, the better. At night, you could watch the lights zooming over your head and feel the thunder. It really is amazing. So let's talk about airports. The old grass strip airports used to be places of wonder and amazement, and plane fans would spend spare time showing up and looking around and maybe having a cup of joe with the operators or pilots. T...