Skip to main content

Extreme Driving (XD)

If you've never heard of Extreme Programming (XP), you probably just won't get it. As a matter of fact, you might not get it anyway, but that's ok.

XD is a deliberate and disciplined approach to driving motor vehicles. If everybody just tries to drive whatever way, it will take longer to get anywhere, and there's more of a danger of a crash. That's why you must have and follow a driving methodology.

First of all, it's absolutely essential to have lots of "Call Up Meetings," which involve everybody calling and talk to each other on cellphones while driving. Never drive without them.

"Collective Mechanical Ownership" is another critically important concept of XD. It means that any driver must have access to change the mechanics in the vehicle at any time. So if one person wants to get in and rewire the starter, or another person decides to change the spark plugs, there doesn't have to be centralized oversight of all that.

And don't forget that you need to Unit Test every single step of the drive. The Unit Test consists of using a separate vehicle to attempt performing each action in advance, just to see if the performance of the action really results in the action being performed. For example, before turning left around a corner:

  • Stop and exit the vehicle being driven.
  • Enter and start the test vehicle.
  • Perform the action of turning left around the corner.
  • Verify that you have actually turned left around the corner.
  • Stop and exit the test vehicle.
  • Go back, re-enter, and restart the actual vehicle.
  • Actually perform the real left turn, now that the action has been tested and you're sure it will be safe and efficient.

And last of all, at the heart of XD, is the principle of "Pair Steering". Pair Steering simply means that two different people have their hands on the steering wheel, steering the motor vehicle at the same time. This way, if one person makes a steering mistake, the other person, having more specific experience in that area of steering can correct it immediately. Also the steering gets done much faster when the workload is divided up and shared- the old "divide and conquer" strategy.

Thank you.

Comments

Popular posts from this blog

Reality Checks to Demystify Buzzwords

As an IT insider, I feel I have something valuable to offer nontechnical people in terms of correcting misinformation. Here are a few simple tests for some popular buzzwords in tech. When evaluating a product or service, if you can honestly answer Yes to the reality check question, the buzzword probably truly applies. If the answer is No, it is probably fake. agile Does it make the developers happy? blockchain Does it cut out the middleman? cloud Does it automatically scale? microservice Does it only do one thing? object oriented Is it mostly made of interfaces? RESTful When requests arrive at a certain address, are they ready to use (without parsing)? unit test Does it prevent the tested code from touching anything outside itself?

The Importance of Direction

Which would you say is more important: getting somewhere faster, pushing something harder, or going the right direction? It should be obvious that no matter how much speed or power you use, that won't do any good if you're going the wrong direction. It could also be pointed out that early in a journey, even a small change in direction makes a big difference in where you end up. Therefore, we should make sure we have our direction correct, as the first priority.

How (Not) to Handle Different Exceptions

Came across this sample from a certain multi-billion-dollar company, purporting to show how to implement exception handling. I slightly changed a few cosmetic details to make it anonymous. try { // ... } catch (GeneralException e) { if (e instanceof SpecificExceptionA){ // ... } else if (e instanceof SpecificExceptionB){ // ... } } This is a true actual story--you can't make this stuff up. Yeah, I thought it was pretty hilarious; so I felt like I had to share it.