The world of digital services moves fast. Really fast. Every day, twice a day (except on Tuesdays), Facebook quietly updates its website and dynamic elements of the apps. Each of those iterations can contain anywhere from 30 to 300 cherry-picked changes. On Tuesdays, the team does a single shipment of a branch, a large release containing anywhere between 4,000-6,000 changes.
Facebook is obviously on the extreme side, but almost all organizations strive to achieve faster, leaner and better release management. To do this, businesses need a combination of lean/agile processes, integrated toolchains and operations (DevOps). Generally, we believe most organizations should be able to achieve a monthly release schedule and truly efficient teams.
To tackle these challenges, DMI started a R&D project in 2011 to improve the efficiency of mobile software development.
DMI Global Toolchain
The DMI Global Toolchain (GTC) is an integrated set of business and development tools assembled to enable the efficient and successful planning and completion of software development projects. GTC is used internally for development and licensed out to customers to improve speed, reliability and quality of development. It is either provided as a part of our standard project pricing or licensed separately.
Agile software development is a huge challenge not just in methodology but in planning, managing the backlog, structuring code, testing code during development, compiling and releasing code and managing version control. In mobile development, this is even more complicated due to the myriad of technical platforms and coding languages that need to be supported. A few examples include Java backend development, .NET backend development, HTML5 web development, databases, iOS, Android, Windows Phone and hybrid technologies.
The objective of GTC is to make this easier by providing an end-to-end tool for all the aspects of mobile (and web) development. It uses a combination of open source and proprietary technology to get the most out of both worlds. GTC includes more than 15 integrated tools including PM tools, development tools, repositories, build automation, test automation, code review, static code analysis, automatic deployment and more. The following are some of the main components:
- Gradle (Ant) / Xcode
GTC has now been used by 120+ customers and over 400 projects and has included delivery of services reaching millions of users. Over and over again we’ve proven that it helps us to deliver faster and with a greater degree of agility.
While benchmarking GTC projects vs. those not using GTC we found the following advantages:
- 15-20% shorter development times
- 34% reduction of blocking bugs in the final release
- Release cycles reduced to as little as 3 weeks versus standard of 7-8 weeks for other projects
To stay ahead, DMI needs to constantly develop and improve our tools in all of these areas. One of the key advantages of GTC is that we combine the best-of-breed tools available on the market and optimize them for mobile development.
How Do You Get Access to GTC?
GTC is available to any DMI customer including commercial and government services. The tools and processes can be set up as a dedicated solution for the organization or leveraging DMIs cloud-based managed service.
The Team Behind GTC
The team that worked on the project consists of a combination of leading mobile software development experts and resources across our global offices. A lot of people have contributed over the last years, but significant contributions have been made by the following persons:
Daniel Karlstrom – EVP of DMI and PhD in Software Engineering Processes with 15+ years’ experience
Ola Sandstrom – Former CTO of DMI with 15+ years of Software Development experience
Mattias Levin – Former Head of Software Development with 15+ years of Software Development experience
Jose Avila – Global Operations Manager with 10+ years of IT operations experience
Philip Buntine – DMI VP of Engineering and Services with 15+ years’ experience from developing complex systems at Cathay Pacific, Bank of Australia and various other institutions
Artemiy Lysykh – DMI VP of Solutions Architecture with 15 years’ experience of software development, solution architecture and DevOps
Kevin Page – DMI Associate Solution Architect with 10 years’ experience of software development and solution design.
Sophea Mak – DMI Software Development Manager
A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC, binutils and glibc (a portion of the GNU Toolchain). A toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language, such as C++.
Generally, DevOps tools fit into one or more of these activities, which supports specific DevOps initiatives: Plan, Create, Verify, Pre-prod, Release, Configure, and Monitor.
Chief Innovation Officer