Tag Archive for 'Agile'

That Was the Year that Was – uberSVN & All That…

I suspect that I will always remember 2011 as the year when the curtain came down on one of the true greats – Steve Jobs. Great, not just in my world of Silicon Valley techies, but great for just about everyone else on the planet. Even though most of us never knew him we feel like we must have. We seem to use his stuff just about every day.

Apple’s success has had and will continue to have a massive impact on the design of computer systems and products. When we were thinking about uberSVN the very first thought we had was about the relationship between the product and the user. Ten years ago I don’t think that would have been the case. I guess you could call it ‘the pre-iPod days’ (the first iPod was released in October 2001 and was cast as “1,000 songs in your pocket”) before that, according to Jobs, music players were either “big and clunky or small and useless”.

Our customers told us that ‘old fashioned’ ALM was big-and-clunky; and they’re probably right! In many cases they were moving away from these ‘dinosaurs’ to a best-of-breed approach. Like Subversion for source control, JIRA, Redmine or Trac for defects & wiki, Review Board for peer code reviews, and so on.

When we launched uberSVN in April I talked about empowering users by giving them choice. Freedom to choose any combination of ALM tools that best fit the business requirements be it price or functionality, open source or closed source. How’s it doing? In short – amazingly well! To our delight it’s being used everywhere from Fortune 100 companies to the US Senate. I even got my 11 and 12 year-old children to install it on their MAC books – it took them only 5 minutes! Not sure how much use they get out of Subversion – but they did get double pocket money for their efforts! That really is the point of uberSVN. We have made an extremely powerful but complex product extremely easy to use and install by anyone and I think we succeeded in that regard.

We quickly followed-up with uberApps. Another ‘first of a kind’ product with an enterprise AppStore for software development tools. Now, with just a single click, it is possible to install a build & test product like Jenkins or even buy external QA resources from crowd-sourcing vendor uTest. This is another step in making ALM both usable and useful. Anyone, and I mean anyone can deploy these apps without special knowledge, experience or skills.

These products were developed in my hometown, Sheffield. It was our Christmas party there the other week and it really was astonishing to see how quickly we have grown. From a small office where we would “see what happens” we have grown to almost 40. There was a lot of laughing behind hands from my ‘friends’ from the south and lot’s of “ooop north” jibes. Well, in between wearing flat caps and racing whippets, the Sheffield team delivered an award-winning piece of software. uberSVN won 2 awards in the first year of its launch and we have seen almost 50,000 downloads.

Apache Subversion also continues to grow. Subversion is still the ‘King’ of source code management. More traditional Enterprises are turning away from old-fashioned / big-and-clunky ALM for Subversion. And SVN 1.7 (also released this year) has delivered a much-needed performance boost. Throughout the year I have been embroiled in various spats with the Giterons (Git fundamentalists who believe in the inerrancy of Linus) but only this month I have spoken to 3 or 4 companies that tried Git but had to pull it out due to various-and-sundry issues. Much more on that early in the new year, when we might just have a solution for those looking to use Git as more of a client to a central SVN server of record…

There was also some politics earlier in the year when one of our competitors used some pretty underhanded tactics to besmirch our good name. Unfortunately for them it worked quite well in our favor. We are, and always have been a big supporter of the ASF (we are even the only Subversion contributor to also be a sponsor). In fact, at the time of writing, we are in the process of proposing a new project for the ASF incubator. Again, lot’s more on that in the new year.

We also took some steps earlier in the year to solidify the Subversion community by acquiring SVNforum.org. I think we have done a pretty good job of updating the site software, Subversion Liveeradicating spam and generally making the site a useful, free resource for every SVN user. As part of our efforts for the SVN community we also hosted the first Subversion user conferences. Audiences in San Francisco, Boston and London attended “Subversion Live”. We are hosting Subversion Live again later in the year with a extended program.

So 2011 was a great year here at WANdisco but 2012 should be even better. We have several major product launches planned including a new (free) open source defect tracker / wiki, uberSVN Team, uberSVN Enterprise and a solution to the Git/SVN conundrum. In the words of ‘Potato Claus’ (the lead character in my kids’ favorite book from a few years ago) may I take this opportunity to wish everyone Happy Christmas, Kwanzaa, Chanukah, Winter Solstice, and also local and regional winter holidays and celebrations.

Here’s a rather nice pictorial representation of 2011 from a WANdisco perspective (click to enlarge):

Making Subversion Agile

