Share via


Key Software Development Trends

More than ever before, today’s developers are open to considering and using multiple technologies to enable them to build solutions smoothly and deliver them to their customers quickly. There are an increasing number of choices available for developers in terms of programming styles. Our goal is to provide fantastic support for all programming styles within our tools to enable our customers to build great software.

Several trends are emerging within the area of software development. Below are some of the most important trends I’ve been thinking about recently. This list isn’t comprehensive of all software trends, but each one represents an area that Microsoft is currently or will be investing in to bring to our customers.

Cloud Computing

Cloud computing allows companies to leverage just the computing resources they need today, scale up to handle peak loads, and avoid the overhead of managing hardware. Cloud computing levels the playing field for small companies to compete against large, established companies at a reasonable and predictable cost. Windows Server, Windows Azure, SQL Azure, and services such as Windows Live, Office, and Xbox Live are now live in the cloud. Microsoft has committed to bringing the best cloud computing platform and services to the Windows ecosystem. The cloud is just one example of a virtualized computing platform, and the next generation of developer tools must enable developers to build software that deploys and performs well in cloud and other virtual environments.

The Web as a Platform

The browser provides a rich runtime environment and friction-free access to applications. Developers are increasingly choosing the web as their platform of choice for software and software development. Increasingly, developers and designers are using tools that offer a rich development, debugging, and profiling experience designed for the web. JavaScript libraries allow web developers to get more done with JavaScript than ever before while reaching a wide audience, and immersive internet applications, such as those written for Silverlight, allow developers to break free of the limitations of HTML and take advantage of a range of resources and features while guaranteeing compatibility across platforms.

Parallel Computing

Moore’s Law, the prediction that CPU performance would double every eighteen months, is now fulfilled by adding more processor cores rather than by increased performance of a single core, bringing the power of multi-core processing to low-end machines. New trends in computing take advantage of inexpensive and widely-available desktop graphics processors for certain tasks. At the high end of processing ability, supercomputing centers are leveraging clusters to perform complex computational tasks. Today, a small handful of programmers have the skills to write code that performs well in multi-core and many-core environments. In the future, parallel libraries, debugging, profiling, and diagnostic tools will enable more developers to take advantage of parallel computing resources.

Proliferation of Devices

With the increasing availability of inexpensive devices that connect to the internet, we all want to access and interact with our data in ways that are appropriate to our devices’ capabilities. We expect to access our online identities and data easily and securely on all our devices. Today, Microsoft provides access to users’ data via Windows Live and Xbox LIVE. With the proliferation of devices has come a proliferation of user interface paradigms that enable natural and intuitive interaction with those devices. As touch-based, speech-based, and camera-based solutions become available and cost-effective, Microsoft is evolving software to take advantage of these capabilities to build intuitive user interfaces. Windows 7 provides great support for touch-enabled applications in the platform. Silverlight and WPF have embraced camera-based interactions and multi-touch, as has MFC. I expect user interface paradigms to continue to evolve and become more intuitive and powerful.

Agile Development Process

Agile development processes, including Scrum, test-driven development, and continuous integration are commonly used in the enterprise and smaller development shops, often in combination with other development practices. Within Microsoft, many teams have integrated elements of Agile development practices to their process. Visual Studio 2010 opens the door for Agile methodologies, offering support for some Agile processes such as unit testing and iteration planning. We will continue to support more Agile methodologies going forward as well.

Distributed Development

Distributed development enables team members to work closely despite geographic separation from each other, bringing together worldwide talent to seamlessly work toward a common project or goal. The experience of a team working across time zones and borders should be as good as the experience for a single developer, but also includes supporting cloud-based development activities such as distributed code reviews, remote paired programming, developer/tester collaboration and resource sharing. Great distributed team development tools will enable developers to build the next generation of software, leveraging the worldwide talent pool.

In Closing…

These trends don’t represent a complete list of influential factors for all areas, but are some of the areas we feel can move software development forward. I welcome your perspective: which of these trends do you feel will be most important in the future? Are there trends you think should be included in this list? Leave a comment with your perspective.

