Sunday, October 11, 2009

(Yet) Another one that got away.

Today I may have met my dream girl and in typical James fashion, completely screwed up the opportunity.

A girl with a passion for all things random, yet with a shy demeanour and a quirky, happy persona. She was cute with plump cheeks, long brown hair and a radiant smile which lit up whenever I said a completely stupid joke. Ah, a girl who meets my (often inane) criteria is hard to find so yes, I was completely delighted.

Yes I was making progress. Being at a party of friends, it is easy to make the approach and strike up a conversation and not be considered a serial killer. But I panicked when I ran out of conversation, confidence or just brain power and excused myself (on multiple occasions). There was ample opportunity, there was clearly a modicum of interest. Incompetance allowed the best man to win. The best man being my friend who, being not particularly much brighter, but significantly more charming and confident, did all the things that are necessary to win the girl over (and oh boy did he win her). In one of my weakest moments yet, I even tried to undermine the poor fellow. Not that undermining him is considered stupid. It's quite reasonable to undermine if you're planning on winning her favour yourself. But when you're undermining simply out of "If I can't get her, no one can", is just plain petty and beneath me.

I won't put the girl on a pedestal and say she got someone better for her. At the end of the day, it is a sale. Its not the best offer that wins. As any marketer knows, its the best presented offer that wins. Having the goods doesn't help if you can't sell it yourself.

Now is not a time for self-pity. There were clear lessons to take away from that party. Whilst this particular girl is lost, I hold no illusions there will be others and it is imperative that the next one will not contain any of the mistakes of the current. There are simple, practice-able measures which I will need to review in the morning when I'm far less tired (being 4am in the morning now).

Tuesday, August 11, 2009

Falling in love with Stakeholders

This is hopefully part of a series of tongue in cheek posts where I attempt to correlate my love of software engineering with my love of..well Love. It'll be a bit Seth Godin like in that there is 10% truth and 90% preachy bulls**t.

In our current project, we have the problem of trying to get our stakeholders to come to the meetings and participate in the process of building the project they are paying us to make. They are happy to initially meet us and talk, but after they've given a rough idea of what they want, they are too busy to talk to the team.

This is sort of like when you talk to a girl and she is excited to be your friend and talk about what she likes in a boyfriend, but when you ask for more commitment, she cools off and wants to keep things at arms length. When you want to win her over, you don't spend your entire time sending her roses, begging under her window to take you in. You go off and live your life as awesomely as you can. You say now and then, "hey look how great things are going" and from time to time you can try again to convince her. After some time, she'll realize what a fool she is and she will dash into your arms. But remember to regularly talk to her, otherwise she'll fall for some other, less awesome fellow who happens to win her fancy.

Similarly, if your stakeholders aren't willing to come to the party and you've got SOME idea of what to do, why bother waiting around whinging that they won't read the product requirements document? Start building this cool product and make it something you can be proud of. Drop in with them now and then show them what you're making and at some point they'll realize either a) wow, this is really heading somewhere great and all it needs is a bit more guidance from me OR b) these numskulls are losing all MY money building the wrong thing, I've got to get involved or my bosses will kill me. And then they'll dash into your arms. But remember to demo and talk regularly to them, otherwise you might get canceled in the process for some other floozy project.

This is why I've started going to the gym. Do you have any idea how many stakeholders I'll have to carry in my arms for this project?

Saturday, June 27, 2009

Optus is dead, long live Internode!

After a painful 2nd month of being traffic Shaped and after a harder look at our budget due to the GFC, it was finally time for us to leave the nest that was Optus cable and look for something better.

I put in my order via Internode to get an ADSL connection done. No problem I think, after all, I'm near the exchange and I've got telephone lines already so this should be a piece of cake.
So began a comedy of errors to switch to ADSL.

First up, Internode informs us that for the first number we provided, they get a "Service Account Not Found". I was thinking this was due to us getting our phone line repaired recently, so I ask them to try again. No dice. They inferred due to my 2nd phone line being with Optus, that my phone line was being delivered via the Coaxial Cable network not via a twisted pair copper cable. Fair enough I thought.

So I asked Internode to put the ADSL service on my first phone line. After all that phone was with Telstra for a long time, so it MUST be on copper right? Hell this house came with copper before Optus was even around.

