Thursday, June 28, 2007

3 things I learnt

So here's a reply to a Hanselman post:
http://www.hanselman.com/blog/ThreeThingsILearnedAboutSoftwareWHILENOTInCollege.aspx

Kind of like a food for thought of the day.

In University

  1. It's all just another layer of abstraction.
  2. You can't learn without doing, but you can't do without learning, so try both at the same time.
  3. "Why" is always the question, "How" will be left as an exercise to the reader.
After College
  1. It's all just layers of abstraction, so the most important thing is always that which you are abstracting.
  2. Clients don't know what they want, 'cause it's generally not their job to know. That's why they're hiring you, you and the software are the next layer of abstraction.
  3. Always keep a paper handy (or maybe OneNote). The task of programming is simply too vast to be completely consumed at once. You will always have more than one item at work and more than one monitor's worth of material, so live with it :)

Tuesday, June 19, 2007

Loving what you do

I just got off the slashdot blog with a pretty powerful post.

Here's a link to the original post.
http://it.slashdot.org/comments.pl?sid=238919&cid=19559553

And here's a copy of my reply:

So why the hell are you not doing what you love everyday? Why do you spend your days doing stuff that doesn't fill the soul? If you really love your horse, then why don't you become a professional horse trainer? Then you can spend time with her everyday.

Sure your current job allows you to "help her have a better life.", but that doesn't mean that you couldn't give her a better life while doing something that "fills the soul". I mean, it's great to hear nuggets of wisdom like this one: "Company X, the best place in the world to work, will can your ass the moment the numbers do not add up for keeping you.", until you realize that that's pretty much how everything works out in life. (didn't take me 28 years in the field BTW) If my SO doesn't get her cut in the relationship deal she leaves, if my boss doesn't pay me enough or treat me well, I leave, if I can't carry my own weight at the company, then I get dumped, if I can't pick up the rebounds then coach benches me. It's pretty darn simple.

So I go to a job I love doing every day. And as a direct result of the fact that I love my job I'm not worried about getting canned b/c I'll find another. Just b/c some company dumps me doesn't mean that I can't find deep spiritual enjoyment in my work. Being fired doesn't mean I'm inadequate at what I do either, it's just a wrong time/place. Heck your beloved horse is going to die someday soon, probably before you will, how's that any different than getting "downsized" from a job that you love?

You may be a horse whisperer masquerading as an IT guy and for that you have my deepest sympathies. But I'm an IT guy and that's tattoed on my breast. It sounds really corny, but that's what I do, I'm not here to "die a slow death for some company", I'm here to throw in my 2 cents the best way I can find. The company is my means to that end, they make it easier to do what I'm good at. I have loves outside of work, but I surprise the most people and do the most good in this world by solving and automating complex processes and problems. If I'm "dying" at a company, then I'm not really contributing as best as I can and it's time for me to go.

So if you're pissed off at companies and the job in general after 28 years, then you're just in the wrong field or suffering some major emotional breakdown. Cash out now, take the retirement money and go train horses. I mean, isn't that what you're saving for anyways? So that you can "retire" and spend the days with your girl? So if that's where you want to be, if that's what you're good at, if that's what you're passionate about, then you'll find a way to make the money from working with horses. You said it yourself, this money is just a "means to an end", so why not use your means and find an end you enjoy? Why not pick a life and then make it happen instead of picking a job and then hoping that you can find a life?

Wednesday, June 13, 2007

Slimming down (part 1)

So I've lived the typical North American lifestyle for just a little too long. Or rather, I was living. For those outside the phenomenon, that means that I was overweight and in debt.

The debt thing was annoying... but at least my net worth was definitely in the plus. My weight however was really over the top.

When I was 18 I weighed in at slender 140 lbs (63.5kg), 5'8" (1.73m). Now at the time I was really thin, so I've pretty much absolved myself of ever getting back to that weight. But since my slender high school days, I had ballooned up to 205 lbs (93kg) right around my 26th birthday! The electronic scale had me at about 30% body fat and, well heck here's a pic of me.



Now to be honest, balloon may be the incorrect word. My growth was more like incremental. I could still run long distances and I still had some muscle mass: solid abs, rock hard legs it was all just wrapped in a healthy layer of fat. The fat part just kind of snuck up on me over time.

Of course, this is a success story, I dropped a bunch of the weight right down 175 (80 kg). Obviously, I'm on the successful end of the journey, but I'm definitely not done. My body fat rates at 24% and I'd really like to be at 12% long term. (A little math reveals that 30% of 205 = 61.5 lbs of fat and 24% of 175 = 42 lbs of fat, which means that I went from 143 to 133 of "lean" mass, it also means that my target of 15% puts me at about 160lbs).



As it turns out, 160 was my original goal, so I'm not quite done yet. But I just recently moved cities and this whole weight loss thing involves some planning. It's not really tough to maintain, but losing takes some planning.

Here's me now, post laser-eye surgery and accompanied by my wonderful fiance.




So yeah, down to the whole point. I hit a couple of blogs today that talked about people losing weight and I came to two sober conclusions.
  1. I've been talking for months about how loss of weight and recovering from debt are very similar (hence the generic slimming down title). Overweight and in debt seem to carry many of the same mental characteristics and the anecdotal evidence seems to support this.
  2. Lots of people know very little about weight loss. This is why crap like South Beach and Zone and Atkins all become so popular. They basically prey on people not knowing enough to see that they could do this stuff without silly diets.

Point #1 needs exploration another time, but Point #2 needs some attention.

So here it is, the point of my article: How I lost my weight for free with minimal emotional stress and no following of some silly "diet".

So first, here's the most important link: The Hacker's Diet. This was my secret. It was assembled by John Walker after he'd made his millions and lost 90 lbs in one year. He's publishing this book for free and he's letting people download it for free! I want to say that again, the guy who wrote this book has NO vested interest in making money off it. He's a millionaire programmer, he's offering the book for free, so that should all tell you something, he's not lying to you!

Of course, he's a programmer and the book is written for people with an engineering mindset, so it can be tough to read. So thusly, I'm embarking on a big journey, I'm going to write this for everyone else :)

So check in soon... this should be good.

Monday, June 11, 2007

Some new photos

It's been a very busy couple of weekends, so I have some quick links to some photos galleries.

The first gallery is the wedding of my oldest friend Scott, which took place in Saskatoon:
2007-06-02 Scott's Wedding


The second gallery is from a family gathering for Andrea's wedding, that's my father's wife's daughter :)