It’s been ten years since the Agile Manifesto was published, and agile is still a buzzword for the software industry. When employed correctly, agile practices can save on costs by promoting flexible, incremental development, a continuous integration environment and effective communication between team members, and between the development team and the customer. Agile practices can help organizations avoid unplanned rework and QA, and ultimately hit deadlines. Crucially, the Agile Manifesto focuses on the realities of software development, rather than on documentation, plans, contracts, processes and tools. The values that form the cornerstone of the Agile Manifesto are:

  • Individuals and iterations over processes and tools – find the tool that allows your particular team to implement a successful workflow, regardless of whether that’s a high-tech or a low-tech approach. Selecting the wrong tool can distract developers from every agile project’s ultimate goal: delivering value.
  • Working software over comprehensive documentation – documentation is important, but in agile, working software is the ultimate goal, and producing exhaustive documentation should not get in the way of that. It’s all about finding the right balance.
  • Customer collaboration over contract negotiation – regular contact with customers increases the chances of discovering problems early on, before they begin to snowball out of control.
  • Responding to change over following a plan – plans are subject to change, as new information, requirements and challenges emerge. Agile teams need to be able to respond to these changes.

Also worth considering when adopting an agile approach, are:

  • Feedback – constantly evaluate your working process, to ensure you are adding the most possible value. This is essential in fast-moving teams.
  • Have working code at all times – executing application code is the best sort of feedback on the health of a project. In addition, a broken build forces teams to delay sharing changes, which ultimately leads to riskier integrations. Nothing slows down a team like a broken build.
  • Continuous integration environment – frequent, ongoing quality control over the traditional practice of applying quality control only after development is complete. This typically reduces the time taken to deliver software.
  • ‘Everyone is responsible’ – it’s important to maintain a culture where everyone is responsible for maintaining working code. A broken build should be an all-hands-on-deck task.
  • Incremental development – frequent integration, testing and evaluation of code is crucial to agile development, allowing problems to be detected and resolved earlier, and helping to maintain working code.

An effective SCM solution is a crucial factor in becoming agile, and there are several options open to organizations who want to implement a Subversion-based SCM solution:

1) Central Subversion Server

A central Subversion server does have the advantage of all developers working from a single, consistent copy of the repository. There are also advantages from an administrative perspective, because there is only one server at a single site to worry about. However, as the number of remote sites and users grow, the coordinated performance between the central server and remote locations can become an issue. This encourages developers to checkout infrequently, which makes continuous build integration impractical as the latest changes aren’t available from all development sites. Ultimately, you only uncover merge conflicts and other problems when remote users finally commit their code, and this has to be addressed manually, often requiring significant, unplanned rework and QA.This can cause deadlines to slip. The single point of failure inherent in this approach, prevents users from accessing the single central repository when the network connection is lost, the server crashes, or it has to be taken down for routine maintenance.

2) Proxy Server

Proxy server, master/slave solutions such as svnsync do provide local access to read only copy with the master, which partially solves the access and availability issues for remote developers, but commits and other writes can only be performed against the master. In some respects, proxy server solutions have the same single point of failure and latency issues, as a single server architecture. Sites can often end up working with stale versions of source code files, due to time lags between changes being written to the master repository and those being replicated to the read-only slave. Consequently, you end up with much of the same merge conflicts and broken build issues encountered with a central server architecture. The other factor to take into consideration, is that with a proxy server solution there’s no built-in capability for catching an error and retrying the failed transaction.

3) Subversion MultiSite

WANdisco’s Subversion MultiSite solution combines Apache Subversion with value-added functionality designed to help teams stay agile:

  • No single point of failure – all repositories are fully readable and writeable, and remote site developers aren’t dependent on the centralized build team if they need to do a build and test. This eliminates the potential bottleneck of a single point of failure.
  • Automated failover - allows individual servers or an entire site to be taken offline for planned outages without interrupting user access, making full 24-by-7 operation possible.
  • Built-in continuous hot backup and automated recovery – Replication is triggered automatically whenever a user connected to any server issues a write command. The commit is then propagated out to any other sites, ensuring that distributed repositories are kept continuously in sync. Whenever a server comes back online following an outage, it automatically resynchronizes with the other servers in the cluster. Third party solutions aren’t necessary for backup recovery, and the risk of data loss and extended downtime associated with manual recovery are eliminated.
  • Continuous build integration – MultiSite’s peer-to-peer architecture, unique active-active replication capability, and functionality for keeping distributed Subversion servers in sync, provides the support necessary to maintain that all-important continuous build integration.
  • Run builds at every site immediately – eliminates the time wasted while waiting for a build to happen in a different time zone.
  • LAN speed performance – users at every location experience LAN-speed performance for both read and write operations.
  • Rapid identification of problems – thanks to the Active/Active Replication technology, merge conflicts and other problems get caught and fixed as they occur. This is essential to recreate the same development experience that exists when everybody is in the same location.