Turns out that when we switched that first phone line's bills to go via Optus a few months prior, they changed that phone line to run via the Coax cable network as well. Joy! And guess what? Optus has no copper line service anywhere (well at least certainly not my area).

So in order to get an ADSL connection, I have to go begging back to Telstra to take me back!
Luckily they were happy to have me back and switched me over for 'free'. Free as in 'costs', but as it turned out, not free in terms of 'effort'. As you might expect when working with Australia's crappiest ex-monopolist, everything was slow. I put in the order and they said, we'll be done in 3 weeks. So I ring up in 2 weeks to see progress and I find the entire order got canceled because they typed into the wrong customer account number for my current setup with Optus and conveniently forgot to inform me. They said I needed to put in another order. After some harsh words, I said I want it done in the SAME time-frame. Amazingly enough, this '3 week minimum' order got done in a week as a result. Once the Telstra tech got into the house, they were done in 10mins. Does it really take 3 weeks to schedule a technician for a 10minute operation?

As soon as Telstra activated my phone line, I rang up Internode and resubmitted my order and they did that quickly. Was I done? No. A week later, Internode asked me to ring up Telstra and collect the details for my own wholesale account number for that phone line. I don't know why I had to ask instead of Internode asking Telstra directly, but I'm guessing ISP's aren't fond of talking to each other. So after I get this number, I give it to Internode. They say thank you and say they will give it to Optus (because Optus is the wholesaler for ADSL2). So we've come 360 back to optus. Oh sweet irony.

Finally a week after all that, Internode has someone provision the exchange and also my modem arrives on the same day. Eager with anticipation, I wire everything up. I notice doing the 'speed tests' that my speeds weren't that different to Optus. In addition, the modem reports my connection as 384 up, 8,064 up. Huh? Where is the 24MB/s connection I thought I was getting. Unfortunately it appears the Optus ADSL box at my exchange isn't DSLAM equipped so I'm only getting ADSL2, not ADSL2+.

So finally after 2 months of futzing around, I finally get myself onto Internode. Ironically, this wasn't much of a change. Optus's grandfathered plans gave me 12GBpeak/24GBoffpeak @ 10Mb/s line speed. Internode gives me 25GB @ 8Mb/s line speed. However this is why I changed.

- Internode packages the phone line into the plan so I'm paying $89 a month. Optus Cable plus line rental cost us $120 a month. This was the number 1 reason for the switch.
- Whilst it looks like I have 36GB, in reality its all too easy to get screwed by the 12GB cap and end up at 64kb/s line speed for a month. 25GB flat is a lot easier to manage.

Internode has a number of unmetered services (I <3 free Steam), plus it doesn't count upload, but in reality it's the above two things that encouraged the change. Also I disliked Optus' treatment of long term, heavily committed (We had a number of services with optus) customers. A business should look after those loyal customers and providing an expensive and outdated product with no intention of providing discounts is NOT one of those.

Wednesday, April 29, 2009

Running and cutting with scissors.

Welcome back to our normal blogging schedule. I don't honestly know where the last few months have gone, but the fact I haven't had time for reflection can either mean I've had way too much going on personally OR that I've been living in a cocoon like state waiting for a reason to live. The answer is actually a little bit of both, but you'll see a follow up post about that. For now I'm back and ready to blog!

Now a life well lived is a life full of firsts. Whilst there have been a number of titillating firsts which I've been meaning to blog about, I'll pick one in particular for today.

So I went to get my hair cut today. Yes this sounds very dull doesn't it? But today instead of going to my regular barber, I went to a hair salon! Okay this still sounds boring, but I did have a number of requests to explain why I would be mad enough to pay so much for a haircut that (to guys) looks roughly the same as before.

I went to the Luc Espace hair salon in Chatswood Chase. My friend Dan has a brother (Nathan) who works there (which has no real benefit outside of the fact it adds that extra personal touch to the entire story).

So unlike an normal hair dresser, the minute I walked into this place, I was treated very well. I was guided into my chair and greeted by Nathan as he was finishing up his previous client. In order to make the time go past faster, they politely offered herbal tea and men's magazines to read over. Being poorly prepared as usual, I hastily scoured the magazines looking for a style that would look good on me. Unfortunately it appeared 50% of the haircuts were for pretty/nancy boys and the other 50% were for distinguished gentlemen. There didn't seem to be something that screamed, "I'm a sexy software engineer, look, my great hair proves it!". I briefly looked at Patrick Dempsey's hair, but frankly, I think it only works on McDreamy and just looks ridiculous on anyone else.