2007-06-09 Andreas Birthday

Friday, June 8, 2007

A little rant on the software industry?

Here's a reply to:
http://channel9.msdn.com/ShowPost.aspx?PostID=314711#314711

Look Pace, I'm worried that you're getting some mixed advice here. So I want to give you both sides here.

1. This behaviour is not abnormal in the development field. Moving jobs is not a guarantee that your problems will go away. However, I'm not saying that you should stay, read on
2. The MCTS designation is an excellent goal to pursue. It demonstrates dedication to your craft to both your current and future employers.

You are on the right path with #2, however, you are not on the right path with #1. But the problems are deep and complex and probably worth a couple of chapters in a good book, so bear with me on the quickie version (using your quotes). The fundamental thing to understand is that people know very little about programming and what's more, they have no mass or understanding of the complexities.

One problem I have making things here is that a lot of the people dont actually know what they want. That makes it hard to get some sort of spec to then turn in and program.

This is common, users have a difficult time pinpointing their needs. Not only do not they not know how to program, they've never analyzed their own processes that thoroughly. Your job as a Systems Analyst is to bridge this gap, your job is to convert process into programs.

This involves documentation and meetings and drawings and designs and flow-charts and e-mails back and forth, etc. If you are the only Programmer in your company, then you are also responsible for being the Systems Analyst, just like you're responsible for being the Tester and the DBA and the Architect. If you can't take this, then you will not be successful at your company, leave now, go to a software consulting firm and tell them that you only want to code. This will limit your salary and may limit your career advancement but you'll be comfortable. Truth is, we have lots of programmers out there, but very few people who can bridge the gap between programmers and users.

Now, if you want to make things better, then the onus is entirely on you! When you go in on Monday, make the decision that you will not work on anything that doesn't have a written spec. Cover your own a$$! You don't want to get chewed out at meetings, so write stuff down. When you have client meetings, take notes, take meetings minutes, send them out to attendees, get people to comment

If you get any flack whatsoever on this, tell your boss that you cannot work from a verbal spec. Tell them that if it isn't worth writing down, it isn't worth programming. If they persist, ask them "who's the software expert"? If they can't trust you to do the job they're paying for...?

The point is, it's your job to get the spec before you do any work. It's your job to get stuff in writing. You may be annoyed that people are yelling at you but you have do your job and stand your ground.

after all my work, that these "codes" are for internal purposes? Holy wtf!?!?! when were you going to tell me this? Why in the 10 meetings I have had trying to talk you out of this havent you mentioned this?

And this is what I'm talking about. Do you have minutes from the last 10 meetings? Specs? Documents of any kind that this manager has seen? Because you have to tell the manager that he's just changed the spec and you have to back that up!

How do I know in the future if something I am asked for is correct or wrong?

So I think you get the idea by now. WRITE IT DOWN! B/c that's your job and that's how you're going to cover your ass.

I want someone to give me a detailed or at least basic spec for me to work off. Instead I have to interpret what they say, which is often full of business speak and BS and make something based on that.

So that's the problem then, you're definitely at the wrong spot. You see, your bosses are angry at you b/c they think that your job is to interpret what they say and make it happen on the computer. But you don't want to interpret what they say. In fact it sounds like you want them to magically come up with a spec and all you have to do is program.

But that's the whole problem, they can't program! They don't know how to convert their BS-speak into computer code, that's why they hired you. Of course, you can only program if you know their business. So you have to bridge the gap, you have to understand their business AND you have to interpret that business into a computer system.

It's a two-way street here Pace, you feel like you're getting messed around AND they feel like they're getting messed around. They don't understand your business and you're not helping them.

Somebody has to step up and fix the problem and hopefully, by now, you understand what that is, b/c you're the only one who can fix it. You're the computer expert, you're the guy with the degree that says you know how to make computers work.