It's patently obvious to anyone in the world of IT that app development can be used to create serious wealth. Microsoft's re-entry into the battle for dominance over the mobile computing space signalled by its Build conference in Anaheim, California, this week makes it far easier for talented developers to advance their careers and, perhaps, even make life-changing sums of money.

The Wheel of Change

Up in the clouds, where the Gods of Computing live, there's a wheel. This wheel turns slowly, but once every 12 years or so it completes a revolution and everything changes. The changes from mainframe to mini, from mini to PC, the PC to internet, and now the internet to mobile has each taken around 12 years. Whenever there is a major shift we see a "tsunami of money" enter the market and it washes away giants, creates new land for new opportunities and generally upsets everything in its wake.

This process of market consolidation is where value gets created and it's where smart, talented developers can seriously improve their lot – even if they don't make the sort of money needed to buy a helicopter specifically for blowing leaves off of the lawn. I think it's a bubble, but a good one. Let me explain why.

Historically, whenever we see one of these shifts a very large number of small ventures sprout up and start producing small software applications. In the UK, a good term for this is "cottage industry": just the odd person or small team, writing some small, useful and essentially cheap pieces of software. Sometimes (although very rarely) some of these small pieces become big business – Google at one point was a university project running on two borrowed servers slung under a desk. Most of the time nothing comes of these ventures.

And then there's the rest, and that's what of interest here.

On the keynote on the second day of the Build conference we were treated to a surprise visit from Steve Ballmer, Microsoft's CEO. In his keynote, he addressed the crowd for half an hour, but a particularly apposite statement was this: "We want you all. Individual developers. 14-year-olds in their home. People who are cutting code who have a full-time job but cutting code on the side. Small development companies. Websites. Application custom developers. Large Websites. Large application developers. People who work for enterprises. Come one, come all. It's the day and age of the developer. It's the day and age of the Windows developer." (You can find this quote about 1 hour, 47 minutes in to the speech.)

It's the first part of this that's interesting, with Ballmer calling out that now is a good time for developers to get back into this "cottage industry" mode of thinking. So, now that Microsoft is back in the game (and if you don't think it's back in the game, have you not noticed what's happening with Windows 8 and "Metro"? Here's a refresher), let's have a look at how we as professional developers can take advantage of this bubble.

The 90 Percenters

If, like me, you earn your living from software development, it's far more likely that the software that you build professionally is for private, internal use within business. Back in 1999 I went to see Eric S Raymond (ESR to his friends) at a Linux user group meeting in Phoenix. He was giving a talk on his "Cathedral and the Bazaar". I must admit that when I went to see him, I didn't know who he was and wasn't into open source and had never heard of his famous analogy. It struck me as odd that the place was packed – people were standing in the corridor outside on the off chance they'd hear what he had to say.

But one thing he did say which changed my attitude towards my job and career was that 90% of professional software development effort goes into building private, internal use software for business.

Although I'd dreamt of owning a high-profile dot-com business like Amazon, eBay and Yahoo (this was 1999, remember), it struck me then that statistically, it was far more likely that I'd be writing "boring" software forever that never had more than hundreds of users and wouldn't get millions of "eyeballs" per month, and so really I needed to get good at writing "boring" software.

It's likely that you, like me, are a 90-percenter who works on this sort of private, internal use software during the day. But now you can come home and work on your private, cottage industry products that – let's face it – are a bit more exciting because they are more public.

But anyway, let's you and I proceed on the assumption that we're both 90-percenters.

What to do between now and next Christmas

There's the iPhone, and there's the iPad. There's the Apple App Store that has hundreds of thousands of apps and millions of downloads a day. Everyone loves the iPhone and the iPad. So you could write software for that.

The only problem with writing software for iOS (the term for the operating system that iPhone and iPad both run on) is that the development toolset and language is … how to put this? … horrendously, absolutely awful.

Now, before I attract the ire of a hundred thousand iOS developers (probably too late – Ed.), let me explain. TIOBE is a software company that performs a regular survey of languages used by software developers worldwide. It's a good barometer of where the industry is in the terms of platforms that are being developed for. The last figures they have show the Objective-C language (essentially the only option for developing for Mac desktops and laptops) at 6.1%.

The other languages typically used for building internal-use business applications come in, on aggregate, at well over 60%. What this tells us is what you probably already know – most professional software developers have no experience at using the toolset and language used for developing iPhone and iPad applications.

The fact is that if your day job involves sitting in Visual Studio writing C# applications, or building Java applications in Eclipse (which will be most of you – albeit not necessarily in Eclipse), when you fire up Apple's Xcode and start building CocoaTouch applications in Objective-C you're going to come face-to-face with a toolset that has not had the sort of love put into it that the open source community has put into the Java toolset and associate platforms, or that Microsoft has put into VS and .NET over the past 10 years. Apple has been caught on the back foot by the popularity of its tools and is at least one, if not two, generations behind. For example, the iOS version of Objective-C does not have garbage collection.

Note: see correction on iOS garbage collection at end.

