“Ruby on Rails” in the heading might be an overstatement, if you judge it by the first part of my article, but I’ll explain myself later, as you read.

Recently I’ve read very good report on what’s happening in the software development, development firms environments and those who seek to outsource / offshore services. The report is called “The 2010 Software Development Trends”. The report itself is just a presentation of survey results, conducted from May 25 through June 14 of 2010 and can be found here: www.executivebrief.com

My article is for those who are curious about the survey results and do not want to dig through all the pages. I’ve chosen the form of presenting possible question a developer interested in the results may ask and answering them.

  • So, first question is: who?
  • Respondent profile is usually an independent software vendor of any size or a software as service provider – these are the majority of responders, that works (as an offshore/ outsourcing partner, etc) on ten or fewer software development projects a year (these are about the half of the respondent base, so therefore we can assume that many SMEs are among the survey responders). Also what is interesting, they are significantly more represented in the poll, compared to the results from 2009.

  • Second question is: the demand?
  • Answer: Responders stated that from their current software development priorities, most important are (and we list more common here):
    1) New Software Product/Application Development
    2) Improving Usability / User Experience
    3) Creating and/or Integrating New Technologies/Products/Innovations

    Also a very similar question about software development needs: “what are greatest improvements areas for your organization?”, lists these answers:
    1) User Interface Design
    2) Quality Assurance / Quality Control
    3) Requirements Definition

    I would like to add some meaning/feedback to this list by noticing that software areas needing greatest improvement changed significantly in 2010, when compared to 2009 results of this report. In general there is more emphasis being placed on customers and users of web applications. This might be caused by the increased percentage of “software as service providers” who responded to this survey in a greater number and of course the increase in new application development placed in top priority.

  • Third question is: How?
  • And the answer: I am not going to discuss which development language or environment or framework (Ruby on Rails, Django, PHP Cake/Symphony, etc…) is the preferred option, amongst the responders, but I would like to notice an interesting fact that most preferred methodology / model (that is something more abstract than a framework) is: Agile (57%, with a significant rise of popularity of this option). And Ruby on Rails is all about Agile, so I see a great opportunity for Ruby on Rails developers who look to get contracts for outsourcing projects.

  • Fourth question: to outsource or not to outsource?
  • Answer: Nearly 50% answered they handle software development 100% in-house. This is significantly greater than last year’s data, indicating only 35% of respondents developed 100% of their software in-house in 2009. And approximately one-half of software development organizations doing some degree of outsourcing, down from 65% last year. So it seems that we have a lower rate of firms that are getting work done with help of offshore parners.

  • Fifth question: where to outsource?
  • Answer: Responders answered:
    India 73%
    Other Eastern Europe, Russia, Ukraine 34%
    China 12%

    So these are, well… expected results.

    Some additional comments that didn’t fall to any of these questions: Also, from reading the report you may, you can conclude that software development budgets (despite more and more software development being done as in-house development) are generally bigger than last year and the headcount of an organization trend is rising.

    I left most interesting part for just before the second part of this article,
    the question: “what’s biggest software development trend potentially impacting responders business in 2010?”
    Answer: the majority of respondents believe that cloud, mobile, and SaaS have the greatest potential impact their business. So they responded:
    * with reference to “mobile”: Android, iPhone/iPod/iPad, tablets, Balckberry
    * Agile / Scrum
    * RIA: Silverlight, Flex, HTML5
    * Google / MS products, tools,etc
    * Social Media / Networking / Collaborative tools
    * User Experience :)

    I would like to suggest every Ruby on Rails developer to stop for a moment and think about the future and his programming career. And maybe to give you some inspiration, I’ll pick one of the above and write a few words about it :)

    Fortunatelly, recently I’ve found a great blog post by Mike Leone, about “how to turn your Android Phone into a Remote Spy Camera with Ruby in 15 minutes” (source: http://leone.panopticdev.com/2010/08/turn-your-android-phone-into-remote-spy.html )
    And this part explains me, why I’ve chosen Ruby on Rails as heading for my article about software development trends in 2010. I just wouldn’t write it, if any Ruby developer would said that he couldn’t care less about what I write since it is software development “in general”, “too abstract and maybe doesn’t concern him because Rails is about…” and so on.

    How many of you know that’s possible with Ruby and you don’t have to code in Java to make a working application for a mobile? Well… I didn’t, up to now.
    Mike Leone in his blog post gives a step by step instructions how to do so, using Ruby. It is possible because (as the author says):
    Scripting Layer for Android (SL4A, formerly known as Android Scripting Environment or ASE) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to get things done… Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell are currently supported, and we’re planning to add more.
    There is also Ruboto (http://ruboto.org/ ) and google released a solution that allows distributing programs as APKs (Android Package, more here: http://code.google.com/p/android-scripting/wiki/SharingScripts)

    So next time you will be developing a regular Ruby on Rails application think how would it be, coding stuff for Android or other mobile platform. Maybe it’s something you’ve always wanted to try? Good. It’s one of the most anticipated trends and you may be in that train. It’s up to you.