Software development
Articles about software development
Coming of age
The software I started development on in November 2008 has been purchased and is due for a mass roll-out over the next 3 weeks. The roll-out starts with training the 40 or so people who will be using my software day in, day out to do their work followed by a 2 week period of dual running alongside the current process the company is using. Needless to say I’m nervous, there’s a lot riding on this – my reputation, the company’s reputation and a lot of money.
In getting the software ready for the training my colleagues and I have pulled some seriously long hours. Nearly everything that could have gone wrong in the last week has – database problems, building issues, people trying to do too much. Still, somehow things are approaching readiness. In gaming terms, Open Beta approaches.
Anyone who is a software developer will understand the maternal feeling of the next week or so. Here’s some software that you’ve spent several months with teaching it to do things, and now you have to release it into the world. It will wobble and stumble (leading to no doubt long working hours over the next couple of weeks), and finally it will be out there for good. Gulp.
Some things I’ve learnt in the build up to the release:
- Never say “I’ll try” as people invariably interpret it as “I will”.
- Anything that can go wrong will.
- However long you think something will take, double it.
- Air conditioning is needed in the office.
All in all though its a thrilling experience. At 25 this is the first time my software will be used to allow others to do their job, day in and day out (previously I’ve had a small hand in achieving that, or been developing pipeline tools). I guess this is what being a professional programmer feels like.
Decisions, decisions…
I like choice. Nearly every weekday I stand in a Starbucks and order the same beverage, but every now and then I fancy something different. My choices are not the same as everyone else’s but that’s OK because we’re offered a variety of different things to select from.
Such choice in a gaming environment translates to user interface options. I’m used to having strafe on A and D, whereas many people use those keys for turning. But 98% of commercial games allow you to change the keys to your liking so I rarely have to wrestle with this area of the user interface. Options protect me from decisions that others make to directly affect my gameplay which is why I love them. At work if we find developers or testers are disagreeing about a behaviour we’ll make it an option if we can. Really good software shouldn’t be thought about by the users.
The reason this has come up is a result of the revelation of an iPad and smartphone application for Guild Wars 2, where players with accounts will be able to access a variety of services on the move. These services include a player tracking system, which will allow you to know where your friends are in game. Needless to say I’m worried about the implications of the feature. Not only is it personally invasive but collectively it allows far greater data harvesting.
Think about foursquare. No one really cares about where you go unless they’ve decided to stalk you or are waiting for you to not be home so they can rob you. But on a large scale, you can determine herd tendencies, what popular shops are, where to best place your adverts to get maximum relevant exposure etc. Transfer this to a gaming environment and you have the possibility of gold sellers using these features to know where best to advertise for maximum exposure outside expected busy areas. The cornerstone here is choice. Foursquare is an option, just like allowing Google to track my mobile position, and if the local council passes on my personal details to marketers.
I think its really important to give users the choice to opt out of supplying their position to anyone, unrelated to the use of any other features. Going offline on the friends list prevents communication so really this doesn’t offer the same choice as ticking that “be untraceable” option. Virtual privacy is an important right that needs to stop being corrupted and pushed aside – after all I can still use my mobile without Google being nosey, so why the requirement to broadcast my details everywhere?
Besides, being a disembodied voice sounds kinda cool.