Not long after I gave up looking in frustration, Nathan dropped by to talk about what I wanted to do with my hair. I described my previous hair cuts and how I didn't want anything like those, then gave a basic guideline to avoid cutting the hair in a style that would leave me showing a huge forehead by the end and then gave him free rein to do whatever you like after that! He showed me some designs to which I agreed (more out of ignorance than any real preference) and then we got ball rolling.

Nathan delegated the 'preparation of the client' to an apprentice called Susan. The first part involved Susan putting scented oil on her hands and wafting it up and down in front of my face before giving a gentle neck rub. This actually did relax me somewhat, perhaps not as effectively as chloroform, but close. After that I was led to the comfy reclining leather chairs and tilted back into the basin in order to get my hair washed. Normally I'm quiet around my hairdresser, but I've been working on my talking to (women) strangers skills so I actually managed to have a nice conversation with her. Working in IT gives you so few opportunities to practice so I welcomed this chance with open arms.

After this came the real work of actually getting a hair CUT. This entire process is always a blur to me, mostly because I have no glasses on and all I see is shapes moving around. If someone was going to stab me with scissors there would be no chance of me seeing that in time. The actual trimming and styling process took a significant amount of time, but I didn't really notice since I was having a lively chat with Nathan. I've met Nathan before and plus I've never really had any problems maintaining a good conversation with other guys.

After the hair cut, it was off to the hair wash basins again for another hair wash. In order to clean the hair on the face I received a mild facial with oils and a massage followed by a gentle towelling off. This is probably the finest treatment my face has ever received! This was followed up by the styling which in my case was as simple as some 'grooming cream' in my hair to style it forwards. Can't say I was blown away, but it didn't look too bad either. In the process of playing with it, he did spike up the hair, which I think might be an interesting look. I should try it in my own time!

In total the process took an hour. At $75, it was worth it for the experience, but certainly not a great idea for regular hair cuts for someone on a budget.

Thursday, February 05, 2009

All that I learnt about Project management that I learned from Real-Time Strategy Games

This actually an article that I wrote close to a year ago. I made it in draft in Blogger and then never got around to publishing it. There is a lot here which I think is simplistic, but it surprises me how much of it still holds true. So enjoy!
----
So after a few weeks of crazy technical work as well as project management I've got a few titbits of information on how to run a project. And amusingly enough, a lot of what I learnt had a lot of overlap with gaming.

1. Business Case / Reconnaissance & Forward planning.
In all strategy games, sending in a forward scout to figure out what is going on in the enemy camp usually will give you a significant advantage. Why are you building Anti-Infantry units when he is going straight for vehicles? Shouldn't you figure out what he is trying to kill you with first so you can build the opposite? Sure you'll take a hit to your production since you're not using a unit for mining, but it'll be worth it when your build the right units for the job. In the same vein, shouldn't you understand what your customer wants exactly rather than rushing to build something that won't solve the right problem and will simply get your project axed?

2. Team composition / Combined arms
Who goes into battle with purely one type of unit? Idiots and spammers that's who. And in any realistic game you find this will get you killed. Similarly going into a project with gung-ho hackers will probably result in a cancelled/delayed project. A team need different types and I don't just mean roles. I mean you need the visionaries, the pragmatists, the pedantic types and of course the motherly types to look after this awkward lot.

3. Stub development/ Hit and Run
Just because the bulk of your army isn't ready yet, or your economy isn't in full gear isn't really an excuse to not do lots of harassment of the enemy. So just because you don't have all the information you need, doesn't mean you can't develop by skunk-working, or writing stubs for the bits you don't understand and then doing the rest later.

4. Self-Improvement / Building a Economy
I'd like to think I encourage people to keep improving their skills even if we're running close on the deadline. In a match, often it is tempting overstretch your economy and strike the opposition. It is a balancing act. Not focusing on skills/economy will result in you losing steam before long and being ineffective, whilst overdoing the skills/turtling in your base means you're not getting out there, solving the bigger problem at hand.

