Every time I am able to set up someone to do unit testing I feel like letting out a loud, evil laugh. I feel like I'm doing something sinister. What I really like about is it that I feel like there potentially one less project where I am going to be brought into to fix... one project less without any test, any power to refactor it...
I feel like I've just gained a new apprentice... "Rise Lord Coder...."
Wednesday, 31 October 2007
Friday, 26 October 2007
Let's make a little less abstract
My sense of scale is getting all messed up. When I was little I heard the whole "a penny saved is a penny earned" and took it to heart. A dollar was a lot of money and not something that you would spend lightly. Only later did I realize that it took more effort to save that penny than it would be to just throw it away.
Lately I've been thinking of money in terms of people's time. Let's assume that it costs 500 $ per day per person. You've got 2 people working on it and 1 person supervising it (at 50%). That's a small-ish project, but that means you've got a burn rate of 1250 $ per day. That's like 25,000 $ per month. And I think that's a consertive estimate.
Now let's think of something a bit more famous: the gun registry. In total they spent 1 billion $. Now say that slowly:
One. Billion. Dollars.
That makes me angry, but that's pretty abstract. I find it hard to imagine 1 billion dollars. If that was in 20's, would the pile of cash be the size of my car? My house? My street? I've got no idea.
I can think of a lot of better ways to have spent that money. They could have done just about anything and it would have been better than going in the hands of software people... those damn, dirty sofware people. Aside: software is one of those fields in that if you are doing a really good job, most likely you are putting yourself out of a job....
What I would like is for managment to express the cost of their application not in dollars, not in person days, not in "resource units". Nothing that abstract. What I would like is for it to be expressed in vacines.
Let's bring the cost down to something that people can think about a bit more: do you really need that module, or is better to try and save 1000's peoples' lives? Or conversly, if you're a idiot and wasting money / time on something, can you go home and look youself in the mirror? Can you look your partner or kids in the eyes and tell them that you "did good today"? (I know it should be "well" not "good"). Or are you going to go home and say "I prevented 1000 people from getting a vacine today. 50 people will probably die without it."
I've heard (one of) the ideas of the iron ring is to rub against your work as you write as a physical reminder that your work can kill people: so be careful. I only wish that we had such a reminder for waste.
Lately I've been thinking of money in terms of people's time. Let's assume that it costs 500 $ per day per person. You've got 2 people working on it and 1 person supervising it (at 50%). That's a small-ish project, but that means you've got a burn rate of 1250 $ per day. That's like 25,000 $ per month. And I think that's a consertive estimate.
Now let's think of something a bit more famous: the gun registry. In total they spent 1 billion $. Now say that slowly:
One. Billion. Dollars.
That makes me angry, but that's pretty abstract. I find it hard to imagine 1 billion dollars. If that was in 20's, would the pile of cash be the size of my car? My house? My street? I've got no idea.
I can think of a lot of better ways to have spent that money. They could have done just about anything and it would have been better than going in the hands of software people... those damn, dirty sofware people. Aside: software is one of those fields in that if you are doing a really good job, most likely you are putting yourself out of a job....
What I would like is for managment to express the cost of their application not in dollars, not in person days, not in "resource units". Nothing that abstract. What I would like is for it to be expressed in vacines.
Let's bring the cost down to something that people can think about a bit more: do you really need that module, or is better to try and save 1000's peoples' lives? Or conversly, if you're a idiot and wasting money / time on something, can you go home and look youself in the mirror? Can you look your partner or kids in the eyes and tell them that you "did good today"? (I know it should be "well" not "good"). Or are you going to go home and say "I prevented 1000 people from getting a vacine today. 50 people will probably die without it."
I've heard (one of) the ideas of the iron ring is to rub against your work as you write as a physical reminder that your work can kill people: so be careful. I only wish that we had such a reminder for waste.
Labels:
rant
Wednesday, 24 October 2007
My latest silver bullet: tickets
Unit test used to be my favourite silver bullet. Then it was code coverage. Now it's tickets. It's great to be able to be able to track work, tasks, problems... "issues" in general. If you're working on something, create a ticket to track it. When you write tests, reference the ticket. When you check in your code / tests, reference the ticket. If you have a meeting for an issue found in production, why the hell isn't there a ticket to track it??? If you're doing work without a documented reason, then why are you doing it?
Part of it is CYA, part of it is doing your job well.
Part of it is CYA, part of it is doing your job well.
Tuesday, 23 October 2007
Maven: embrace or feel its wrath
One thing that keeps on coming up on the maven mailing list is the question "I don't want to change my project to fit maven, I want to configure maven to fit my project (like with Ant)". I can't blame people since I've been guilty of this as well in the past, but it comes down to the person not understanding the point. The whole point is to standardize on a common structure for building java apps, standard lifecycle, standard way. If you try to get the benefits of using a standard, without actually using a standard, it won't work out well.
Don't get me wrong: I love maven. It's great to use on new projects. It's great to use on existing projects iff you can make the leap of faith that the pain of retrofitting your app will be worth it. If you're just trying it out, you won't already have that faith. I understand that is a problem.
It reminds me of those energy graphs of exothermic reactions where there is an initial "hump" of energy to put in, but after that your net reaction is more energy is removed. That's my mental image of maven: if you can get over the initial hump, then it's so much easier to manage your dependencies. You just have to have that faith.
Don't get me wrong: I love maven. It's great to use on new projects. It's great to use on existing projects iff you can make the leap of faith that the pain of retrofitting your app will be worth it. If you're just trying it out, you won't already have that faith. I understand that is a problem.
It reminds me of those energy graphs of exothermic reactions where there is an initial "hump" of energy to put in, but after that your net reaction is more energy is removed. That's my mental image of maven: if you can get over the initial hump, then it's so much easier to manage your dependencies. You just have to have that faith.
Labels:
work
Wednesday, 17 October 2007
First JDK bug EVER!
Wow, I have never come across a bug in java before. Today I hit a nice one to do with long file names. Good thing it was fixed like a year ago today. Weird thing is that I wasn't using the version that was a "know issue". Ah well, upgrading worked. ;-)
Labels:
work
Monday, 15 October 2007
The right tool for the job
The thing about using tools is not only do you have to know what are the right tools for the job, but you have to know what are the wrong tools and what ones are the poor choices.
Email is a poor choice for issue tracking.
Source being emailed around is a wrong choice.
Being able to build / deploy only locally is the wrong choice.
Just like you'd expect a horrible painting job if you used a screw driver instead of a paint brush, you should expect similar outcomes with using the wrong tools in software development.
What do people think that software is so different from other trades or engineering disciplines?
Email is a poor choice for issue tracking.
Source being emailed around is a wrong choice.
Being able to build / deploy only locally is the wrong choice.
Just like you'd expect a horrible painting job if you used a screw driver instead of a paint brush, you should expect similar outcomes with using the wrong tools in software development.
What do people think that software is so different from other trades or engineering disciplines?
Friday, 12 October 2007
Junk mail much?
Having has the house for only like 12 days, I find the amount of junk mail staggering. It's scary really. I'm going to throw out my back every 2 weeks tossing out all that crap. So, in dire times like this I turn to our dear and glorious leader: google. It pointed me to an article from the Calgary Herald with info on how to stop the flood of mail. That's another thing on my new and growing TODO list. ;-)
Saturday, 6 October 2007
Painting... the first adventure as a new home owner
We've started to prepare the kitchen at our new house for painting. Laura and I have never *actually* painted a room at all, so this should be interesting. We've been offered a lot of help and advice from people. I'm grateful for all of that, but I sort of want to do this myself. Our home, our kitchen, the walls can suffer from our painting mistakes. I hope we won't make too many, but I can't expect that we'll do it perfectly the first time.
One of the reasons that we're painting the kitchen is because it's very white. The floor is white, the walls are white, the cupboards are white. I can't picture myself working at a workstation like that (I consider a computer desk and a kitchen my 2 workstations).
I'm pulling for us. We're all in this together.
One of the reasons that we're painting the kitchen is because it's very white. The floor is white, the walls are white, the cupboards are white. I can't picture myself working at a workstation like that (I consider a computer desk and a kitchen my 2 workstations).
I'm pulling for us. We're all in this together.
Wednesday, 3 October 2007
Going to miss it...
I'm feeling a bit melancholy now. Maybe it's the weather, I don't know. Either way I'm going to miss the apartment. I'm going to miss the view, the "every day is garbage day", the cozyness, the zero maintenance, the poo canon, ...
Having said all that, I'm sure that I'll love the house and wonder how I was able to deal with the apartment. I'd like to move in now, but good things come to those thatwait pack. ;-)
Having said all that, I'm sure that I'll love the house and wonder how I was able to deal with the apartment. I'd like to move in now, but good things come to those that
Tuesday, 2 October 2007
Oie...
We're moving, which is really cool. Now the PITA stuff: changing our address for all the places that have that info. It would be awesome if their was a giant cental user repo that all business could tie into, but I'm sure the privacy people would crap themselves. Yes, I know the ontario gov't has a place where you change change all your info with them... that makes it a little easier.
The hard part is when I tell people the new address (and no, I'm not going to mention it on this blog). For each person it seems to take at least one clarification. The systems where I can just enter and fill in my info are the best. Ah well. I'm happy to move, even if it's a bit of a weird street name. :-P
The hard part is when I tell people the new address (and no, I'm not going to mention it on this blog). For each person it seems to take at least one clarification. The systems where I can just enter and fill in my info are the best. Ah well. I'm happy to move, even if it's a bit of a weird street name. :-P
Labels:
home life
Subscribe to:
Posts (Atom)