For more information on the benefits of Subversion MultiSite, check out Forrester Research’s Total Economic Impact study of a Global Fortune 500 company using Subversion MultiSite.

March of the uber

Admin Console - LDAP

So, we thought it would be good to give you a ‘broad stroke’ update on what’s going on in the world of uberSVN. Firstly, you’ll probably have noticed that another update recently appeared; a modest interim fix that sorts out some niggles encountered by Subversion 1.7’s early adopters. If you didn’t catch the update, here’s what changed:

uberSVN – Release 11.11

What’s New

[Portal] It’s no longer possible to browse to cached screens without re-authorization. (ESVNB-2157)

[Portal] We’ve cleaned up the layout of the uberSVN login screen. (ESVNB-2265)

[uberAPPS] We’ve changed our back-end server to use the C3P0 connection pooling library to improve the handling of long running connections to the database. (ESVNB-2267)

What’s Fixed

[svnSWITCH] We’ve fixed an issue where running with Subversion 1.7 stopped the repository browser from working. Also fixed is the problem with repository browsing that occurred if you switched to Subversion 1.7 when using SSL. (ESVNB-2468) (ESVNB-2473)

[svnSWITCH] Windows XP users are now able use the SVNswitch tool. (ESVNB-2471)

[svnSWITCH] Activating Subversion 1.7 no longer stops commit activity from being reported on the dashboard or repository activity stream. (ESVNB-2472)

The bigger picture

This is the 7th update in the 7 months since our first release – from that you can probably work out the release cycle that we’re aiming for, and so far hitting. This release tempo should also tell you that there’s been no slow-down here at WANdisco’s Sheffield-based software forge – indeed, if cities had middle names, Sheffield’s might be ‘Industrious’, and it’s hard for a developer of software tools to not be inspired by a city that unexpectedly became the world’s supplier of industrial tools.

If that allusion to Sheffield’s heritage seems like big talk from a small “upstart”, maybe it’s because we know we’re on to something and we’ve got the potential to change the game, if we can keep on course, and keep on delivering regular improvements. To this end we’re very happy with the results we’ve got from an Agile approach. Keeping your releases bite-sized but regular forces you to keep the focus on stuff that works rather than trying to build Rome in a day. Of course, in an office with a giant slide, who needs to ride the waterfall?

Now we’d concede that this might give the impression that the big changes are never coming, in fact you can be sure that they are. Our Suggestion Website has given us an invaluable insight into what many of you like about uberSVN, but more importantly it tells us what holes we need to fill. Full LDAP integration, Defect tracker, anyone? We are hard at work on plugging both into uberSVN, as well as a few other things-that-you-want. Of course, there are lots of features and capabilities that fall outside the scope of what we can build ourselves, we’ll still be able to deliver these through uberAPPS, which will soon benefit from another round of enhancements, and some cool new APPS for you to buy

It’s your turn

For us, uberSVN’s social coding element is important because software development, at its best, should be a conversation – sometimes, an argument. So we’ll ask again, keep asking us for stuff, most definitely keep telling us what we’re doing wrong. Most of all, keep talking.

Not given uberSVN a try? It’s here, it’s FREE, and so easy to install your kids could do it - in fact, ours did. http://www.ubersvn.com/

Total Economic Impact of Subversion MultiSite

It’s been ten years since the Agile Manifesto was published, and Agile is still a buzzword for the software industry, but Subversion’s single point of failure can be a problem for distributed teams looking to implement agile practices. Subversion MultiSite combines Subversion with WANdisco’s value-added features, which are particularly useful for keeping distributed teams agile. Crucially, Subversion MultiSite removes the potential bottleneck of Subversion’s single point of failure. With Subversion MultiSite, all repositories and fully readable and writeable, and remote developers aren’t dependent on a centralized build team.