5. Force multipliers.
In most games there is a unit or building which doesn't do anything by itself, but confers benefits to those units around it. These are called force multipliers since their mere existence means your entire army is now more effective. This could be a 'supply truck' that improves the damage/hit points of every unit near it. Similarly in projects, you will find some people are force multipliers which aren't very effective by themselves, but multiply the powers of others. Managers of various forms typically fall into this role, but you'll find the overly helpful tester or help desk engineer can also maximise the strengths of your development team. Some tasks are force multipliers in that if you do those tasks early, you could allow a number of tasks to start in parallel, speeding up the entire process.

6. There is a place for heroes, but communication works better.
Say what you will, heroic efforts by a single developer in software development do exist and I'm willing to say all risky projects have needed it to succeed. It is just like the guy who somehow manages to destroy the enemies economy behind the lines, ignoring the fact his allies need him at the forefront. Communication is better, and I don't mean communicating the fact you're not coming back to help. Communication is core to winning in a game and even more so in project management. You need people to know what you're doing and make sure everyone is in alignment to win the task at hand. And if this means your team provides a distraction whilst you go and kill their worker drones, so be it. As long as you agreed to that as a team.

7. Your plan will typically be screwed very quickly.
What will be instantly familiar to both project managers and gamers is that the best laid plans of mice and men go astray. Going in with a set plan is a good idea since you have a reasonable starting point. And things don't always wrong. But nine times out of ten they will. A module will be harder to implement than estimated, an ally will have raptors 'killing their manz' before they know it.

Exceptions
Unlike games where is it often black and white, you have to be careful about defining your enemy. Other teams are not your enemy and treating them as such will get you in trouble quick smart.
Also most modern RTS games make you focus on looking after each unit individually and giving them directions. Unfortunately this doesn't work when you're dealing with intelligent people. Developers don't like being micro-ed generally and trying to do so simply makes both you and him/her less effective.


Saturday, January 03, 2009

Road tripping to 2009

Welcome to 2009! It has been a preposterously long time since my last post and I do apologize. I'm hoping in 2009 to improve on that and get back to a regular posting cycle.

I just came back from a seven day road trip today so I'm fairly tired and suffering from typical post-vacation depression, but I'm finding doing normal activities like blogging and reading help get me back in the mood for going back to work.

I went with pretty much the same crowd that I went to Thailand with, so it all felt comfortable and familiar. We had a good mix of boys and girls to keep the group dynamic from getting too girly or too blokey. The group operated like a well oiled machine where we all knew what had to be done and would be comfortable doing it. I think I appreciated this holiday more than previous ones because I felt needed. I could drive long distances, I could help cook, put up tents and just be useful whereas on previous holidays, I was more just a participant.

The driving was an highlight for me. Driving for most people is a necessary evil, but I enjoy a uninterrupted, interesting drive through the country. We had two cars, one being a latest generation Toyota Aurion and the other being an Holden Commodore Sports Edition. I loved driving the Commodore. Being a el-cheapo 98' Camry driver myself, it is great to be being the wheel of a powerful modern driving machine. I wasn't the only one however, since all the boys wanted first dibs on the Commodore.

In terms of activities and destinations, we didn't actually do all that much on this trip. In quick chronological summary:
  • Day 1 - Brisbane
  • Day 2- Noosa - Beach activities
  • Day 3 - Gold Coast - Beach activities.
  • Day 4 - Gold Coast - White water world theme park.
  • Day 5 - Gold Coast - Shopping and lazing about
  • Day 6 - Byron Bay & Coffs Harbour - Lazing around in an resort.
  • Day 7 - Port Macquarie & Barrington Tops - Camping
  • Day 8 - Back to Sydney. - Lots of driving back.
In all but Barrington Tops, we'd stay in serviced apartments so we did live in relative comfort. We evenly split cooking at home and going out. On the nights we cooked, we'd typically end up playing some sort of games such as the collection of Q's drinking games, Uno or Pot (a variant of Charades). I noticed our group is quite competitive where we try to make things a challenge to keep things interesting. Even on the drive home, we'd try and guess approximately when we'd arrive. It tends to feed my slightly competitive edge even though I did suck at a lot of those games, particularly the coordination based drinking games (as if it wasn't hard enough without the alcohol!).

It wasn't quite in the same league as our trip to Thailand, which felt a little bit more 'complete' and fulfilling, but it was still an enjoyable holiday away from the daily grind. After writing this post I feel a little more comfortable, but I still fear the first day back into work.