Since teams started creating applications and services, significant challenges have continually hindered effective delivery and diminished development team’s reputations. Common challenges include:
- Long IT solution lead times leading towards an inability to capitalize on business opportunities
- Complex and disjointed development processes hindering IT agility and degrading ability to meet business demand
- Inaccurate project forecasts, non-repeatable processes, and rudimentary performance metrics leading to a persistent Business-IT perception gap
- Perennial tension between management compliance mandates and development approach, which prevents improving app delivery
How do we change development processes, development tooling, and run-time infrastructure to decrease time to market, streamline development processes, deliver on-time and budget, and meet compliance mandates?
To improve software delivery performance and effectiveness, teams need automation, governance, architecture best practices, and increased team collaboration. Unfortunately, improving IT performance and effectiveness is not easy. Outdated infrastructure, processes, and disjointed tooling impedes improving application delivery.
Application development tooling must continually evolve and increase team productivity. Figure 1 below illustrates the historical evolution from command line compilers and linkers towards development forges. Development Forges unify application development tools and promote collaboration, but they are often design and development time environments disconnected from run-time infrastructure. The next evolutionary step is Cloud DevOps Factories.
Figure 1. Dev Tools Evolution
A Cloud DevOps Factory provides a Cloud-based, automated, DevOps approach to agile application design, delivery, and visibility. Key goals reached by using a Cloud DevOps Factory include:
- Simplifying the development experience by delivering on-demand self-service and Cloud provisioning. Seamlessly integrate development and operations activities including continuous build, continuous integration, continuous test, and continuous delivery.
- Obtaining governed, iterative lifecycle management across hybrid clouds and composite applications by providing architecture templates, application platform services, and surfacing IT business performance metrics and analytics.
- Build a digital business ecosystem that enables a long tail of application development and fosters cross-organization development collaboration.
A Cloud DevOps Factory must include four distinct components (see Figure 2):
- A command dashboard (e.g. AppCommand) delivering visibility into development project activities and status
- A development forge integrating development lifecycle activities, deployment activities, and development asset repositories (e.g. source code management, issue tracking, project management, requirements management, and test execution logs)
- A Cloud application Platform as a Service (aPaaS) delivering on-demand access to application run-time environments (i.e. development, test, and production) and simplifying project provisioning.
- An Application Store (e.g. AppStore) promoting the application solution and enabling self-service subscription to the application.
Figure 2: Cloud DevOps Factory Components
A Cloud DevOps Factory unifies Open Source DevOps, Agile, and Cloud Tooling to deliver a consistent, automated, governed, and unified application development process. By leveraging popular open source products and applying Cloud self service provisioning, multi-tenancy, and elastic scalability, a Cloud DevOps Factory solution creates on-demand access to development and run-time infrastructure. Figure 3 illustrate multiple development activities and open source development tooling projects integrated through a Cloud DevOps factory:
Figure 3: Open Source DevOps, Agile, and Cloud Tooling
Cloud DevOps Factories relying on open source projects preserve team investment in development and operations tooling. For example, DevOps personnel familiar with Chef or Puppet can re-use existing recipes and templates within the factory environment.
A Cloud DevOps Factory helps reduce time to market, facilitate regulatory compliance, and increases re-use and visibility. When starting a project, a Cloud DevOps Factory overcomes challenging logistics and enables rapid access to server and application resources within Development, Test, and Production environments. The factory quickly provision Software Development Life-Cycle (SDLC) tools (e.g. Issue Tracker, Source Code Repository, Test Harness), effectively configure governance workflow best practices, and allows a team to select an appropriate application platform. The factory facilitates best practice workflow and productive collaboration with the right people, at the right time.
Teams can define best practice workflow to enforce regulatory compliance. Enterprise governance stakeholders may configure an application approval process that includes review gates, approval checklist items, and automated test execution. Because the Cloud DevOps Factory automatically provisions design-time and run-time assets, the tool can rapidly deploy projects into a pre-certified software design, development, and delivery environment that ensures use of approved assets (e.g. library, API, and services) and shares standard frameworks.
By delivering development dashboards and standard, approved application building blocks, the Cloud DevOps Factory reduces technical debt, minimizes project backlog, and constantly communicate project status. The environment helps teams reduce application proliferation, consolidate 100s and 1000s of assets based on business domain, increase application re-use, and constantly communicate and coordinate.
The Cloud DevOps Factory value proposition crosses developers, managers, and C-level executives. For developers, the Cloud DevOps Factory simplifies project setup, provisioning, and development lifecycle activities. Ideally, the factory works with leading development tooling (i.e. SVN, Git, Junit, Selenium, Maven, Jenkins, Bamboo, and JIRA) and IDE (i.e. Eclipse, IDEA, Rational). Development managers can better manage project lifecycle with well defined checkpoints and phases, ensure projects follow governance model and best practices, and deliver consistent frameworks and architectures.
The Cloud DevOps Factory surfaces CIO and Executive IT management dashboards that deliver an ‘at a glance view ‘of projects’ status, lifecycle, activity, and health, which will change Business-IT conversations and dynamics
Cloud DevOps Factories will revolutionize application development and delivery by increasing project visibility, enhancing team agility, and introducing automated governance and best practices. The convergence of application development dashboards, application development DevForge tooling, Cloud application Platform as a Service (aPaaS), automated workflow, governance policies, on-demand provisioning, and application subscriptions will advance best practices, bridge the Business-IT gap, and create an agile application development organization.