Tag Archives: opinions

November 7, 2014

Your Job is Not to Write Code

I know. You think you were hired to write code. In fact, your entire interview process centered around how well you could write code. And I’m sure you do it really well.

But it’s not your job.

Your job is to improve our product for our users. If you want to get technical about it, your job is to improve our product for our users in a way that improves the key metrics of the company. But honestly, you don’t always have a lot of control over that second bit. You do, however, have an enormous amount of control over the first bit!

First off, let me note that I wholeheartedly disagree with 95% of this article. An engineer’s/programmer’s job is absolutely to write code. That is what they excel at, and that is why they were hired in the first place. There is a reason why a programmer’s technical skills are assessed when he or she applies for a job. That reason should be self-evident. It’s, you know, their job.

Note that I’m not saying you should disregard your users. Knowing who you are developing software for is absolutely a good thing. Every programmer should think of the customer and/or user. But then again, so should every single person in an software-intensive company. Instead of saying an engineer’s job is to improve a product for users, one should say that an engineer’s job is to write code for the purpose of improving the user experience. There’s a clear distinction to be made here. No code is ever written without a reason.

For one thing, you need to make sure that the code you write (writing code is still one of the main things you will do when doing your job, by the way) runs the way it should, even on users’ machines.

Did you know that our users probably don’t have brand new MacBook Airs with giant Thunderbolt monitors set at the highest resolution possible and running the latest version of Chrome? I checked.

This comes off and incredibly condescending and I suspect, for most engineers, it would be perceived as insulting their intelligence. Trust me, we are painfully aware of legacy systems and device fragmentation. We also know that software should run as we expect it to. That goes without saying.

In fact, you’re going to need to make sure that the code you wrote runs in production, in general. I don’t really care if your code runs locally. If your code just runs locally, then my only option is to sell your computer so that our users can use our software, and that really doesn’t scale.

This, again, is insulting peoples’ intelligence. Are we expected to make sure that software we write runs properly in a production environment? Well I never.

Of course, in order to check your changes in production, you’re going to need to make sure that your code actually gets merged and pushed into production.

Damn, I knew I was doing something wrong. Code intended for production has to be pushed to production? By us? No wonder no one is using the software I develop.

I mean, you can’t really check your changes in production if you just let them sit unpushed for hours or days. Push your code. Get it into production. Then run it and check it.

I suspect the majority of programmers would welcome full scale adoption of continuous deployment. Unfortunately, it’s seldom our choice to make. It often comes down to the ignorance of higher-ups, or customer wishes. Many customers don’t want constant updates. For a post that’s all about thinking of the users, this remark is, well, remarkable.

Another thing to remember is that sometimes users do surprising things, which means that it’s not enough just to test that your code works under perfect conditions.

Again, we do know this. Don’t insult us. Here’s a fact: no matter how much you test, things break. Software is made by, and consumed by, human beings. Human beings are prone to making mistakes.

There’s one more important part to your job. You need to make sure that we can measure whether we’re all doing our jobs well. That means adding metrics and analytics so that we can test the effects of our changes.

Strictly speaking, implementing analytics solutions is our job if we are tasked to implement them. Not otherwise. As for analysing the data, that is not our job, nor management’s. It should be done by a data analyst, a person who is expert in statistical methods and mathematical models. In addition, data should be thoroughly validated by someone who actually knows what they are doing.

I know what you’re thinking. This will all take so long! I’ll be so much less effective!

I don’t know who the author has been talking to, but I assure you, no engineer or programmer I know thinks like this.

We need to spend less time demanding that you write features and more time asking you to improve our product for our users.

As far as I know, users like new features. Just saying.

I don’t know. I don’t mean to be rude, but this entire pieces reads like it was written by someone completely oblivious to what software engineering actually entails. It reeks of the type of ignorance one can find in people that are actually far removed from the realities of software development yet seem to think they are expert at it.

July 27, 2012

Edge on The Walking Dead

But to suggest that all of The Walking Dead’s power comes from inserting player choice and agency into familiar, desperate scenes is to do the game a disservice. It also features some of the smartest writing – and most engaging interactive dialogue – of the year so far.

I wholly agree.

June 15, 2012

Why I hate Instagram

Quite a sensationalist title, sure, but the article does highlight some of my issues with applying filters to an image.

Suddenly it’s all fashionable and presumingly ‘artsy’. Apart from the above examples I often see good photos being ruined by this ridiculous filter. There’s nothing artsy about it. Applying Instagram’s filters is just ‘clever-clever’, a bad attempt to fake authenticity. Where as the flaws Instagram tries to recreate so desperately where never intentionally. They where due to limitations of the film and processing techniques used, they’re accidents, not part of the photo. They stand for that era in time. No filter, no matter how brilliantly implemented, can ever recreate that.

After you’ve read the full piece, I strongly suggest sticking around on jackmancer as some of the other articles are excellent.

February 11, 2011

Finland's reaction to the Nokia/Windows alliance announcement

Today’s announcement that Nokia will use the Windows Phone platform as its primary operating system solution going forward has been received with mixed reactions by consumers and industry experts alike. In Finland, however, the reactions are almost exclusively negative in tone, highlighting the obvious disadvantages with such an alliance:

  • Windows Phone is, for Nokia, a completely new and unfamiliar operating system
  • No more return on significant software investments, namely Symbian, Qt and MeeGo
  • Software and hardware solutions will no longer both be developed “in house”
  • The restructuring needed may put employees at risk of losing their jobs

The reactions are understandable: Nokia is seen as a domestic product, as are its software platforms Symbian and MeeGo. Switching to Windows Phone is perceived as an intrusion by foreigners, and it seems that most Finns are ignoring the advantages of an alliance with Microsoft because of this perception. It’s a shame, because there are many reasons why the announcement today may lead to a strong future for Nokia.

Firstly, Nokia can quickly come to market with new hardware models because — as an operating system — Windows Phone is a mature implementation that has already been used in commercial products. Nokia can focus on engineering great hardware and integrating its software with the new OS, and spend less time focusing on maintaining and improving its own OS initiatives.

Secondly, the potential size of Nokia’s developer community will most likely enjoy significant growth. Though switching to Windows Phone will inevitably alienate a large portion of the current community, the sheer amount of .NET/C#/Visual Basic developers is a fact that can’t be discounted. For most developers, using the Windows Phone SDK and its choice of programming languages is arguably far more palatable than C++ and Qt . The percentage of PCs running Windows has led to a vast reserve of developers expert in the very technologies and architecture model that Windows Phone favours.

The alliance entails drastic changes for Nokia. It’s a very bold move, a fact that I don’t think anyone disputes. But I also see it as both an encouraging and necessary one: the current software solutions and services developed at Nokia are the primary reason why the company has experienced stagnancy whilst its two main competitors continue marching forward.

Nokia gains software solutions and support from Microsoft; Microsoft gains consumer reach from Nokia. I see this as the encouraging start of a brighter future for the mobile phone giant.

February 13, 2010
October 10, 2009

Gamasutra has a good piece by Leigh Alexander on accessibility in video games and the diversification of the audience that consumes them.

If a player’s not having fun, that might mean there’s something wrong with the game. But it also might mean the player’s simply playing the wrong game. Let’s use design innovation to make them the right games, instead of trying to fix what ain’t broke.