Monthly Archive for August, 2009

Fixing software into existence

Software always needs fixing. Always. As soon as the first line of code gets written, you’re already in maintenance mode. You may even call it development, but you’re really doing maintenance. You are always trying to fix something. When you add the second line, you need to make sure the first one still works as intended and the software still solves the problem it was built to solve.

If we take a closer look, we’ll see that even the first line gets written to fix something: the fact that you don’t have anything to show to the customer or to experiment with yet. You write the first line to fix that problem. Being the good dedicated programmer that you are, you know that people don’t really have the slightest idea of what they need until they see something that they certainly don’t need. That is just the first thing that needs fixing and it’s all downhill from there. If you keep fixing stuff that is “broken” in your software, you will always have something to show or deliver when needed. Namely, that previous version without the fix that is admittedly broken for some definition of broken, but is also done for some other definition of done.

So the way to build something is to start with the most simple user need and move forward from there. The user cannot sign up for an account? Fix that! There is no a way to enter data? Fix that! Your website doesn’t talk to that related one that most of your users use? Fix that!

Repeat until you have a fairly usable solution and you’ll have successfully fixed a piece of software into existence. The goal here is not to cowboy code your way out of everything, but to have something working that can be shown to anyone interested at any given time. When you have something to fix, you have something to show, you have something to help people figure out what they don’t want.

From entrepreneur (back to?) employee

They say that you should be an entrepreneur even when you’re an employee, meaning that having an entrepreneurial state of mind is good for you (and your employer) even when you don’t somehow own the company.

And they are right.

Nonetheless, not all companies recognize that entrepreneurial employees are good for them. Some are afraid of them. Some just think that all they need are plain old nine-to-five card-punching employees and that those entrepreneurs would simply cause more headaches than needed.

It just takes a whole different kind of person to be a vanilla corporate employee than it takes to make a business-owning entrepreneur. Corporate recruiters know and recognize that. It is hard for a corporate employee to make it into full-time business owner, but in some companies it is even harder for an outside entrepreneur to get hired. It isn’t impossible, but it is much harder depending on the company (and position) you consider. Sometimes it just feels like it’s a one-way trip.

I remember once hearing someone saying (or writing, or I could be just making that up) that Bill Gates was able to build a multi-billion company around him, but wouldn’t be able to climb the corporate ladder in a big company like Microsoft. There’s just too much politics that problem-solving business types aren’t interested in. Sometimes I think people like him are able to build such companies exactly because they couldn’t climb the corporate ladder.