Gerrit is great, however it is also quite an important part of a bigger DevOps process. In this talk I will describe how multiple tools can be unified under a TeamForge or better DLM umbrella and what are the immediate benefits of it.
Gerrit is great, however it is also quite an important part of a bigger DevOps process. In this talk I will describe how multiple tools can be unified under a TeamForge or better DLM umbrella and what are the immediate benefits of it.
Interesting facts to mention: CollabNet was founded in 1999 in San Francisco, VersionOne was founded in 2002 in Atlanta Both CollabNet and VersionOne form a single company to be called CollabNet (as of August 07, 2017) Combined portfolio includes (significant products only): TeamForge (https://www.collab.net/products/teamforge-alm) and Lifecycle (https://www.versionone.com/product/lifecycle/overview): Application Lifecycle Management (ALM) latter one focused strongly on Agile ALM (SAFe, Scrum, Kanban, Lean, XP, …) DevOps Lifecycle Manager (https://www.collab.net/products/devops-lifecycle-manager) and Continuum (https://www.versionone.com/product/continuum/devops): Value Stream Management (VSM) latter focused on DevOps Automation and Intelligence The combined company has more than 300 employees worldwide and offices in US, India, UK, Netherlands & Germany
Based in Berlin office and responsible for everything about TeamForge Git/Gerrit Integration development Active members (1 maintainer) of Gerrit community often participating in Gerrit Hackathons
It does what it is designed for: Code Reviews. Regardless of what it means for different people: from formal meeting with whole team going through the code to co-worker casual glance over the code before it gets committed. And it does it really good :)
In addition it has quite vibrant community that responds to user requirements. But after all this is just Code Review tool which is only single step in ALM process.
Complex domain and organizations requires proper tools and processes to support daily operations: Acting ad-hoc (quite natural for small shops) is neither efficient nor repeatable at larger scale.
Implementation = monster app that does all and nothing
Synergy effect
The larger scale/complexity the more systematic approach is needed that involves not only right tools and processes but agile(lean) mindset focused on continuous learning/improvement. Together it leads to operational excellence: all about meeting (and exceeding) customer expectations in a sustainable manner! a management philosophy based on earlier continuous improvement methodologies (Lean Thinking, Six Sigma, OKAPI and Scientific Management)
Core principles of operational excellence: Respect every individual – create environment that empowers people to create sense of ‘ownership’ Lead with humility – willingness to seek input, carefully listen and continuously learn Seek perfection – always identify opportunities for improvement Assure quality at the source – 1) do not pass defects, 2) stop and fix problems, 3) respect the individual Flow and pull value – focus on shortening lead-time from the beginning to end of value stream Embrace scientific thinking – PDCA (plan, do, check and adjust), etc… Focus on process – shift from finding person that introduced the failure to process that allowed it Think systemically – understand how and why things happens Create constancy of purpose – regardless of changing requirements and technologies keep pointing why certain things happen Create value for the customer – every aspect should be focused on creating value for customer
Aspects of DevOps pipeline related to Gerrit that can be improved, having core principles in mind, by integrating it with external tools.
Great flexibility comes with great responsibility – one can fine tune access control but... Trading flexibility for simplicity != one size fits all, but several well defined schemes come to rescue Federated RBAC across projects, servers and tools = improve process compliance with centralized on- and off-boarding of project members Operational excellence principles: focus on process, flow and pull value
Federated, unified accounts management across all tools with single point for users’ password and SSH keys management + TF users are automatically authenticated (SSO) to Gerrit Operational excellence principles: focus on process, flow and pull value
Operational excellence principles: focus on process, flow and pull value
Software Quality aspects: Functional: in short it is about conformance to explicitly stated functional requirements captured in User Stories and level of satisfaction experienced by end-users. Structural - measured as compliance with good architectural and coding practices: reliability (likelihood of potential application failures) efficiency (key factor for applications requiring high execution speed) security (likelihood of potential security breaches due to poor coding practices and architecture) maintainability (usually consensus between Time-To-Market and keeping maintenance costs under control, however over-engineering is equally bad) size (impacts maintainability)
Code Review – manually check compliance with good architectural and coding practices considering both functional and structural aspects of quality
Generate: Requirements traceability reports Generate defects distribution reports to improve phases/places that are especially vulnerable Tests traceability and coverage reports
Static analysis with Errorprone, finbugs, sonar etc.
Operational excellence principles: Assure quality at the source, Focus on process, Flow and pull value
A Unified Tool Chain Visibility View is a Challenge!
Software Process Improvement: Speed-up whole process and make more efficient Improve quality (reduce number of end-user reported issues)
Value Stream Management – software solutions built to address problem of managing, visualizing and measuring business value throughput across complex, distributed and heterogeneous environments Value Stream Mapping – practical exercise of mapping DevOps toolchain to uncover key bottlenecks in delivering value to customers (stakeholders)
Measure business value across application pipeline and answer questions like Are teams delivering products faster and better? Where is the time saved with a new process or feature delivery? How are resources being allocated for new projects vs. reworking existing applications and services?
Monitor & predict monitor entire DevOps toolchain (integration with popular open source and commercial tools in the market + ability to create custom integrations for homegrown tools), alert and predict (through trend analysis) parts that could cause slow downs/bottlenecks
Continuous feedback Create continuous feedback loop across the entire application lifecycle – from plan, build, test, deploy, operations, and back to plan – facilitating effective collaboration between Dev, Test, Sec and Ops teams
Operational excellence principles: Seek Perfection, Flow and pull value, Embrace scientific thinking, Think systematically, Focus on process, Create value for the customer