The danger you have as a savvy, professional, 90-percenter software developer looking to build a cottage industry business in the world of app development is that if you come home after a busy day and you have a wife, three kids, a box-set of Battlestar Gallactica and/or The Wire to enjoy, you're likely to run out of puff pretty quickly trying to get up to speed with iOS. Plus you'll need a Mac, as you can only develop iOS applications on a Mac. Statistically it's unlikely you have one of these either, so you'll need some sort of disposable budget.

Android?

OK, so what about Android. Now, Android is a better deal for a 90-percenter. You don't need a Mac to develop for Android. You need Eclipse, the Android SDK and the Eclipse plug-in for Android development. As a professional software developer, you probably know some Java or some C#, which for the purposes of developing on Android is close enough.

What you get with Android is something that's pretty hacky and slapped together – but in a good way. As a talented software developer you can probably tune into what those Google guys were doing when they build their SDK. Your learning curve will be less steep, and you can likely get momentum going sufficiently well, despite the fact that you're only on BSG S3EP4 and the kids are in a phase of not going to bed nicely.

But there's a problem. Well, two. For one thing, the market is far smaller for Android. This means that you're unlikely to make life-changing sums of money on Android. (Would Rovio be the massive success it is now if it was Android only?) But you can win in terms of career opportunities. Once you're in that space it becomes far easier to find new opportunities at work, meet new people, and learn stuff outside of the day-to-day, especially in the hosting and infrastructure space.

