Skip to content
Matthew Hall edited this page Jun 22, 2018 · 21 revisions

Agile and DevOps FAQs

  1. Where are you (CSI Lab Teams) capturing the best practices learning? Is there something like a wiki?

Each team is working with a level of autonomy but with the understanding that collaboration between teams is critical to the success of whole thing. Best practices and learnings are discussed regularly and shared across teams. Lessons learned result in better teams, and those lessons filter up in the Guild meetings (scrum master guild, UX guild, etc.)

When looking to solve a problem or answer a question about what direction to take, teams will frequently begin by sending out a message to all the CSI Lab teams or asking other members of their Guild what they have done. Collaborative communication tools like Slack are currently being used for this purpose.

Each Github Repo within the BCGov comes with a wiki that teams may choose to use as a place to store information about their best practices and learnings.

These wiki sites are experimenting with various approaches for sharing this information:
https://github.com/bcgov/tfrs/wiki/
https://github.com/bcgov/gwells/wiki/

In some cases there have been other repos created to store best practices and learning that are more general to all teams. Here are some examples:
https://github.com/bcgov/agile-sdlc/wiki

Another example of efforts to establish best practices and promote learning is the creation of the application DMOD “Document Management Onboarding Demo” which is solving how an application running in the OpenShift environment can utilize ISSS common components and authorization through WebADE
https://github.com/bcgov/csnr-dmod/

The BCGov github repo contains other repos that are published as reusable components or best practices. Two examples are:
https://github.com/bcgov/Gov-2.0-Bootstrap-Skeleton
https://github.com/bcgov/BC-Policy-Framework-For-GitHub

  1. Agile vs. Waterfall: If we applied the set of tools and time management principles to waterfall development as we have to agile, would we not see a difference in cost of software development of waterfall?

Agile methodologies definitely employ the use of tools and principles that could be helpful to other software development methodologies. Some examples of some principles that waterfall project would benefit from include the following: • delivering smaller projects, • increasing user and business involvement, • and making use of continuous integration technologies.

I would also argue that the tools and principles used in agile only create minor improvements to team performance. It is the culture created by how those tools and principles are employed that creates the opportunity to have major leaps in team effectiveness. These leaps occur as teams become user focused and commit to adapting to change.

  1. Is there a minimum standard for documentation with development under DevOps? Is it saved in some readily accessible, persistent format (i.e. PDF, TXT, CSV)? Seems that this could be a concern for succession planning...

The Scrum and the DevOps environment that has been implemented and supported in the Continuous Improvement Lab is slightly different for each team but close enough that we could answer generically for all projects. To give you an idea of the documentation that is required in order to be successful in delivering working software every two weeks, I have compiled the follow list of artifacts, documentation, metrics and deliverables that are regularly produced, maintained or referred to on a daily basis:

Business Design Canvas User Personas Value Proposition Canvas
The Product Vision Feature Roadmap Definition of Done
Product Backlog Epics, Themes, User Stories and Sub-tasks KanBan or Scrum board (Trello, Jira)
Story Points User Story Labels Acceptance Criteria
Sprint Backlogs Velocity Release Burn-down Chart
Sprint Burn-down Charts Traceability link (user story to a github code commit) Low fidelity prototypes
Hi fidelity prototypes Deployment Diagram Product prototype for Usability testing
GitHub Readme GitHub Wiki Database Schema
Static Code Analysis Report Code Quality Report Automated Unit Tests
Testing Code Coverage Deployment Pipeline Logs Automated Functional Tests (Validation)
Functional Test Reports User Tests for Usability Health Check (liveliness, anomalies)
Automated non-Functional testing (performance, responsiveness) Analytics (Monitoring) Training Plan (wiki, helptext, videos)
Helpdesk documentation Data Classification Privacy Impact Assessment
  1. How does Agile / DevOps fit into our architecture / standards, does it follow standards or is it exempt?

Existing standards are for Mode 1 projects. Projects like ISSS where they have a long lead time, know their requirements up front, and are more “life and limb

Agile projects (Mode 2) allow for a more streamlined methodology for projects that don’t warrant the mode 1 standards. Mode 2 still has standards.

It is our goal that our SDLC will evolve to incorporate our Agile standards The principles and outcomes that the architecture and standards sought to achieve, are built into the DevOps pipeline.

  1. How compatible is the current NRS System Development Life Cycle (SDLC) to DevOps/Agile? Specifically, how closely does DevOps/Agile follow the "Deliverables by phase" and "Roles and responsibilities" that is specified in our sector's SDLC?

SDLC artifacts are produced to ensure being able to effectively achieve the sprint goals. Artifacts outside of what is specified in Scrum or Agile are also supported as needed or requested by the Business Area, however efforts to inform the business area and promote culture change in the adoption of Agile will hopefully reduce these extra artifacts.

  1. I noticed on one of the slides that Data Architecture was not listed as part of the team… How is a “team” defined? As a Data Architect learning to find my place in agile projects, I feel that not being listed as a “team member” is a gap in the collaborative culture we are trying to build. We certainly have a role in these projects… Is it fair to say we are “part-time team members” as well?

