I believe there is a lot of value in getting information direct from the source and especially an acknowledged authority in software development.
Here is Part 1 in the Q&A series with Soma. I encourage you to make comments here or send me an e-mail at email@example.com.
S. "Soma" Somasegar is corporate vice president of the Developer Division at Microsoft Corporation. The Developer Division is primarily responsible for all the developer-related languages, tools and platforms within Microsoft, including Visual Studio, Web Platform and Tools, .NET Framework, Common Language Runtime (CLR) and other .NET Developer Platform technologies. In addition, he oversees the India Development Center (IDC) in Hyderabad, India.
Somasegar began his career at Microsoft in 1989 as a software design engineer, and worked on eight different operating system releases: OS/2 2.0, NT family of releases, Windows 2000, Windows XP, and Windows Server 2003. Most recently, he served as corporate vice president of the Windows Engineering Services and Solutions group within the Windows Division. Prior to that he was the general manager for the NT releases.
Prior to joining Microsoft, Somasegar was a graduate student in Computer Engineering at the State University of New York in Buffalo. He holds a master's in Computer Engineering from Louisiana State University (1988) and a Bachelor of Electronics Engineering from Guindy Engineering College, Anna University, India (1986). Somasegar and his wife Akila have two daughters, Sahana and Archana.
Somasegar frequently shares his thoughts with the developer community via a blog at http://blogs.msdn.com/somasegar .
Discussion Part 1:
Q: Soma, we thank you for taking time out of your demanding schedule to do this interview.
A: Thank you for the opportunity to speak to the community in this forum.
Q: As a leading executive in software development, can you profile four current challenges, how you are solving them, and the lessons that you want to share?
This is such a great question as I was recently out on the road talking with people like you who speak for our community of customers about the challenges facing us in software development today. I'm happy to share that conversation with you on the challenges. I'll note that these are in no particular order of priority or importance.
A 1: Challenge one: Collaboration: I've been talking to folks recently about complexity in software development and what the root cause of that is. Many people think it has been software that is causing complexity, but it's actually people - it's not a software problem, it's a people problem. One of the main issues in software development today is that many of the vendors and software solutions out in the market don't enable collaboration among members of a software development team and beyond to the operations team or the Project Management Office
Solution: The solution is that the industry needs to address collaboration more explicitly in the tools they provide to customers. And this collaboration must extend out beyond the development team to the operations team, the design team, the project management team, etc. This is the goal behind our Visual Studio Team System family of products, as well as the goal behind our Expression family of tools. The central driving force is to break down the "Great Walls of China" that exist between these groups and get them to collaborate more effectively together in the name of helping their businesses succeed through software.
Lessons: I think the lesson is simple - we need to focus on enabling people to work together in a collaborative fashion.
A 2: Challenge two: Managing process: Again, software is complex and another challenge in managing that complexity is managing the myriad of processes that goes into making great software that helps customers achieve business value. But this is a hard thing to achieve in corporate IT shops because software development isn't their center of excellence. Therefore they look to systems integrators and software vendors for methodologies, some of them build their own internal processes. But these processes are hard and customers can't take two years to build an application spending most of that time managing process. What's out there today is hard and it's on us to make it easier.
Solution: The key is to make process invisible yet ever present. We cannot take process away because there's a great deal of value in the processes. But we can certainly make it easier for customers to apply those processes so they have a much more efficient and strategic development initiative. We think we have the tools to do this in Visual Studio Team System, as we've taken our approach to productivity that's worked so well with individual developers and applied it to organizations in this toolset. Part of applying this notion of productivity is turning heavy process into lightweight process that is more automated and seamless to the corporate developers.
Lessons: Integrate process into the tools and make them enforceable by the tools, so that the development team doesn't need to deal with processes.
A3: Challenge three: Making tools approachable. When you're using tools every day they have to be easy to use, natural and approachable. This isn't true of many development tools on the market today particularly for those in corporate IT shops.
Solution: Plain and simple we need to make our tools approachable, easy-to-use and highly productive for our customers. This is why we built the Visual Studio Team System family from the group up as opposed to leveraging a "buy" strategy which many observers in the industry questioned us about when we considered entering the enterprise tools space.
Lessons: Our history with the developer community is rooted in bringing productivity to the individual developer and making them hugely successful through that productivity. We wanted to apply that learning to team and organizational productivity.
A4: Challenge four: Integration. Now more than ever customers need integration – tying their solutions together no matter what they are, what they were built with, etc. The key demand from customers is "I just want it to work."
Solution: Customers are becoming more and more open to giving up best of breed tools in favor of an integrated system that works together. This isn't an amazing concept by and large, but few people are truly doing this today.
Lessons: The industry has needed to be more open about ensuring there are connections between systems. That's why you see the concept of service-oriented architectures being a big thing today. That's why the .NET versus J2EE race is no longer as controversial as before. Sure, we're ahead in .NET deployments, but a key demand from customers is that they want to see integration. That's why with Team Foundation Server we've focused on making sure customers can have the visibility into projects no matter what they're using. We've built VSTS and Team Foundation Server as an integrated system from the ground up.
Thank you Soma and I'm looking forward to Part 2 of this dialogue...