The other problem with Android is that Android is miles and miles away from building a compelling competitor to the iPad. In my opinion, it almost certainly never will in the consumer space. The iPad is, frankly, too cheap. And I don't mean "inexpensive". The iPad is actually cheap. It's £399 for the base model. That's a cheap computer. Any Android tablet would have to be £199 for a comparable spec to draw iPad customers out of their market. For me this makes it virtually impossible for Android to build a compelling tablet offering. There just isn't the brand or the ecosystem for someone not to buy an iPad if they have £400 burning a hole in their pocket. (Although watch out for when the dust settles on Amazon's new Android-based Kindle. That could be interesting.)

So if you develop for Android, you're only really going to be developing phone apps, not tablet apps. This may or may not suit your proposed business model.

At this point, it looks like you're spending from now until next Christmas building Android applications and maybe doing a bit of iOS. But what, you say, about Windows Phone?

'Yes, what about Windows Phone?'

Windows Phone got more interesting this week. In recent months, both Gartner and IDC have come out and said that Windows Phone will, by 2013, have a 20% market share of smartphones. At the moment, it has about … 0%. When I last read these forecasts I didn't really believe them. I suspect that I hadn't been thinking about Windows 8, but the Gartner and IDC folks had – and that's what they're paid to do.

Windows Phone was a seriously radical move from Microsoft. Microsoft's DNA is imbued with an idea of preserving backwards compatibility at all cost. (Compare this with Apple, which increases its focus and reduces costs by not having this need to maintain compatibility.) Take a Windows 3.11 application and it'll probably work on Windows 7. With Windows Phone, Microsoft junked the previous platform of Windows Mobile: it wasn't able to compete with iOS and Android, and a new approach was needed.

OK, so the new approach was interesting. An entirely new phone platform with an entirely new user interface paradigm. All built in Silverlight using .NET and Visual Studio 2010. The old approach of mashing Windows into a small box and a small screen was gone. Windows Phone is another way of building an iPhone, that device Microsoft wanted to compete with. Critics tend to like it as a smartphone unit, and if you consider it in isolation it makes a lot of sense. But the ultimate consumer tends not to like it because, well, the market has got iPhone and Android in it. In the channel, if you're not going to buy an iPhone the retailers will probably nudge you towards Android. Windows Phone is not on their radar.

Microsoft has also very noisily done a deal with Nokia where Nokia will start building Windows Phones. Nokia hasn't been looking particularly on top of its game over the past couple of years, mainly because it's in a market with iPhone and Android in it. Microsoft and Nokia then have a joint enemy.

Back to you as a jobbing software developer looking to take advantage of the mobile bubble – what does Windows Phone mean to you? I suspect it doesn't mean anything to you without the influence of Windows 8, so let's look at that.

Ballmer came out last year and said that Apple had "sold more iPads than we would have liked". This statement isn't just about losing licensing revenue; it's more about losing control of the game. The iPad means the world now knows that there are whole swathes of people that actually don't need PCs. The big win with iPad is the hardware. Because it runs on ARM processors, it uses far less power which means better battery life, less heat and less noise. It can also be smaller, because it requires less battery power and less space for cooling. Windows 7 and previous incarnations only run on Intel's x86 (ignoring other enterprise-class processors Windows server-class OSes have run), so if you want a Windows 7 PC it will be noisy and have comparatively lousy battery life. Windows 8, however will run on ARM chips and Intel x86 chips, which means that you can, in theory, run Windows on iPad-class hardware.

Windows and iPad come out to play

With that happening, Windows can now play in the iPad market. Remember, there is no "tablet market" – there is an "iPad market". Windows 8 allows Microsoft's partners to build iPad clones based on Windows. To some, that may sound similar to the IBM PC and what Microsoft enabled in that market by producing MS-DOS. You may also reflect on the fact that that strategy worked all right for Microsoft, broadly speaking.

More to the point, from a career development perspective the stack you'll be using to build native Windows 8 apps is bang up-to-date. It's all HTML5/Javascript driven, with modern language constructs and extensible libraries written in managed code. Knowing how to build Windows 8 apps will likely make you attractive to employers, not necessarily because of Windows 8; rather, the win will be in the fact that you'll be up there at the forefront and employers tend to like that.

So as a professional software developer, if you're already working on the Microsoft stack, developing for Windows 8 is a good way of "freshening up" and making sure that you know the new stuff even if your employer is, like most employers, a generation or two behind. If you're not working on the Microsoft stack, then C# and WinRT (the framework used to build Windows 8 applications) are probably not a million miles away from what you already work with. Plus it's all HTML5/Javascript stuff and hence nicely platform-agnostic and transferable.

Another compelling argument for looking at developing for Windows 8 is that it's tied in heavily with Windows Azure, Microsoft's "application execution environment in the cloud". This is less attractive to developers not working on the Microsoft stack today as it's too proprietary-feeling to those who are used to working in a more – coming back to ESR – "bazaar" environment. Windows Azure really is the "cathedral running in the cloud", to continue ESR's analogy.

In the world of Windows 8, Windows Phone is something of a misfit. You can see that Windows Phone is a stepping stone in the strategy of Microsoft competing with iOS, but to me it looks 80% luck and 20% judgement. A giveaway is that you can't take a Windows Phone 7 and just run it as-is on Windows 8, despite the obvious similarity between the two platforms. Windows Phone 7's thinking inspired Windows 8 – there was no deliberate strategy there to build an iOS-like platform.

My prediction is that Windows Phone 8 will be Windows 8 running on ARM. That will look just like iOS – small device running Application A also runs on large device running the identical Application A.

Timesacle: 14 months

OK, so you've got 14 months. If you've got time and patience, and a Mac, iOS development presents the largest market, and probably the best opportunity to make life-changing sums of money. From a career perspective, I'm not so sure. Apple's development platform is old-fashioned and anachronistic. You can't take skills learned in iOS and transfer them into your job, unless your job is iOS development. For those who are thinking that you can build iOS apps for your boss that expose customer data out – that's good thinking, and another opportunity.

However, I would challenge that by saying that without very good reason, business apps should be Web-based and the device treated like any other browser. My view is that any business software development should look to have a life of between five and 10 years, unless specifically directed away from that by business demands. You're more likely to smooth out bumps in the mobile market by avoiding native development of apps and implementing them, as I say, as Web applications.

If you've got less time and patience, Android will get your hand into mobile development and the sort of problems that exist in that world. You can probably make a decent amount of pin money. You'll learn things that are transferable into your day job. You could think of Android development as a self-executed training course that'll probably be free.

And then Windows 8. If you learn how to build apps for Windows 8 you'll emerge with skills that are bang up-to-date and are readily transferable into your day job. But again, you might make some small amount of money shifting applications. But things get more interesting after next Christmas…

What to do after next Christmas

Reality check: I don't think the consumer space is going to love Windows 8 as an alternative to the iPad. I think businesses will love it, and I can see businesses providing Windows 8 tablets to employees to do their job, if only to defray the cost of having to manage iPads that people bring into the office. I think what this gives you is a market for Windows 8 tablets that is large – probably a split like 80% iPad to 20% Windows 8 in the consumer space and a reversed split in the business space. Thus I'm suggesting a tablet market that's 50:50 iPad to Windows 8.

Another interesting thing about Windows 8 being a major player in the tablet market is that it brings Windows Phone 8 out in a good light. It could be, for example, that you'll walk into Carphone Warehouse and be presented with a Nokia Windows 8 tablet and a Nokia Windows 8 phone (notice the small "p" in that usage). That is a proposition that customers are likely to buy into.

So after Christmas 2012, what do you do in your spare time for your cottage industry app development business? Perhaps it makes sense to develop apps that run on Windows 8 tablets, Windows 8 phone and take those skills into the office and look like a superstar?

Conclusion

We are in a bubble so far as software development on mobile platforms go. But bubbles are only a problem if you forget you're in a bubble. For us now, as a community of professional software developers, here's an opportunity we might not see again until 2023: an opportunity where at the very least we can have some fun and build our careers. Get coding.

PS: You may have noticed I haven't included Rim (and the BlackBerry and PlayBook) in any of this. Interesting that, huh?

Correction: A number of iOS developers have contacted me in relation to my statement that the iOS version of Objective-C does not have garbage collection. This statement does not take into account that Apple has introduced Automatic Reference Counting ("ARC") with the wave of tools associated with iOS5, the upcoming version of iOS. Whilst iOS will not for the time being support the sort of mark-and-sweep garbage collection subsystems typically found on other platforms, ARC does at least smooth over the problems of having to manage your app's own memory (which is my main bugbear with iOS development in this regard) and does so in a pragmatic way given the requirement to support legacy devices without being able to change their execution runtime.

• Matthew Baxter-Reynolds is an independent software development consultant, trainer and author based in the UK. His favourite way to communicate with like-minded technical people is Twitter: @mbrit.