Seriously thinking to split this blog

I like blogging about what I'm doing, but in some aspect, there are different areas that I would like to blog about:

Software Development

  • Some really interesting problems and how we solve them
  • Some really annoying bugs and how we got around them
  • Some totally unexplained and undocumented feature and how we figured out how it all worked

Software Project Management

  • This is not my forte, but as you get experienced in this industry it's probably inevitable that you end up doing project management work
  • Project management deals a lot with the risks, processes and communication with clients.

Gaming

  • What I thought about WOW
  • What I'm thinking about WAR
  • XBox, XBox Live
  • PC gaming, in general

Rants

  • Stuff that happens, usually something about my laptop - honestly if my laptop was working fine you guys would never even know I was using a Dell Studio 17 (BTW, after the technician fixed it, it's working really well now)

Code Archaeology

Define: Archaeology

A discipline involving the study of the human past through its material remains.

This is probably not an uncommon scenario:

  • You have an outdated project (or project plan)
  • You have some source code (may be in different branches in your source control)
  • You have some old emails about what various people needed
  • For some reason (low priority, budget, time), things were never done
  • You have a list of players who have left the project / company / industry / country

Your task, is to resurrect the project and make it work (again):

I was looking for a word to describe this special branch of Computer Science discipline.  And I think I've found it. 

Archaeology.

In my words, a study of the remains of ideas that were left in the system, and trying to reconstruct the past to work out a picture for the present and the future.

iPhone special: No contacts in the contact list when I couldn't talk to my Microsoft Exchange server

I interrupt my usual rant about .NET (and Dell laptops) to bring you a rant about my iPhone.

Story begins like this...

So we had a bit of a DNS hiccup with our Microsoft Exchange server.

When I pop over to use my iPhone, it says "Cannot Get Mail. The connection to the server <mail server> failed"

Fair enough.  Not the iPhone's fault.

Then I lose all my contacts.  In my contacts list, there was "No contacts".  There were 200 contacts before.

Panic

What, really?  Yes.

I must crazy.  Someone who designed this must be crazy.  It couldn't be the iPhone.  It must have been me.  I thought I must be mad.  It must have been a bad push / sync, or something.

Resolution

Anyway, I frantically tried to look for a solution, but it was only until when I finally got it to connect to Exchange server again after the DNS issues were sorted out, and hey, all my contacts re-appeared again.

I contemplated on restoring the phone, but my contacts were synchronized with Exchange, iTunes isn't tracking it:

"Your contacts are being synced with your iPhone over the air from Microsoft Exchange."

So I couldn't sync mail for an hour.  I also have zero contacts in my iPhone for an hour.  From the point where the iPhone decided that it couldn't sync with Exchange, apparently it also decided that it should now hide (or remove - I can't tell) all my contacts.

I don't know whether to laugh or to cry.

jliu

An injustice

I went out and met a bunch of people over the farewell of a good friend and past colleague over a really fun project I was on.

Over drinks I heard a really disheartening story of what's been happening since I left.

 

In the beginning, when I was still there...

We had a new CEO for this public listed company.  He's really big on agile development.  Agile was billed as the next biggest thing throughout the organization.  From the top down, processes were reviewed to be more agile.  Both development and business.

Agile was preached to the shareholders.  It was going to save costs and make the company so much money in the long run.

To this end, the new CEO hired his old buddies (let's just starting naming names: Thoughtworks) to help steer the processes in the company to be more agile.

 

Then gradually after I left...

Now, this existing team still had plenty of very clever guys, and while the process that was followed wasn't by any means an agile process to start with, a lot of the processes changed over time to accommodate agile methodologies - we had frequent releases, we already had unit testing anyway, we had tasks on cards that we stick on a board, we had a continuous build server, and we even had a build server with an USB build light that goes red or green (now name how many agile teams that actually had something like this).

Apparently, the way the team used SVN wasn't agile enough.  Even though they were branching and merging with some really clever scripts, and there was major conflict with Thoughtwork's people over this.

 

The bad...

So, with 90% code complete, with 1 month remaining on the project, the project is rock solid and ready to go.  The word came down from above:

This .NET project isn't agile.  It can not be considered an agile success.  We're canning the project.

Thoughtworks now owns the project, they will re-implement it in Java.  They will deliver it next April (6 months).

A few weeks later, Thoughtworks asked for all the .NET code to be handed over so they can, I guess, translate them to Java.

 

The sadness.

I've never heard such an evil story related to "agile".  It is pure politics.  I bled inside when I heard what happened to these guys.

Secretly I wondered that since the entire organization is turning into a Java shop, perhaps all .NET projects were in trouble to start with, and they were looking for a smoking gun to kill the project.  Thoughtworks was never hired to assist with the project processes.  They were hired to fire the .NET guys.

 

This story has no good ending:

Of this original dream team:

All the contractors either left for other opportunities, staying around for a bit longer, or had stopped their contracts, everyone is still keeping in touch, I'm sure when a big project happens the those that remained will leave and join the others.

All the permanent employees were put onto support roles, because .NET is now a legacy system.  Quite a surprising number of them are on career leave.  Many of them may probably not return from overseas.  When you've worked with a dream team and worked on some really challenging cutting edge .NET stuff, you just can't go back and fix support issues anymore.

 

So, there's my little rant.  To the guys who are probably very bitter over the whole thing, my heart bled for you guys.  You guys rocked, and deserved much better than this.