Other key benefits of Subversion MultiSite include:

  • Automatic failover – individual servers or an entire site can be taken offline for planned outages, without interrupting user access. Of course, this automatic failover also applies to unplanned outages.
  • Built-in, automatic and continuous hot backup – as each server is a mirror of every other, and they are kept continuously in sync, recovery is automatic. As soon as the failed server comes back online, Subversion MultiSite retrieves all the transactions committed to the other servers in the Subversion cluster, during the outage. Whenever a server, or an entire site fails, users won’t notice and administrators won’t have to do anything – failover is truly transparent.
  • Ability to run builds at every site immediately – eliminates time wasted while waiting for a build to happen in a different time zone.
  • LAN speed performance – users at every location experience LAN-speed performance for both read and write operations.
  • Synchronization of all servers in a cluster – whether they’re located over a LAN or a WAN. This is achieved by replicating changes made against one server, to all the other servers, in real-time.
  • No additional hardware required – Subversion MultiSite is typically installed on the same server as Subversion or Apache, at each site.
  • Eliminates the need for disk mirroring solutions – no administrator intervention is required to achieve recovery.
  • Allows distributed systems to scale to support new sites/users – new nodes can be added to a distributed system, or existing nodes can be removed without interrupting the operation of the remaining nodes.

But, what is the actual economic impact and potential return on investment, for enterprises deploying Subversion MultiSite? Our latest report, illustrates the financial impact on a company employing Subversion MultiSite to replicate distributed Subversion servers. The report looks at the idle time saved, changes in bug fix rate, and the general benefits the company experienced from deploying Subversion MultiSite. The report employs the four fundamental elements of TEI in evaluating Subversion MultiSite:

1) Costs and cost reduction.
2) Benefits to the entire organization.
3) Flexibility.
4) Risk.

uberSVN Updated


uberSVN evolves!
In this first update we’ve fixed some bugs, offer more flexibility with authentication/authorization and added LDAP integration. Check out the details:

What’s New

  • uberSVN can now be integrated with an external LDAP/Active Directory service allowing the management of Subversion users to be centralized.
  • Added the option of using externally managed htpasswd and authz files, giving you more control over authentication and authorization.(ESVNB-1703)
  • Improved Apache error pages have been added. (ESVNB-1696)
  • Improved support for adding existing repositories to uberSVN
  • Numerous enhancements to look and feel

What’s Fixed

Included are more then 30 bug fixes, the most significant are listed below:

  • There’s now improved support for Multibyte (Cyrillic) characters.  Слалкий!
  • The message text that alerts you to the need for an uberSVN restart is now clickable, more easily triggering the required restart. (ESVNB-1442)
  • Improved the warning message that appears during a reinstallation of uberSVN. It now confirms that it is safe to continue installation if you are sure that the previous installation of uberSVN has been uninstalled. (ESVNB-1664)
  • Fixed a problem that stopped the SSL port from being updated once uberSVN was set to run using SSL. (ESVNB-1767)

uberSVN Documentation: http://docs.ubersvn.com/
Download uberSVN: http://www.ubersvn.com/download
Need professional Subversion support? http://www.ubersvn.com/support
Enterprise Subversion:  http://www.wandisco.com/subversion/multisite

How to Cut Development Time in Half, Improve Build Performance by 500% and Eliminate Downtime

SSP, a leader in software applications for insurance and financial services, with developers in the UK, Australia and South Africa did it by implementing Subversion WAN Clustering (MultiSite) .  As soon as developers at one site commit changes they’re available everywhere at LAN-speed. SSP’s developers in the UK, Australia and South Africa checkout and commit changes to the same files simultaneously and have immediate access to each other’s work.  Merge conflicts and other problems that weren’t discovered for days or weeks until it was time to create a build, are caught and fixed when they happen.  The best talent for a project regardless of location can work together as one agile, virtual development team to get the job done faster.  The net result is that the time SSP has to spend on QA and rework has gone down so dramatically that development cycles have been cut in half.

Now that every developer has instant access to the latest changes regardless of where they came from, builds can be created and tested at each site in less than a day, instead of waiting up to 5 days for a central team to complete their development work and schedule in builds for other sites.

SSP has also been able to go 24-by-7 with no downtime because Subversion WAN Clustering has turned their distributed Subversion servers into mirrors of each other. When one server goes down for either a planned or unplanned outage, users failover to another site and keep working. When a server comes back online it recovers automatically, grabbing all of the changes that happened at other sites while it was offline.

Get SSP’s full story to learn more about how all of this was accomplished.