News combit Dev Blog

What Our ALM Toolchain Looks Like

Posted: Wednesday, January 13, 2016 | 2 comment(s)
I'd like to take the time after the release of LL21 to give you a short tour of what our ALM tool chain looks like. You probably have the same needs and challenges in your everyday jobs that we have. It was a process of trial and error until we arrived at our current configuration. While we are happy with it for the time being, it's always good to keep an eye on new stuff – so this is the current state of development as of 01/2016 :-).

The first and most important thing for any developer is a version control system, of course. If you don't use one start using one today – seriously. This is an absolute no-brainer for any serious development.

We used to use SourceSafe in the early days (hello, exclusive lock) but soon switched over to Subversion. Main reasons were a healthy ecosystem of 3rd party tools, excellent integration into many other solutions (e.g. via the comprehensive command line interface) and an easy to handle configuration. While we also evaluated TFS, Git and Mercurial, we decided to go with SVN. We don't have distributed teams and no one really works offline for more than a couple of days (which would all be perfect reasons to use Git). At the time of decision, TFS was quite hefty to install and administrate (which has become way easier since then). Basically, this is not a religious question for me, we just decided for the tool that did the job good enough and was easy to setup and handle. We have never regretted the decision, though.

We're using the excellent VisualSVN server, kudos to the guys at VisualSVN Ltd. The server really rocks, it is dead easy to configure and administrate and updates have never been a pain. As clients, we use both TortoiseSVN for shell integration and AnkhSVN for Visual Studio integration.

Next comes an issue tracker – indispensable for a successful team to work. Any issue needs to be tracked with information on repro steps, binaries or test projects, references to other tickets, changesets etc. This is a long-term wedding, as (at least to my knowledge) there is no commonly accepted database schema for issue trackers. Every system uses a proprietary format and if you want to still be able in a couple of years to find out what a certain ticket was all about you better have the same system still up and running or undergo a most of the time painful migration process. After evaluating many different solutions, we decided to go with Redmine. Again, it has a very healthy 3rd party ecosystem with lots of plugins available, is open sourced, so adaptions can be easily made as long as you speak Ruby. It fully integrates with SVN and there is a great reporting solution available for it ;-): Redmine Reports.

The final chain link is the CI Server. We use TeamCity from JetBrains s.r.o. It is a breeze to install and supports both Visual Studio and batch command line compile steps. Most importantly, it allows the integration of our test suite and installer into the build process. I've briefly described the tests in an older blog post.

So this is the first thing everybody checks in the morning:

The Look of new ALM toolchain

All tests validating, all pending changes easily visible from one central location that can be accessed by anyone on the team, full information on issues, changesets and fixed tickets at one glance in your browser – this is just great stuff.

We're absolutely aware of our responsibility – due to the "snowball" effect of components, any change we make will sooner or later be applied to thousands of applications serving literally millions of end users. Our sophisticated tool chain together with a well-documented QA process helps a great way to release changed DLLs with confidence. The first service pack for LL21 is due next week ;-).

Author: Jochen Bartlau
Head of Development List & Label

Jochen Bartlau leads the development at combit as Managing Director. He's a Microsoft .NET enthusiast driving innovation & agile project management. The mobile devices geek who used to be a physicist in his first life loves to spend his spare time with his family.


combit Development BlogRSS
What’s this blog for?
A place to share updates about the ongoing development of our products. General musings on the software industry included.
January 2021 (1)
December 2020 (2)
November 2020 (1)
October 2020 (2)
September 2020 (1)
August 2020 (2)
July 2020 (1)
June 2020 (1)
May 2020 (2)
April 2020 (2)
March 2020 (2)
February 2020 (1)
January 2020 (1)
December 2019 (1)
November 2019 (2)
October 2019 (2)
September 2019 (2)
August 2019 (2)
July 2019 (2)
June 2019 (2)
May 2019 (1)
April 2019 (0)
April 2019 (1)
March 2019 (1)
February 2019 (1)
January 2019 (1)
December 2018 (1)
November 2018 (2)
October 2018 (4)
September 2018 (4)
August 2018 (2)
July 2018 (2)
June 2018 (2)
May 2018 (1)
April 2018 (1)
March 2018 (1)
February 2018 (2)
January 2018 (1)
December 2017 (1)
November 2017 (2)
October 2017 (3)
September 2017 (3)
August 2017 (2)
July 2017 (2)
June 2017 (1)
May 2017 (2)
April 2017 (1)
March 2017 (1)
February 2017 (1)
January 2017 (2)
December 2016 (1)
November 2016 (1)
October 2016 (4)
September 2016 (5)
August 2016 (2)
July 2016 (2)
June 2016 (3)
May 2016 (2)
April 2016 (3)
March 2016 (3)
February 2016 (1)
January 2016 (2)
December 2015 (2)
November 2015 (1)
October 2015 (4)
September 2015 (5)
August 2015 (2)
July 2015 (2)
June 2015 (2)
May 2015 (1)
April 2015 (2)
March 2015 (1)
February 2015 (1)
January 2015 (1)
December 2014 (2)
November 2014 (1)
October 2014 (1)
September 2014 (2)
August 2014 (1)
July 2014 (2)
June 2014 (1)
May 2014 (2)
April 2014 (1)
March 2014 (2)
+1 800 256 3608 (toll-free North America only)