Comments

  • Anonymous
    February 23, 2010
    Here's another one: "there's an app for that". Or, in other words, applets on devices (though applets on Windows, tablets, netbooks, etc. are also nice). I don't see much reference to this in the trade press, but clearly people are throwing together LOTs of small applications that many people like. To some degree this will draw both users and developers from the maintstream apps. Maybe you could put this one in any of the trends you mention, but to me it seems significant enough to qualify in its own right. Maybe it's the uber-trend!

  • Anonymous
    February 23, 2010
    The comment has been removed

  • Anonymous
    February 23, 2010
    @Ed: Not 'telling' of much. "The Goo" ..er.. "The Bing" says Silverlight and XNA are both going to be platforms for targeting the "Windows Phone 7 Series" phones. Of course, you won't hear that from MS until MIX'10.

  • Anonymous
    February 23, 2010
    Nice article.

  • Anonymous
    February 23, 2010
    Well, I don't think that mobile devices will be the "trend of decade", but cloud-computing will! Azure is a precursor of cloud-computing platforms (at that level), representing a great change of paradigms. I'll invest in that with no fear.

  • Anonymous
    February 23, 2010
    You forgot sandboxing of native apps ! This will have a major impact.

  • Anonymous
    February 23, 2010
    Nice Article. Thanks a lot.

  • Anonymous
    February 23, 2010
    Good article. But what about games? Is there no more development? When we can finally play in Otherland (Tad Williams)?

  • Anonymous
    February 23, 2010
    The comment has been removed

  • Anonymous
    February 23, 2010
    Thank you, Captain Obvious!

  • Anonymous
    February 24, 2010
    We are still waiting on IIS Live Smooth Streaming - Complete end to end solution. One of the things changing in the streaming industry is adoption of Expression Encoder 3, IIS and Silverlight. We wish that sooner there will be something better from Microsoft in this area. Thanks,

  • Anonymous
    February 24, 2010
    Great post danieldsmith.  I don't think edit-and-continue is important personally but the idea of a nameof() operator is brilliant.  I wonder what surprise implementation questions might make it less-obvious. Putting the data-contract stuff in Team system only is kind of funny / short-sided.  Forgot the good of the community, any developer with an eye towards open source development is going to avoid using code that requires a particular non-free compiler. (Unit tests > data contracts) anyhow.

  • Anonymous
    February 24, 2010
    The comment has been removed

  • Anonymous
    February 24, 2010
    Your Moore's Law statement is incorrect. The 'law' postulates that chip transistor count approximately doubles every two years. It is not related to the speed or efficiency of the silicon. It's amazing that so many people still get this simple thing wrong: http://en.wikipedia.org/wiki/Moore%27s_law I certainly don't see Cloud Computing and Parallel Computing gaining any traction in the short term. They're still far too complex for the majority of projects and only very recently are more friendly programming constructs being presented to ease development. I'd agree with the move to the web as a platform, but this is just an obvious observation rather than a prediction of the future. A disappointing post.

  • Anonymous
    February 25, 2010
    Very nice information! I do believed that quality service is the most important thing that we need to focus on regardless of the upgraded system that a software development outsourcing company has. :)

  • Anonymous
    February 25, 2010
    Cool - now we will begin to live.

  • Anonymous
    February 26, 2010
    nice observation  on technologies

  • Anonymous
    February 28, 2010
    Very nice

  • Anonymous
    March 01, 2010
    @Futuremen, I completely agree. This should have been posted back in 2005 not 2010.

  • Anonymous
    March 01, 2010
    clound computing(SaaS)is a ecofriendly solution for todays business world.So I think it will be the trend of decade as Alliston said.

  • Anonymous
    March 02, 2010
    Greetings from Panama. I like this article! Now I know, what we are going to see in the future, especially for freelance programmers!

  • Anonymous
    March 04, 2010
    I have to agree, MS is missing out on the hottest software trend, phones.  So what if Silverlight will end up running on a Windows phone? Who has one of those anyway?  What does everyone have?  Iphone.   Iphone blows away anything MS ever produced. Now Google is in the act with Android phones.   MS isn't going to get anywhere with phones as a platform.  What they need to do is get their software platform (.Net) on the phones that are already there.  SL runtime on Iphone and Android....

  • Anonymous
    March 06, 2010
    I strongly believe that clound computing is a trend of future

  • Anonymous
    March 08, 2010
    Distributed Development is by far the most interesting of them all. being able to have a team work in different areas is amazing. This type of work flow is the future and enables you to have not only a good team but one of the best. I hope to see more of this trend in the future. Samuel

  • Anonymous
    March 12, 2010
    Cloud computing won't make it because the people that control the money (Finance) don't like not having firm budgets because you can't predict or control costs.  It's also true that most organization sooner or later like owning their computing resources because then they can constrain them.  

  • Anonymous
    March 12, 2010
    "Several trends are emerging within the area of software development." Emerging? Sorry, most are already here. Agile (we're all doing it for years now including MS internally with Scrum, VP, TTD, FDD, etc). Distributed teams (many companies since late 1990's and absolutely used at MS, IBM, and even medium and small sized companies 2000's. There's even personal and team outsourcing with Rent-a-coder, ) Devices (Apple, Google and others - everyone except MS - maybe with "Windows Phone 7 Series"?). Web as Platform (Amazon, Facebook, Twitter, Google, Salesforce, and others are fully on top of Web as a Platform.  Many are using REST instead of SOAP as the API. The only company that is still working on Web as Platform seems to be MS – hopefully with Office as a service?). Parallel Computing - we have .NET Parallel extensions, compilers from Intel and others and we all have chips with at least processor cores in our recent desktop/laptop computers. The only one that is still sort of emerging is Cloud Computing – but that is already, IMO, getting near the end of "emerging". Historically – MS executives have said use phrases like “emerging”, “Not ready for primetime” and other characterizations can usually be translated into – these are emerging and will ready for prime time when Microsoft has offerings in these areas.

  • Anonymous
    March 14, 2010
    Hi, I think the web platform will rule the world. very simple and nice article.

  • Anonymous
    March 15, 2010
    The comment has been removed

  • Anonymous
    March 17, 2010
    The comment has been removed

  • Anonymous
    March 22, 2010
    I like this concept... And parallel computing and parallel processing is really advance technique i love to work with it...

  • Anonymous
    March 26, 2010
    I really hope that parallel computing will be a trend, because I invest a lot of time in learning it properly. But it is a bit difficult to imagine that all future trends will be somehow tied to MS technologies, though the company has never been able to do anything that actually worked (except for, of course, their excellent keyboards), and more and more people realise this fact as Mac OS-X and Linux is becoming widespread (of course MS statistics and their paid ads will always downplay POSIX/etc technologies, but technically they are clearly superior to he marketing-driven, technical nonsense MS technologies).

  • Anonymous
    April 01, 2010
    One thing I'm noticing is a lot of  little languages emerging based on the Java Virtual Machine or  on the .net framework.  It seems every time I look, there's another language either available as a Java scripting language or one which compiles to Java bytecode.    I expect we might start seeing some mixed-language projects, and hopefully hiring managers will start to realize that knowing how to program in any, preferably several, languages is more important than x years experience with a particular language.

  • Anonymous
    April 08, 2010
    http://www.lvbagmall.com/cheapdesignerbags.html http://www.lvbagmall.com/designerreplicas.html

  • Anonymous
    April 08, 2010
    A1 Technology, Software Outsourcing Company: We are a Offshore Software Development Company based in New York. We provide customized Software Development Outsourcing and Web Applications such as Online Retail Webstore, B2B Ecommerce, e-Finance & e-Business, Portal sites and Mobile Applications. Contact us for the best Offshore Software Outsourcing and Software Outsourcing services.

  • Anonymous
    April 13, 2010
    Author has mixed both technology and process trends in software development. That created little bit of confusion otherwsie it is simple well known facts are put in a clear message.

  • Anonymous
    April 14, 2010
    A very MS-centric view of the world, especially the "Web as a Platform" section; you could be forgiven for thinking that all the internet apps out there are Silverlight/Javascript. Nothing could be further from the truth.

  • Anonymous
    April 29, 2010
    Thanks a lot for the information.I think a good software developer has to know about it. Before starting my work, Ardent iSys www.ardentisys.com had helped me understand the trends of software development.

  • Anonymous
    May 06, 2010
    @Tom, That comment is terribly unfair!  Besides keyboards, Microsoft also makes very nice mice.  And the Zune's actually a nice machine, even if no-one has one. Actually, Excel is, and has always been, an excellent product.  (Of course, it was developed by MS's Mac group, and only later ported to the PC.) If you don't give them the (tiny amount of) credit they're due, it makes it hard for people to take you seriously.

  • Anonymous
    June 16, 2010
    The comment has been removed

  • Anonymous
    June 28, 2010
    I think the most significant trend is a change from the use of homogeneous schemas (RDBMS) and data structures to possibly heterogeneous ones, like objects, aspects, functions and ldap stores.   The recent Facebook security issues point to social media, and it's text based information becoming more the way we represent ourselves.

  • Anonymous
    July 29, 2010
    superb short concise article

  • Anonymous
    August 05, 2010
    Thanks for sharing this article on Software development. It was very nice. Looking for more..................Please continue writing. Regards:-<a href="http://www.extendcode.com">Offshore software development India</a>

  • Anonymous
    August 05, 2010
    you forgot open source:)

  • Anonymous
    August 15, 2010
    We are still waiting on IIS Live Smooth Streaming - Complete end to end solution. One of the things changing in the streaming industry is adoption of Expression Encoder 3, IIS and Silverlight. We wish that sooner there will be something better from Microsoft in this area. http://www.yuregininsesi.com

  • Anonymous
    August 27, 2010
    Nice article.Thanks a lot.

  • Anonymous
    October 07, 2010
    I have always envisioned a day when operating systems would be internet based instead of the difficulty associated with installing operating systems from cd. I have heard of net-based installation of operating systems but I think that the time has come for us to think of the internet as the operating system for both stand-alone and networked computers and thus eliminate the need to have operating systems on the computer harddisk itself.

  • Anonymous
    October 12, 2010
    Hi 2 All, Thanks for good posting and here discussed very good topic like key software development trends. It is Very Usefull to the Software guys. Thanks & Regards, Katerina, http://www.glssystems.net

  • Anonymous
    October 20, 2010
    Nice Article . But please write the code in .net language.

  • Anonymous
    November 15, 2010
    nice article

  • Anonymous
    November 24, 2010
    Web applications i believe will be very pivotal to administration in the business environment. Cloud computing will be next in my order of priority but from my understanding of both, they are basically the same or better still can't be treated in isolation

  • Anonymous
    December 09, 2010
    Apps, cloud-computing are definitely key soft. developments trends. www.elementool.com and zoho- online software development tools, stuff like that is the future.

  • Anonymous
    December 17, 2010
    Hi 2 all, software key trends is really good. every developer is take care of it while coding the software. www.techvistaconsulting.com thanks

  • Anonymous
    January 16, 2011
    By the way, if you look at some popular gadgets magazine such as gizmodo or wired you hardly ever find articles about windows phone. Almost all information is about comparing IPhone and Android. How you are going to show you OS to the world? Almost the same situation about the Azure. Developers divisions are great others are "good enough". It looks like MS has become next IBM. Big, fat and dumb.

  • Anonymous
    April 17, 2011
    This is deinately one of the key articles that I will always refer to my students: Its so breif yet so indepth. Good work! Keep it up! http://www.spctek.com

  • Anonymous
    February 07, 2012
    The comment has been removed

  • Anonymous
    May 03, 2012
    I know mobile computing only but when am read this article after that only i can know cloud computing information fully and i got another site you can visit http://www.baalin.in

  • Anonymous
    March 06, 2014
    Do you feel MS Access Database development is still needed and will it remain a valuable tool for businesses?