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 (57)

  1. Paul Thomsen says:

    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!

  2. Ed says:

    I don’t think any trend in software is hotter right now than phone apps.  Yet you don’t see ‘phone’ or ‘mobile’ mentioned above.  I think that is very telling.

    For the web, Microsoft has given us an outstanding, cutting edge platform in Silverlight. But for phones?  There’s not an app for that.  And we need one.

    Write code in .Net, compile to droid phones?  Now that would be cool

  3. David Cuccia says:

    @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.

  4. Alliston says:

    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.

  5. Rusco says:

    You forgot sandboxing of native apps !

    This will have a major impact.

  6. deskbuzz says:

    Nice Article. Thanks a lot.

  7. Pythagoras says:

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

  8. danieldsmith says:

    I think micro trends within Visual Studio are far more interesting and valuable areas to concentrate on.

    T4 templates are a great example of this.  T4 usage has exploded, and it’s now central to the extensibility of many features e.g. the Entity Framework.  This is an obvious trend, so it is quite disappointing that VS2010 doesn’t have better T4 support e.g. built in syntax highlighting:

    https://connect.microsoft.com/VisualStudio/feedback/details/404748/text-template-files-tt-support-in-visual-studio-editor

    64-bit development is another strong trend.  Again it’s pretty short sighted that VS2010 is now defaulting all solutions to 32-bit.  Plus 64-bit Edit and Continue support has failed to be addressed:

    https://connect.microsoft.com/VisualStudio/feedback/details/431200/edit-and-continue-is-not-allowed-when-debugging-a-64-bit-application

    https://connect.microsoft.com/VisualStudio/feedback/details/267609/64-bit-support

    Another trend I’ve noticed is that people are looking for stronger typing (not the other way round with dynamic!).  Code contracts are fantastic, yet it’s a shame they’re going to be limited to the most expensive editions of Visual Studio:

    https://connect.microsoft.com/VisualStudio/feedback/details/481327/make-data-contract-static-checking-available-in-professional-edition

    People are also looking for stronger typing and compile time checking when it comes to property name lookup.  Relying on strings that can break at compile time just doesn’t cut it any more.  People are using tricks like lambda expressions to accomplish this, but it’d be nice if there was clean built in language support:

    https://connect.microsoft.com/VisualStudio/feedback/details/90707/add-nameof-operator-to-the-language

  9. Futuremen says:

    Thank you, Captain Obvious!

  10. issochicago says:

    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,

  11. fschwiet says:

    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.

  12. Watson says:

    Maybe more of a tenet, but where does power efficiency factor.  With the increasing proliferation of mobile devices (smart phones and laptops/netbooks), application developers need to acknowledge their role in both ‘not doing stupid things’ that suck batteries dry by undermining the inherent power management capabilities of the platform, but also to start measuring power use and trading off performance/fidelity/features where appropriate.  How many PC apps know if they are running on AC or DC and behave accordingly?

    This is also very important in the data center given a world of constrained and increasingly expensive power.

  13. Dave R. says:

    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.

  14. 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. 🙂

  15. Dmitry says:

    Cool – now we will begin to live.

  16. nice observation  on technologies

  17. cazaresulina says:

    Very nice

  18. Mark Struck says:

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

  19. allen says:

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

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

  21. SD says:

    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….

  22. Afaz Net says:

    I strongly believe that clound computing is a trend of future

  23. 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

  24. Kirk says:

    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.  

  25. davidi says:

    "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.

  26. Sathish kumar VS says:

    Hi,

    I think the web platform will rule the world.

    very simple and nice article.

  27. Larry says:

    Security in all of its forms is a hot topic.

  28. Austin says:

    Although perhaps not yet a trend, the Great Recession of 2009 may have something to do with software development.  As far as I can tell, the world is awash in out-of-work (or under-employed) developers.  At a job fair last year in Boston, the line for one company hiring software developers stretched across the building while other booths had little  traffic.  It seems like the Healthcare IT Boom will absorb some of them, but perhaps we’ll see more Open Source, more projects being undertaken by companies (since a glut of developers can only lead to lower costs), more applications which depend on plug-ins (write a little Java rather than navigating through 15 layers of configuration menus), or a gradual increase in the skill level of the developer pool (which will hopefully lead to better software) as the less skilled find another occupation.  Too early to tell.

  29. I like this concept… And parallel computing and parallel processing is really advance technique i love to work with it…

  30. *Tom says:

    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).

  31. Austin says:

    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.

  32. 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.

  33. venu says:

    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.

  34. Graham Phillips says:

    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.

  35. Mike says:

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

  36. Jeff says:

    @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.

  37. anirudha says:

    i am talking about all crazy blogger just like you and lot's of another. he talking about only Microsoft product's. his eyes can't see any other products[not build by MS]. if he IS MVP then he says Microsoft 24 times @ a days in his blogs. i am not say this is wrong but it is a madness of a developer. because if he was MVP then he also talking about microsoft products in his blogs. he was not writing by free mind because in his mind microsoft is a good loch. Are you sure that you write your blogs by free minds.

  38. John Bailo says:

    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.

  39. Lava Kafle says:

    superb short concise article

  40. N Kumar says:

    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>

  41. margy says:

    you forgot open source:)

  42. neden says:

    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

  43. semllmine says:

    Nice article.Thanks a lot.

  44. Bukar Gadzama says:

    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.

  45. Software Development Company says:

    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

  46. <a href="http://www.mag-corp.com">Mag</a> says:

    Nice Article . But please write the code in .net language.

  47. chrismartin says:

    nice article

  48. Charles ona says:

    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

  49. Mike says:

    Apps, cloud-computing are definitely key soft. developments trends. http://www.elementool.com and zoho- online software development tools, stuff like that is the future.

  50. Software testing companies says:

    Hi 2 all,

    software key trends is really good. every developer is take care of it while coding the software. http://www.techvistaconsulting.com

    thanks

  51. Grigory says:

    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.

  52. Mike says:

    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

  53. Ossama Hamed says:

    I have the pleasure to brief you on our Data Visualization software "Trend Compass".

    TC is a new concept in viewing statistics & trends in an animated way by displaying in one chart 5 axis (X, Y, Time, Bubble size & Bubble color) instead of just the traditional X and Y axis. Discover trends hidden in spreadsheets. It could be used in analysis, research, presentation etc. In different business sectors, to name a few we have Deutsche Bank, NBC Universal, RIM,  Vanguard Institutional Investor, Ipsos, Princeton University as our clients.

    Link on Drilling feature (Parent/Child) – Just double-click on any bubble:

    http://www.epicsyst.com/…/drilling

    NBC presentation on TED using Trend Compass exported Videos on CNN Money/Fortune:

    tech.fortune.cnn.com/…/from-laughing-to-judging-in-fifty-years-the-evolution-of-televised-emotion

    Link on our new Geographical Trend Compass (Earthquake in Japan – Mag vs Depth vs Time):

    http://www.epicsyst.com/…/japan-earthquake

    Link on Ads Monitoring on TV Satellite Channels.

    http://www.epicsyst.com/…/tv-monitor

    Link on UK Master Card vs Visa performance :

    http://www.epicsyst.com/…/mastercard_vs_visa

    Links on Funds:

    http://www.epicsyst.com/…/best_exchange_traded_funds

    http://www.epicsyst.com/…/us_insurance_funds

    http://www.epicsyst.com/…/aaim_fund_performance

    Link on other KPIs :

    http://www.epicsyst.com/…/hospital_performance

    Link on Chile's Earthquake (Feb 27th 2010):

    http://www.epicsyst.com/…/EarthQuakeinChile

    Link on weather data :

    http://www.epicsyst.com/…/aims

    Bank link to compare Deposits, Withdrawals and numbers of Customers for different branches over time:

    http://www.epicsyst.com/…/bank-trx

    Misc Examples :

    http://www.epicsyst.com/…/airline

    http://www.epicsyst.com/…/stockmarket1

    http://www.epicsyst.com/…/football

    http://www.epicsyst.com/…/swinefludaily

    http://www.epicsyst.com/…/babyboomers

    Princeton University project on US unemployment :

    http://www.epicsyst.com/main3.swf

    A video presentation by Professor Alan Krueger Bendheim Professor of Economics and Public Affairs at Princeton University and currently Chief Economist at the US Treasury:

    epicsyst.com/…/princeton.aspx

    You can download a trial version. It has a feature to export EXE,PPS,HTML and AVI files. The most impressive is the AVI since you can record Audio/Video for the charts you create.

    http://www.epicsyst.com/…/TrendCompassv1.2.2.zip

    Video on Trend Compass:

    http://www.youtube.com/watch

    Since we already develop 3D Virtual Reality applications, please find below a link on a prototype for a new 3D VR Trend Compass application:

    http://www.youtube.com/watch

    Regards.

    Ossama Hamed

    Trend Compass Team

    Epic Systems

    http://www.epicsyst.com

  54. Raja Sekar says:

    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

  55. A Ashley says:

    Do you feel MS Access Database development is still needed and will it remain a valuable tool for businesses?