I’ve got a lot to thank Microsoft for in my career. While never the darling of the digital world, certainly not in the consumer space, their business model of getting others to learn, use and then resell their technology has created a super-profitable ecosystem. It’s also thrown up some amazing tools in the process, and while we’re making good use of their products today during the lockdown, I wanted to walk through – and even celebrate, perhaps – some of them here with a software development tilt.
At university back in the mid-nineties, we hardly used any products out of Redmond. The faculty seemed to prefer a development world less commercial, including highly abstracted programming languages such as Ada or Miranda (comically described as “functionally lazy” on Wikipedia). They had hard-to-use text editors, often in the green screen Unix displays, with very limited output functionality. We learnt nothing about user interfaces as a result; these were languages for enthusiasts.
In my final year, we did a bit with Microsoft Access which was helpful. My housemate at the time handed me a CD with Microsoft Visual Basic 5.0 on it, that I was able to install on a cheap PC to have a look at. All I wanted to do at university was code, and so in between boring lectures of network theory and system design (some of that using a university suite of Apple Macs, oddly), I started playing with VB 5.0.
Microsoft aren’t always the first to the party in many technologies, and not in Integrated Development Environments either. But despite much criticism over the years of Visual Basic, including purists’ claims that it wasn’t a true programming language (it was created in C++, apparently), those critics completely missed the point. As well as professionals and hobbyists, you suddenly had lawyers, estate agents and recruitment consultants writing code, including Microsoft Office plug-ins and macros using the VBA environments. Dragging and dropping features on to forms and having the code written for you won’t satisfy the hardcare coding fraternity, but it did open up the coding market to many more people.
For me, it was an absolute revelation. Visual Basic did two core things well: you could develop applications super-quickly and, with the clue in its title, it had a strong focus on user interface. The part of the development that most developers either neglected or were no good at – or both – was now a core part of the application. I recall writing an application in AmigaBASIC once, having literally to code shadows on buttons in its interface, and now all this was done for you. Version 6.0 came along as I joined the world of work – little doubt that the time invested in VB outside my studies helped win my first job – and proved to be a valuable asset to moving into Microsoft’s successor, .NET.
Another significant tool, but perhaps less well known from the Microsoft stable is its server-based, Enterpise-scalable database engine, SQL Server. Early versions weren’t particularly notable until version 7.0, before they applied the year to the name (i.e. SQL Server 2000, 2005, 2008 and so on). In 1999, I was working on a data warehousing project (remember those?) in which the only way we could process a client’s sales data was in Microsoft Access. We’d take a cut at the end of each day, import it to Access and run a set of queries to process and store the information. Eventually, with so much processing to do, the job would take all night to run. And that’s assuming it didn’t crash in doing so.
While struggling with this one morning, my boss arrived at the office and handed me a shiny, shrink-wrapped box with “Microsoft SQL Server 7.0” on it, in that nice, thick Helvetica type font they used to use with their software. After a crash course on Structured Query Language from my boss, off we went, and that overnight job was reduced to less than an hour from memory – and even less once we’d worked out how to build the batch processing into a DTS package. In my early days as a professional software developer, it was as thrilling as it got.
But it was the scale of SQL Server that was most impressive. You could just as easily test and debug a couple of queries or create a database with 47 million rows of data in it (I know this, because I’ve done it). Being server-based meant that no-one’s machine was tied up processing queries, plus its efficient query engine and transaction locking controls meant that availability was perfect; your whole team could be hammering a server with queries, and you’d always get a response within a second. Whatever the folks were doing up in Washington state, it was damn fine work.
And then of course, there’s Teams. I’ve heard people saying they’re “living in Teams” with lockdown. Indeed, I’m writing this blog on the back of 4.5 hours of Teams calls in a single day this week. Reworking its conferencing interface from Microsoft-owned Skype was a huge step forward; long before Coronavirus, we were revelling in its improved chat and video facilities. No lag or dropped audio to speak of. But its success is built on that of Office 365; the strategy of moving all applications to the cloud to lower corporate opex and improve access to your tools, whether you’re at home, in the office, travelling and regardless of what devices you are using.
Office 365 is, to date at least, arguably Microsoft’s nirvana. Luxury, niche features like co-authoring documents are now available to the masses. Yammer brings along a new kind of corporate memory and helps us find other, like-minded individuals. Delve allows us to learn more about our colleagues. Forms is making SurveyMonkey obsolete, as is Planner for dispensing with Trello. And my experience of PowerApps is that it is enticing a new breed of software developer just as Visual Basic did all those years ago. In the last two years, I was part of the business change team on an Enterprise scale rollout of 365 and when you’re trying to “sell in” change, it really helps when the product is that good.
Cheers Microsoft. Here’s to many more.