Well ‘That’ Won’t Scale

If you have been around the industry for a year or more, you’ve almost undoubtedly heard someone talk about scale. Perhaps they have said, ‘that feature won’t scale’, or ‘...

Trunk and Branches

I know what you’re thinking. He’s writing a post about revision control: SVN, Git, etc. Nope. This post is all about training and education. More specifically, I’m talking about what...

Estimates Redux!

My thinking on giving software estimates has evolved a little. I still believe that exponential estimates are the right way to go. (In fact, someone pointed out there is already a name for something v...

Real World Data

When you’re developing an application, it can sometimes be difficult to get data from the real world that matches your data model. Instead, all you are given is a schema or spec for that data an...

Testing Your Own Code

I’m sure you’ve heard people say that developers are not good at testing their own code. I feel like people believe this to be an axiom; an underlying and fundamental principle of software...

Infinite Loops

Entering an infinite loop is one of the worst ways a program can fail. It may not be as insidious as a bug that subtly corrupts data, nor as attention-demanding as an exception being thrown, but like ...

Estimates

Estimating tasks is hard to get right. I’ll probably blog about this again in the future, but for now I’m going to give my current thinking. You’ll hear lots of opinions if you talk ...

Doing Things Quickly

At virtually every job I’ve ever had, managers want my tasks done quickly. Yesterday, usually. The faster the better. Sure they pay lip service to making sure that it’s done correctly, but...

On Casting

As programming students, we are taught how to cast types as rote. In none of my courses was I ever taught that casting was necessarily a bad thing. In fact, C++ even has several keywords just for cast...

Expressiveness

I was thinking the other day about magic numbers. I’m sure you’ve come across them. In fact, I’m pretty sure you’ve created them! Everyone who programs has. It might be a value...