DA are definitely considered “subject matter experts” but are not required to be collocated and are not mandatory to attend all the scrum ceremonies (meetings).

We recommend that the following be invited as optional to sprint review and planning meetings as well as being invite to observe the Daily Scrum: • Data Architect • Security Architect • Site Reliability Engineer (Sr DevOps Specialist) • Enterprise Architect

  1. Did I see PostgreSQL as one of the standard? River Forecast Center uses that and might be able to use the help in managing their database ;-)

PostgresQL has been adopted by a few projects and can be hosted in the openshift environment. Projects are evaluated on a case by case basis to be able move to running as an agile project. The more important change is the agile culture for the team. It is not just about solving a technology problem.

  1. Have we an accurate comparison of waterfall and agile where the same tools and time management principles are used in both techniques?

When the dev exchange was researching how to make the change, their research advised that they step outside the standards and prove it out and then evolve what works.

  1. If every project could potentially use a different technology stack, how will the blossoming of diversity be managed?

Like a beautiful garden…

Technologies are selected by convergence on things that work and which have momentum in the industry. Use of open source software is preferred. There are some core technologies that every product deployed in the DexEx OpenShift environment employs.

  • 4 OpenShift Project Environments are setup for each Product (Dev, Test, Prod, Tools)
  • The Red Hat OpenShift Container Platform (link: https://www.openshift.com/container-platform/)
  • Installed on an HPAS server cluster in Calgary and Kamloops (20 some odd servers in the cluster)
  • Each Project Environment will be used to run Services, Routes and Pods and the links between them
  • The various components of your applications are checked for quality, built and unit tested, deployed and functional tested, and then smoke tested and tagged after deployment. This step is orchestrated using the “Tools” project environment. An example Tools environment contains the following:
    • Jenkins (running as a service) is used to orchestrate all the automation
    • SonarQube (running as a service) is used to run various types of testing
    • PostGres SonarQube (running as a service) is the database for the SonarQube application
    • The Jenkins and SonarQube services both have a Route (a URL) setup for each of them
    • A link is created between the SonarQube service and the PostGres SonarQube service
    • Each Project environment has access to a Registry of shared resources in our Pathfinder instance of OpenShift.
      These shared resources can be used (or customized and included in the tools project to be used) by Jenkins to complete various tasks such as
      • Unit testing
      • Code quality checking
      • Source code building and tagging
      • Functional testing
  1. Is Agile only for systems development or can it be used to streamline processes that might not involve a system?

Yes, it can be used for doing the dishes

  1. Are sessions held where projects are showcased?

Yes, lunch and learns occur periodically. Follow the "BC Gov CSI Lab" on LinkedIn

  1. I'd like to understand the ROI in terms of staff time and benefit to the public Return on Investment for the process of Agile versus Waterfall:

Building the wrong thing on time, in budget, and within scope of a project charter can be a huge cost. Agile seeks to avoid that risk by getting feedback early and often…

Doing a search online for “roi agile vs traditional methods” will return whitepaper articles, power point presentations, and videos. Here are the top four results listed below: (2018-01-02)

TITLE and URL Source
What is the roi of agile vs. traditional methods? - David F. Rico http://w.davidfrico.com/
(ROI) of Agile Methods? - Semantic Scholar https://pdfs.semanticscholar.org/8e3d/
Business Value of Agile Methods: Using ROI and REal Options https://www.slideshare.net/davidfrico/
The Business Value and ROI of Agile Methods https://www.youtube.com/watch?v=p6GkG7-DroQ
  1. Based on the Agile roles who is responsible to ensure the objectives and outcomes in the business case are met (who manages that)?

Product Owner (Agile Role) is accountable, and team members are responsible to deliver working code that meets the quality standards that have been set forth.

See the Scrum Guide: page 6, http://scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-US.pdf#zoom=100

  1. How do you promote reuse? Code reuse, pattern reuse, microservices reuse...

Currently word of mouth, but there are Guild meetings that are forming. Lunch and Learns are helping.
Code sharing is happening now. Examples:

Repository Description
https://github.com/bcgov/Gov-2.0-Bootstrap-Skeleton An HTML5/CSS3/Bootstrap skeleton to accompany the gov.bc.ca. Developer's Guide.
https://github.com/bcdevops/BDDStack a framework for doing automated functional testing
https://github.com/bcdevops/minio Open source object storage server (compatible with S3)
https://bcgov.github.io/MyGovBC-notification-server/ Notification microservice
https://github.com/bcgov/MyGovBC-CAPTCHA-Service A microservice for validating CAPTCHA and providing a token for non-robot assurance
https://github.com/bcgov/MyGovBC-CAPTCHA-Widget An angularjs 2-4 component for displaying the CAPTCHA to the user and calling the service for validation
  1. Since the agile team at CSI have limited lifespan, what is the process for transfer of knowledge and capabilities building within the operations team (custodians of code)?

Teams are meant to be permanent and cross functional to decrease the risk when changes in team members occur.

Each sprint the documentation is updated to reflect the current version of the software.

Working on maturing the “Ops” part of DevOps and moving that capability into the skills of the teams