Alex’s Notes

Alex’s Notes

Alex Reid  //  Software developer from Newcastle upon Tyne, UK. All of the dubious opinions stated here are purely my own and not those of my employer.

Apr 28 / 2:53am

Developers, eggs and baskets

I am currently handing over the system that I have worked on for the past three years. It is written in ColdFusion. 

I have noticed two things:

  • some developers are initially wary of something less familiar, while some are keen to embrace something new
  • an implicit assumption is made that you must be wedded to that platform you work in: "I am a .NET developer so you must be a ColdFusion developer."

In actual fact, I see myself as just being a developer.

Someone actually remarked that they were surprised that my new employer made use of ColdFusion. They don't, of course. Do developers get typecast? 

I develop in many different languages and frameworks. Java, mainly, but also C#, T-SQL, Python, Objective-C and Cocoa. Does this versatility make me a jack of all trades and a master of none? Some would say yes.

I just prefer to consider myself as someone who is not shackled to any particular platform. Us developers have transferrable skills which mature throughout our careers. Implementation languages and frameworks are only half of the story. I'm not saying that it is wrong to specialise and become expert in something. I am not saying it is wrong to specialise. I'm saying it's wrong to deny the existence of any other technology. 

I understand why management favour a unified and supported technology path. There's less risk. It makes sense. If you have a pool of .NET developers available, in theory they should be able to maintain each others code. 

It can, however, be a ball and chain, particularly in a mobile context. 

Successful companies and individuals will think outside their bubble and comfort zones.

It's simple economics. It makes sense to write software for the iPhone because it's huge at the moment. The tooling and documentation for the iPhone SDK are excellent.

Does this mean I'll burst into tears as Android's popularity continues to rise and the iPhone's popularity inevitably wanes and Apple go bankrupt (despite the billions) if we are to believe many of people I follow on Twitter? Will I have wasted my life in Xcode, typing square brackets? Not at all. I won't have called myself an iPhone developer. I'll still have been just a developer - developing for iPhone, Android, BlackBerry and ... whatever else.

Being a mobile developer in 2010 will be very different to being one in 2015, that's for sure.

5 comments

Apr 29, 2010
Steve Woods said...
Semi-agree, but going to work for a massive corp. where they have resources to target many platforms is different to working for a small company who have to target a specific platform because it will bring in the greatest rewards in the short term.

That point also extends to a freelancer - me personally I'd love to target Android / iPhone but a) I can't justify purchasing those phones financially and b) I'm already familiar with targeting the Windows desktop/phone environment - why wouldn't I want to polish something on my 'chosen' environment as opposed to spreading myself thin in order to get onto the 'popular' platforms?

In summary I agree that "To say "we are a Windows development house, we'll only develop for Windows phones" " is wrong.

It should be "To say "we are a Windows development house, we'll only develop for Windows phones /initially/ and then try our hand at porting to Android/iPhone etc once we have our income stream sorted" in my opinion.

Good article!

Apr 29, 2010
Alex Reid said...
Good point, Steve. I agree. Looking at it the other way on, this is I think why a lot of the apps that have started out on the iPhone have really stinky Android / BlackBerry and WinMo versions. (If the WM version exists at all.)

It's much more rewarding to polish the iPhone version and make that really something special, than spreading yourself thinly as you rightly say.

If you want to target Windows phones, great - that makes absolute sense from a development point of view.
If your app will generate revenue, than fantastic. Or will it be met with a tumbleweed?

Ironically, it's a bit like desktop software developers targeting the Mac years ago when they could have made more money developing for Windows. Why did they bother? Probably for the reasons you cite.

And also, it may be easier to make money on a platform with a less noisy App Store. How does your Twitter client differentiate itself? On Android, Twidroid was dominant for a long time - not because it was good (it wouldn't have seen light of day on the iPhone which has Tweetie....) but because it was the ONLY ONE.

I think what I was trying to say is that choice is good. What's today's dominant platform may not be tomorrow's.

Ultimately, if the mobile web (i.e. mobile apps written in HTML/JS/CSS) takes off in a big way, a large part of this argument will be redundant.

Apr 29, 2010
Alex Reid said...
", we'll only develop for Windows phones /initially/ and then try our hand at porting to Android/iPhone etc once we have our income stream sorted" in my opinion."

... but what if they've identified the income stream to be on BlackBerries and iPhones. What if customers have been polled as to the type of phones they have?
Why would it be a good decision to develop first for a platform a minority of customers use, purely because it's what they know?

(Talking hypothetically here, and definitely not speaking on behalf of my new employer!)

Apr 29, 2010
Ryan Tomlinson said...
Alex, firstly, a great post!

I agree that it's good to explore other technologies and expand your development experience, but I also think that there is obviously only so much that you can learn. Having the knowledge of other platforms/technologies/languages can be useful, but if you spend your days working with a specific technology I think that should be the basis for most of your learning time.

I would love to get a better understanding of Ruby on Rails and develop apps for the iPhone but I always feel that as a .NET developer my time is better spent improving my knowledge in this area. I've spent a lot of time becoming good at what I do but in my own view learning those things in particular are not an efficient use of my time.

Congrats on the new position btw. Hope you're enjoying it.

Ryan

Apr 29, 2010
Alex Reid said...
I agree you need to draw the line somewhere and definitely agree. I won't be looking into Windows 7 phone, unless I need to, for instance.

Leave a comment...