Building Microsoft code inside the tornado

Vice president S 'Soma' Somasegar shares his views on how interoperability and open source will help Microsoft weather the ever-changing climate of software code development

Based in Seattle, S 'Soma' Somasegar is senior vice president in Microsoft's developer division, where he leads the teams responsible for providing tools and platform technologies targeted at developers, designers and teams involved in software development.

In his various roles within the company, Soma has witnessed fundamental changes, in both Microsoft and the wider software industry, that have affected not just the look and feel of applications but also the methodologies that have driven their development.

Surveying today's application-development landscape, with Microsoft keen to convince that it has a credible open-source strategy, Soma's role leads him to oversee many of the company's best known proprietary offerings.

Faced with the challenge of straddling both sides of this fence, while, at the same time, reaching for new strains of web-driven software development, he said he is confident that Microsoft's insistence upon the importance of collaborative development will allow the company to weather the ever-changing climate that envelops software code development. ZDNet.co.uk spoke to him about his thoughts on the road ahead.

Q: You are extensively educated and well travelled. What drew you to serve your tour of duty with Microsoft?
A: Actually, Microsoft is the only company I have worked for. I came to the US to study for my masters degree and even started a PhD right afterwards up in Buffalo, which is on the Canadian border in upstate New York.

I had made some job applications after my masters and, to be honest, I could really only handle one winter in Buffalo. So, when I got the chance to join Microsoft and develop my passion for system-level programming, the choice was simple.

Your remit at Microsoft covers Visual Studio Team System for professional software-development teams, but also Visual Studio Express and Popfly for non-professional developers and hobbyists. With Expression Studio for designers under your belt too, isn't that a slightly over-bundled set of products to oversee?
Let me answer that by giving you some context as to why those product groups are together. For a long time, we were focused on the individual software developer, and that really formed the bedrock of our mission throughout the late '80s and early part of the '90s.

But, towards the end of the last decade, we realised that we needed to take a more global approach and bring aspiring hobbyists into our community, as these guys were going to form the next generation of professional programmers.

When you combined that factor with what was happening at the other end of the spectrum — where teams were becoming more sophisticated, specialised and globally distributed — it was easy to see that there was a gaping hole, in collaborative terms. Analysts, testers, designers, architects and programmers themselves needed a unifying set of tools, and that is what we have been working to build.

Given your proximity to Visual Studio Team System, it's no surprise to see that you view collaboration as one of the greatest challenges in software development. Why haven't we got something so fundamentally simple as talking to each other right yet?
Essentially, this is all part of the argument for software application-lifecycle management (ALM) and there have been a whole bunch of vendors out there trying to develop solutions in this area for at least a decade now.

What we haven't seen so far, from any company, is a set of tools that will produce a seamless flow of information detailing all aspects of the software lifecycle.

If we can achieve this, then every member of the team can be made more productive. Our back-end data store in this space is Team Foundation Server, and it forms a vital part of our Visual Studio Team System offering. But no vendor, including Microsoft, has perfected this yet. There is a ton more we can do.

ZDNet.co.uk has a vibrant community of bloggers who are not afraid to voice their opinions and vent their technical spleen on the subjects they are passionate about. As a keen technical blogger yourself, what advice would you give our community to promote readability and interest?
For me, the world is getting smaller and becoming a more connected space. The fact that I can engage in conversations on the web and get live feedback on our products, as well as those of our competitors, from all around the world is what makes blogging so rewarding. Having that two-way constructive dialogue is invaluable.

In terms of advice, all I can say is that you need to remember that blogging is not like writing a speech. It's a conversation. You need to speak from the heart and, that way, you'll generate the most interest and achieve the highest possible level of readability.

You oversee the Microsoft India Development Center (IDC) in Hyderabad. Has the subcontinent finally shifted its reputation for being the outsourcing workhorse for the rest of the world and started to build a reputation for software development in its own right?
That shift has happened for sure. There is real hard-core research and development going on now, and it's not just in Bangalore either. Hyderabad is really just one of four or five major IT hubs that have now started to flourish in India, along with…

…Bangalore, Pune, Delhi and Chennai. Indian nationals are even migrating back to the subcontinent to fill positions in the new tech economy. However, India's wider strength in IT services is still there and this will continue.

You talk about providing a consistent programming model in .Net that spans the client, web, servers, devices and services. For some that may sound like Microsoft proprietary vendor lock-in. How do you react to that kind of criticism at the same time as Microsoft is aiming to be taken seriously in open source?
If you go back to 1998 and 1999, when we started working on the first version of the .Net framework, there were two overriding principles that directed the way we developed the platform. Firstly, we wanted to employ XML so that there was a common language for the exchange of data. Secondly, we wanted to provide programmers with a consistent route for creating web services. So, when you say we are only focused on propriety technologies, we really have had interoperability at the core of so much of what we have produced.

There has been a vast proliferation of form factors to develop for, so programmers today have to think about considerations for the application running in a mobile, desktop, web or even cloud-computing environment. Because of this, Microsoft has been focused on creating a consistent programming model to make it easier to develop software productively in a heterogeneous environment.

Now that you've held positions such as corporate vice president of the Windows engineering group, do you ever get time to get your hands dirty with the code and get a feel for ground-level software engineering issues that aren't just fed to you via workgroup studies and surveys?
I try to take every opportunity to personally install our products in their various forms, whether it be betas, RTM [release to manufacturing] releases or service packs on my own machine.

I do this, in part, to try to understand the acquisition experience that our customers face and so that I can have a chance to play with some of the new features I have seen demonstrated by various teams.

While I have not done any significant coding in a while, I have played around with products, like Expression Blend and Popfly Game Creator, that have allowed me to dabble a little into the lives of those outside of the mainstream developer base, like creative professionals and hobbyist developers.

JavaFX Desktop 1.0 is expected to be available in the third quarter of this year. So, with Sun now positioned to compete with both Microsoft Silverlight and Adobe AIR, what factors do you think will most heavily influence the development and adoption of rich internet applications (RIAs)?
The first thing to accept is that RIAs are here to stay. So the question now is: which platform, toolset and overall environment is going to give you the most power and control over the applications that you want to build?

What will make a difference in this segment, as we go forward, is the ability to provide a programming environment that developers are used to and they feel comfortable with. That way, they can extend their applications to run as RIAs and begin thinking about building new ones that start out life as web-driven from their first inception.

When do you think we'll be fully comfortable with Web 2.0 technologies, such as mashups, and be able to look back and wonder how we lived without them? And are Web 3.0 technologies and the Semantic Web close on the horizon?
For many of us, Web 2.0 technologies are already an intricate part of our lives, whether you are looking up friends on a social-networking site, watching a movie trailer online or getting directions using 3D mapping technology.

Innovation on the web is happening at a phenomenal pace, and I think the next-generation web will be here and become a part of our lives without most users even recognising it, as they simply embrace and use it.

Back in 2006, you touted Ajax as one of the prime movers behind the next stage of growth for the internet. Leaving the Windows Presentation Foundation and the Expression toolset aside for a moment, what wider factors do you think will change the web between now and the end of the decade?
Ajax was a sign that there was demand for richer, more usable, more powerful application experiences. The web alone wasn't good enough. As we continue to evolve, I think those same patterns hold true.

At Microsoft, we will continue to focus on the breadth of technology needed to make it possible for developers to continue to push the envelope on application capability, usability and experience, while minimising complexity, and we'll continue to enable businesses to take advantage of the changing market dynamics around hardware with continued focus on web, desktop and mobility.