The results of the Eclipse Community Survey 2010 have recently been released. A summary of the findings is available in the Open Source Developer Report 2010. This survey of the Eclipse community is an interesting insight into software development and the trends which are taking place.
Most relevant to the MantisBT project is the question concerning whether developers are using change management systems (bug trackers) and if so, which software they are using. It’s interesting to note that 21.8% of respondents don’t use a change management system for their software projects (compared to 22.7% in 2009). Approximately 15% of respondents stated that they work alone on their projects (as opposed to working in a team based environment). This perhaps explains one of the reasons why such a large proportion of respondents don’t use change management systems (it’s overkill for many small solo projects).
Altassian’s proprietary JIRA software is the most widely used change management system amongst respondents (16.3% compared to 17% in 2009). The open source Bugzilla project is almost equally popular (15.3% compared to 17% in 2009). Trac (10.3% compared to 7.2% in 2009) and MantisBT (9.1% compared to 5.3% in 2009) are the other two popular change management systems in use amongst those surveyed. It’s interesting to note that 6.1% (compared to 8.4% in 2009) of respondents stated that they use a custom or in-house change management system as opposed to making use of existing software. Redmine, HQ Quality Center and IBM Rational ClearQuest were each used by approximately 2% of respondents. The remaining few percentage points were split across a wide array of change management systems, most with only a few users each from the 1700 survey respondents. Whilst there exists a vast range of change management systems to choose from, it’s clear that developers prefer to select from just four options – JIRA, Bugzilla, Trac and MantisBT. There doesn’t appear to be a trend towards developers breaking away from these four leaders.
It’s exciting to see that the number of respondents using MantisBT as their primary change management system has almost doubled from 2009 to 2010. If you’ve switched to using MantisBT in the past year, we’d be very interested in hearing from you the reasons why you selected MantisBT over other software. This feedback allows us to focus our attention towards improving the MantisBT features which are in most demand by our users.
Ian Skerrett has additional interesting observations on trends that have been occurring throughout the years this survey has been conducted. In 2007, 20% of developers surveyed were using Linux as their primary development operating system. That figure increased to 26.9% in 2009 and has again increased to 32.7% in 2010. The number of developers using Windows as their primary development system decreased from 73.8% in 2007 to 64.3% in 2009. In the past year this figure has further declined to 58.3%. It is also worth noting that Mac OSX usage increased from 3.5% in 2007 to 7.9% in 2010.
An interesting observation to add to Ian’s analysis is the trend in the response to the question regarding the primary target operating system for deployment of software. In 2007, 37% of respondents stated that their primary target platform was Linux. This figure increased in 2009 to 42.7% and again increased in 2010 to 46%. These gains have come at the loss of the Windows platform which has fallen from 47% in 2007 to 40.5% in 2009. The number of respondents who target their software towards Windows remained steady in 2010 at 41%.
One could attempt to explain the trend towards Linux as a movement of Windows platform developers away from the Eclipse community while simultaneously seeing gains in the number of Linux developers joining the community. The popularity of .NET over Java in recent times is one hypothesis to consider. However this explanation appears to be flawed on the basis that the target platform market share for Windows and Linux remained steady from 2009 to 2010 while a large number of developers switched from using Windows to Linux as their primary development environment.
The use of distributed version control systems has also increased in the past year. Git’s usage has increased from 2.4% to 6.8% and Mercurial’s usage has increased from 1.1% to 3%. These gains have come at the expense of CVS, down from 20% in 2009 to 12.6% in 2010. Subversion is still the most widely used version control system with 58.3% market share amongst developers surveyed (up slightly from 57.5% in 2009). It’s worth referring back to a blog post about version control system integration within MantisBT to note that the SourceIntegration plugin allows for easy integration of version control systems with MantisBT. We already have Git and Subversion integration in place and Mercurial integration will be ready shortly. For the 13% of survey respondents who use other version control systems, writing a SourceIntegration plugin for MantisBT is quite simple as the common framework is already in place. The removal of the legacy CVS integration feature from 1.3.x should have limited impact on MantisBT users due to the rapidly diminishing market share of CVS. Developing a CVS SourceIntegration plugin is quite straightforward anyway for developers who are still lagging behind on the VCS front.
Also worth noting from the survey results is that developers are widely split on which development methodology to use. 25% of developers surveyed don’t identify themselves as using a formal development methodology. The most popular development methodology used by respondents is Scrum at 15.4%, followed by Iterative Development at 10.9%. It’s interesting to see that the next largest response was “Don’t know” at 7.8%, potentially indicating that many developers lack formal education in the field of software engineering. Some of the remaining development methodologies in use by respondents include Agile (6.4%), Extreme Programming (6.1%), Test Driven Development (5.2%) and Waterfall (5.1%).
In terms of a change management system such as MantisBT, it’s important that the system can be adapted and configured to work within the development methodologies of each development team. Developers don’t want to be forced into using formal development methodologies. When a formal development methodology is used, it’s quite likely that it’ll need to be customised heavily for each development team and project. MantisBT has a very strong focus on being highly customisable. This level of customisability was further enhanced with the 1.2.0 release of MantisBT earlier this year adding plugin support. A wide array of plugins have already been developed to address the needs of individual MantisBT users. Examples of plugins that are likely going to be in high demand for MantisBT users are project management tools (charts, reports, etc) for Scrum and Agile methodologies as well as patch review functionality and test system integration for methodologies such as Test Driven Development.
I encourage you to have a look through the detailed survey responses (the raw data is also quite useful) for more insights into the current state of software development and the trends which are most interesting with respect to the MantisBT project. Previous data is available for the 2009 survey as well as the 2007 survey. Perhaps you’ll find some interesting trends that I’ve missed? Maybe you will find some inspiration to comment on your ideas for the future direction of the MantisBT project?