{"id":342,"date":"2026-10-13T17:21:03","date_gmt":"2026-10-13T17:21:03","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2013\/06\/18\/ibm-acquires-urbancode\/"},"modified":"2026-10-13T17:21:03","modified_gmt":"2026-10-13T17:21:03","slug":"ibm-acquires-urbancode","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/ibm-acquires-urbancode\/","title":{"rendered":"IBM Acquires UrbanCode (2013): What the ARA Deal Meant for DevOps Teams"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Originally published on 2013-06-18; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post covers IBM\u2019s announcement that it acquired UrbanCode, and why that mattered to organizations building continuous delivery capabilities. If you are a DevOps engineer, release manager, or platform lead, this rewrite helps you separate <strong>announcement claims<\/strong> from <strong>implementation realities<\/strong> and apply the lessons to modern release automation decisions.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2013\/06\/ibm-acquires-urbancode.png\" alt=\"IBM acquires UrbanCode announcement image\" width=\"600\" height=\"400\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What was announced<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original post quotes a message from Kristof Kloeckner at IBM announcing the acquisition of UrbanCode Inc. The stated rationale was to add UrbanCode\u2019s application release automation (ARA) capabilities to IBM\u2019s broader DevOps portfolio, with emphasis on faster and more frequent software delivery across mobile, cloud, analytics, and traditional applications.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Reduce delivery cost by lowering manual effort, wait time, and rework.<\/li><li>Improve time to market by increasing release frequency.<\/li><li>Reduce release risk by improving quality and compliance in deployment processes.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The original text also includes vendor-stated outcome claims (for example, deployment time improvements and annual savings figures). Treat those as <strong>announcement-era claims<\/strong> that require independent validation in your own environment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why UrbanCode fit IBM\u2019s DevOps strategy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At a practical level, ARA addresses a common enterprise bottleneck: teams can build and test quickly, but releases still stall in promotion, approvals, environment coordination, and manual deployment steps. By automating those handoffs, an ARA platform can make release flow more predictable, auditable, and repeatable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is the strategic fit implied by the acquisition: combining development and test acceleration with stronger deployment orchestration across environments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Typical ARA delivery workflow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The workflow below represents the type of release path organizations usually target when adopting release automation.<\/p>\n\n\n\n<pre class=\"mermaid\">\nflowchart LR\n    A[Developer commit] --> B[Build and unit tests]\n    B --> C[Package artifact]\n    C --> D[Deploy to test]\n    D --> E[Automated checks]\n    E --> F{Approval gate}\n    F -- approved --> G[Deploy to production]\n    F -- rejected --> H[Fix and rerun]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Announcement points vs engineering interpretation<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Original announcement point<\/th><th>Engineering interpretation<\/th><th>What to measure internally<\/th><\/tr><\/thead><tbody><tr><td>Driving down cost<\/td><td>Automate repetitive release tasks and reduce manual handoffs<\/td><td>Engineer hours per release, failed deployment rework time<\/td><\/tr><tr><td>Speeding time to market<\/td><td>Increase release frequency by standardizing promotion steps<\/td><td>Lead time for changes, deployment frequency<\/td><\/tr><tr><td>Reducing risk and improving compliance<\/td><td>Add gated workflows, audit trails, and repeatable procedures<\/td><td>Change failure rate, rollback rate, audit evidence completeness<\/td><\/tr><tr><td>Continuous release and deployment<\/td><td>Move from ad hoc release execution to pipeline-driven promotion<\/td><td>Release predictability and variance across environments<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Example: release automation pattern (illustrative)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This example is tool-agnostic and intended to show the <em>shape<\/em> of an automated release process with verification and controlled production promotion.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript language-yaml\">stages:\n  - build\n  - deploy_test\n  - verify\n  - approval\n  - deploy_prod\n\n<span class=\"hljs-attr\">variables<\/span>:\n  APP_NAME: payments-service\n  <span class=\"hljs-attr\">VERSION<\/span>: <span class=\"hljs-number\">1.8<\/span><span class=\"hljs-number\">.4<\/span>\n\n<span class=\"hljs-attr\">deploy_test<\/span>:\n  script:\n    - .\/scripts\/deploy.sh test <span class=\"hljs-string\">\"$APP_NAME\"<\/span> <span class=\"hljs-string\">\"$VERSION\"<\/span>\n\n<span class=\"hljs-attr\">verify<\/span>:\n  script:\n    - .\/scripts\/smoke-test.sh test <span class=\"hljs-string\">\"$APP_NAME\"<\/span>\n  <span class=\"hljs-attr\">allow_failure<\/span>: <span class=\"hljs-literal\">false<\/span>\n\n<span class=\"hljs-attr\">deploy_prod<\/span>:\n  script:\n    - .\/scripts\/deploy.sh prod <span class=\"hljs-string\">\"$APP_NAME\"<\/span> <span class=\"hljs-string\">\"$VERSION\"<\/span>\n  <span class=\"hljs-attr\">when<\/span>: manual<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\">#!\/usr\/bin\/env bash<\/span>\nset -euo pipefail\n\nenv=<span class=\"hljs-string\">\"$1\"<\/span>\napp=<span class=\"hljs-string\">\"$2\"<\/span>\nversion=<span class=\"hljs-string\">\"$3\"<\/span>\n\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Deploying ${app}:${version} to ${env}\"<\/span>\n.\/release-cli deploy --env <span class=\"hljs-string\">\"$env\"<\/span> --app <span class=\"hljs-string\">\"$app\"<\/span> --version <span class=\"hljs-string\">\"$version\"<\/span>\n.\/release-cli verify --env <span class=\"hljs-string\">\"$env\"<\/span> --app <span class=\"hljs-string\">\"$app\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In production, teams usually add stronger policy checks (change windows, separation of duties, and rollback automation) around this baseline pattern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Source link and attribution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This article is based on the original DevOpsSchool post quoting IBM leadership and linking to IBM\u2019s announcement. Source: <a href=\"http:\/\/www.ibm.com\/press\/us\/en\/pressrelease\/40820.wss\">IBM press release<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best practices when evaluating ARA platforms<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Validate vendor claims with your own baseline metrics before and after rollout.<\/li><li>Prioritize repeatability and auditability over one-off deployment speed gains.<\/li><li>Design clear promotion gates between environments, including automated verification.<\/li><li>Ensure rollback paths are tested, documented, and fast enough for incident response.<\/li><li>Plan integration scope early: CI, artifact repositories, ticketing, and change controls.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>IBM\u2019s 2013 UrbanCode acquisition was positioned as a major boost to enterprise DevOps and application release automation. This update explains what was announced, how ARA changes delivery flow, and what engineering teams should validate in practice.<\/p>\n","protected":false},"author":1,"featured_media":3735,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[2271,2273,2270,2275,2278,2276,2277,2272,2274],"class_list":["post-342","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorised","tag-acquires","tag-acquisition","tag-ibm","tag-ibm-urbancode","tag-ibm-urbancode-acquisition-pressrelease","tag-ibm-urbancode-deploy","tag-pressrelease","tag-urbancode","tag-urbancode-acquisition"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=342"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":79212,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/342\/revisions\/79212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3735"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}