NOVEMBER 14 
Agile Software Factory 
Demo 
1 
Max Martynov, VP of Technology 
Grid Dynamics
Project X: Day 1 
Future 
Production 
2 
Product 
Backlog Development Operations 
Feature A 
As a customer, I 
want …, so that 
… 
Feature H 
As a customer, I 
want …, so that 
… 
Feature D 
As a customer, I 
want …, so that 
… 
Feature C 
As a customer, I 
want …, so that 
… 
Feature G 
As a customer, I 
want …, so that 
… 
Feature B 
As a customer, I 
want …, so that 
… 
Feature E 
As a customer, I 
want …, so that 
… 
Feature M 
As a customer, I 
want …, so that 
… 
Feature X 
As a customer, I 
want …, so that 
… 
Future 
production 
env 
(doesn’t 
exist yet)
Product 
Backlog Development Operations 
Dev workstation 
Project X: Day 10 
Future 
Production 
3 
Feature H 
As a 
customer, I 
Feature D 
As a 
customer, I 
Feature C 
As a 
customer, I 
Feature G 
As a 
customer, I 
Code B 
………………… 
………………… 
………………… 
Feature E 
As a 
customer, I 
Feature M 
As a 
customer, I 
Feature X 
As a 
customer, I 
Future 
production 
env 
(doesn’t 
exist yet) 
Code A 
………………… 
…..……bug… 
…………………
Project X: Implementing Continuous Delivery 
Test Automation 
Environments & Deployments Continuous Integration 
4 
Continuous Delivery infrastructure 
requires diverse toolset. 
There is no single tool that 
implements CICD infrastructure 
end-to-end. 
? 
Deployment Automation 
Management 
Code Versioning, Analysis & Review Infrastructure 
Project 
Management 
Database 
Management
Agile Software Factory 
5
Agile Software Factory 
Pre-Integrated Continuous Delivery Infrastructure and Tooling 
6
Project X: Day 1 (Agile Software Factory) 
Future 
Production 
7 
Product 
Backlog Development Operations 
Feature A 
As a customer, I 
want …, so that 
… 
Feature H 
As a customer, I 
want …, so that 
… 
Feature D 
As a customer, I 
want …, so that 
… 
Feature C 
As a customer, I 
want …, so that 
… 
Feature G 
As a customer, I 
want …, so that 
… 
Feature B 
As a customer, I 
want …, so that 
… 
Feature E 
As a customer, I 
want …, so that 
… 
Feature M 
As a customer, I 
want …, so that 
… 
Feature X 
As a customer, I 
want …, so that 
… 
Future 
production 
env 
(doesn’t 
exist yet) 
Continuous Integration, Continuous Delivery 
Agile Software Factory
Agile Software Factory: Dashboard 
8
Agile Software Factory: Jenkins – Selenium 
9
Agile Software Factory: IDE – Gerrit - Jenkins 
10 
1. Notification about a new code review request 
2. Approving code after review
Agile Software Factory: Jira – Jenkins 
11
Agile Software Factory: Jira – Gerrit 
12
Agile Software Factory: Email – Jira – Jenkins 
13
Agile Software Factory: Gerrit - Jenkins 
14
Agile Software Factory: Jenkins – Code Analysis 
15
Agile Software Factory: Static Code Analysis 
16
Agile Software Factory: Checkstyle 
17
Agile Software Factory: PMD 
18
NOVEMBER 14 
Thank You! 
19 
Max Martynov, VP of Technology, Grid Dynamics 
mmartynov@griddynamics.com
Dynamic Environments & DevTest Cloud 
20 
─ Shortage or rigidness of corporate datacenter resources slows down development process and hampers innovation 
─ Use public cloud to host developer’s sandboxes and QA environments 
Public cloud 
(Virtual Private Cloud) 
• Problem 
• Solution 
Quota-limited open experimentation area 
Dev Sandbox 
Internal datacenter 
Performance 
testing 
environment 
Staging 
environment 
Production 
environment 
ODne vd eSmaannddb o x 
developer’s sandbox 
Project X area 
(quota-limited, created on demand per project) 
Smoke testing 
environment 
Regression 
… environment 
Developer’s sandbox 
Project Y area 
(quota-limited, created on demand per project)
Branching Strategy (GitFlow) 
21 
Feature Dev Release Master Hotfix 
Latest changes from Dev 
Merge to Dev 
Build & Deploy 
Smoke 
New feature 
Development in 
Dev continues 
Build & Deploy 
Regression 
Performance 
(optional) 
Build & Deploy 
Regression 
Performance 
Build & Deploy 
Manual(UI/UX) Manual(UI/UX) 
Build & Deploy 
Regression 
Performance 
(optional) 
Smoke 
Dev 
Manager 
Director of 
Engineering 
Release 
Manager 
Director of 
Operations 
Release 
Manager 
Pipelines corresponding to each branch 
Organization roles responsible for maintaining pipelines for each branch in “green” state 
Feature 
implementation 
(code & tests) 
Ready for release 
Final fixes in 
Release branch 
Update Dev branch Go to production 
Development in 
Dev continues 
Urgent bugfix 
Deploy to production 
Update Dev branch 
with bugfix
QA Automation Vision 
22 
Manual test suite 
(typically end-to-end user acceptance 
tests) 
Automated 
Functional Modular 
(test each service or application 
individually with stubbed external 
dependencies and test data) 
Auto Integration 
(testing integration of each service or 
application with real external 
dependencies and production data) 
User acceptance 
(testing system as a whole using UI with 
real external dependencies and production 
data) 
Manual execution 
time – 
weeks 
Full automatic 
execution 
time – 
hours 
1. Save on manual QA effort and reduce time to run regression automatically 
2. Create fine-grained modular tests for each service or application to increase test coverage 
3. Implement more tests to increase quality – running tests automatically is cheap 
Staged execution: start 
with faster and more 
granular tests to find 
defects quickly
QA Automation Process Vision 
23 
1. Integrate QA automation team with Development team to increase productivity and efficiency 
2. Use Acceptance Test Driven Development approach, implement automatic tests together with code development 
Release (Months) 
Application development Functional tests 
Application development 
Automatic functional tests 
implementation 
Automatic performance tests 
implementation 
execution Performance tests execution 
Automati 
c test 
execution 
and 
reporting 
Release Candidate 
Release Candidate 
Sprint (Weeks)
Agile Software Factory: Demo (feature branch) 
24 
Story 
As a customer, I 
want …, so that 
… 
dev 
fb-x dev 
fb-x 
dev 
fb-x 
dev 
fb-x 
dev 
fb-x 
1. Create story 2. Create 
feature branch 
3. Commit code 
4. Code review 5. Build, analyze, 
unit test 
Change 
…………… 
6. Functional test 
Change 
…………… 
Change 
…………… 
Change 
……………
Agile Software Factory: Demo (dev branch) 
25 
7. Merge to dev 
dev 
fb-x 
Change 
…………… 
8. Code review 9. Build, analyze, 
dev 
fb-x 
Change 
…………… 
unit test 
dev 
fb-x 
Change 
…………… 
10. Functional test 11. Deploy 12. Integration test 
dev 
fb-x 
Change 
…………… 
dev 
fb-x 
Change 
…………… 
dev 
fb-x 
Change 
……………
Agile Software Factory: Demo (branching & pipelines) 
26 
Feature Dev 
Build 
Unit test 
Get latest changes 
Build 
Unit test 
Ongoing 
development 
Build 
Unit test 
Build 
Functional test 
Build 
Unit test Unit test 
New feature 
Get latest changes 
Ongoing 
development 
Feature 
implementation 
(code & tests) 
Ready for release 
Feature 
(Code Review) 
Dev 
(Code Review) 
Local Repo 
Submit to code review Merge 
Merge to Dev, submit to code review 
Merge to Dev 
Functional test 
Deploy 
Integration test 
2 min 2-3 min 
3-5 min 
2-3 min 
10-15 min
Release 
27 
13. Deploy to Production 
Release 
Candidate 
……………………….. 
……………………….. 
………………………..
Project X: Day Launch - 1 (Best Case) 
QA Environment (static & manual) 
Production 
28 
Development Operations 
Production 
………………….. 
………………….. 
……misconfig. 
………………….. 
………………….. 
…network….. 
………………….. 
………………….. 
…………DB........ 
Code A 
…………………. 
……bug……… 
Code H 
…………………. 
……bug……. 
Code D 
…………………. 
…………………. 
Code C 
……bug……. 
…………………. 
Code G 
…………………. 
…………………. 
… 
Code B 
…………………. 
…………………. 
Code E 
…………………. 
…………………. 
Code M 
…………………. 
…………………. 
Code X 
…………………. 
…………………. 
CI
Project X: Launch 
29 
Production 
Data F 
…………………. 
…………………. 
Code A 
…………………. 
…………………. 
Code H 
…………………. 
…………………. 
Code G 
…………………. 
…………………. 
… 
Code C 
…………………. 
…………………. 
Code D 
…………………. 
…………………. 
Code B 
…………………. 
…………………. 
Code E 
…………………. 
…………………. 
Code M 
…………………. 
…………………. 
Code X 
…………………. 
…………………. 
code 
bug 
Data Z 
…………………. 
…………………. 
firewall 
issue 
DB 
issue 
First deployment on staging / production doesn’t go well. 
However, this is the point when 
development and operations 
start collaborating first.
Enabling Technologies 
Agile Software Factory 
Software Engineering Assembly Line 
griddynamics.com 
Qubell 
Enterprise DevOps Platform 
qubell.com 
30

Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo

  • 1.
    NOVEMBER 14 AgileSoftware Factory Demo 1 Max Martynov, VP of Technology Grid Dynamics
  • 2.
    Project X: Day1 Future Production 2 Product Backlog Development Operations Feature A As a customer, I want …, so that … Feature H As a customer, I want …, so that … Feature D As a customer, I want …, so that … Feature C As a customer, I want …, so that … Feature G As a customer, I want …, so that … Feature B As a customer, I want …, so that … Feature E As a customer, I want …, so that … Feature M As a customer, I want …, so that … Feature X As a customer, I want …, so that … Future production env (doesn’t exist yet)
  • 3.
    Product Backlog DevelopmentOperations Dev workstation Project X: Day 10 Future Production 3 Feature H As a customer, I Feature D As a customer, I Feature C As a customer, I Feature G As a customer, I Code B ………………… ………………… ………………… Feature E As a customer, I Feature M As a customer, I Feature X As a customer, I Future production env (doesn’t exist yet) Code A ………………… …..……bug… …………………
  • 4.
    Project X: ImplementingContinuous Delivery Test Automation Environments & Deployments Continuous Integration 4 Continuous Delivery infrastructure requires diverse toolset. There is no single tool that implements CICD infrastructure end-to-end. ? Deployment Automation Management Code Versioning, Analysis & Review Infrastructure Project Management Database Management
  • 5.
  • 6.
    Agile Software Factory Pre-Integrated Continuous Delivery Infrastructure and Tooling 6
  • 7.
    Project X: Day1 (Agile Software Factory) Future Production 7 Product Backlog Development Operations Feature A As a customer, I want …, so that … Feature H As a customer, I want …, so that … Feature D As a customer, I want …, so that … Feature C As a customer, I want …, so that … Feature G As a customer, I want …, so that … Feature B As a customer, I want …, so that … Feature E As a customer, I want …, so that … Feature M As a customer, I want …, so that … Feature X As a customer, I want …, so that … Future production env (doesn’t exist yet) Continuous Integration, Continuous Delivery Agile Software Factory
  • 8.
  • 9.
    Agile Software Factory:Jenkins – Selenium 9
  • 10.
    Agile Software Factory:IDE – Gerrit - Jenkins 10 1. Notification about a new code review request 2. Approving code after review
  • 11.
    Agile Software Factory:Jira – Jenkins 11
  • 12.
    Agile Software Factory:Jira – Gerrit 12
  • 13.
    Agile Software Factory:Email – Jira – Jenkins 13
  • 14.
    Agile Software Factory:Gerrit - Jenkins 14
  • 15.
    Agile Software Factory:Jenkins – Code Analysis 15
  • 16.
    Agile Software Factory:Static Code Analysis 16
  • 17.
  • 18.
  • 19.
    NOVEMBER 14 ThankYou! 19 Max Martynov, VP of Technology, Grid Dynamics mmartynov@griddynamics.com
  • 20.
    Dynamic Environments &DevTest Cloud 20 ─ Shortage or rigidness of corporate datacenter resources slows down development process and hampers innovation ─ Use public cloud to host developer’s sandboxes and QA environments Public cloud (Virtual Private Cloud) • Problem • Solution Quota-limited open experimentation area Dev Sandbox Internal datacenter Performance testing environment Staging environment Production environment ODne vd eSmaannddb o x developer’s sandbox Project X area (quota-limited, created on demand per project) Smoke testing environment Regression … environment Developer’s sandbox Project Y area (quota-limited, created on demand per project)
  • 21.
    Branching Strategy (GitFlow) 21 Feature Dev Release Master Hotfix Latest changes from Dev Merge to Dev Build & Deploy Smoke New feature Development in Dev continues Build & Deploy Regression Performance (optional) Build & Deploy Regression Performance Build & Deploy Manual(UI/UX) Manual(UI/UX) Build & Deploy Regression Performance (optional) Smoke Dev Manager Director of Engineering Release Manager Director of Operations Release Manager Pipelines corresponding to each branch Organization roles responsible for maintaining pipelines for each branch in “green” state Feature implementation (code & tests) Ready for release Final fixes in Release branch Update Dev branch Go to production Development in Dev continues Urgent bugfix Deploy to production Update Dev branch with bugfix
  • 22.
    QA Automation Vision 22 Manual test suite (typically end-to-end user acceptance tests) Automated Functional Modular (test each service or application individually with stubbed external dependencies and test data) Auto Integration (testing integration of each service or application with real external dependencies and production data) User acceptance (testing system as a whole using UI with real external dependencies and production data) Manual execution time – weeks Full automatic execution time – hours 1. Save on manual QA effort and reduce time to run regression automatically 2. Create fine-grained modular tests for each service or application to increase test coverage 3. Implement more tests to increase quality – running tests automatically is cheap Staged execution: start with faster and more granular tests to find defects quickly
  • 23.
    QA Automation ProcessVision 23 1. Integrate QA automation team with Development team to increase productivity and efficiency 2. Use Acceptance Test Driven Development approach, implement automatic tests together with code development Release (Months) Application development Functional tests Application development Automatic functional tests implementation Automatic performance tests implementation execution Performance tests execution Automati c test execution and reporting Release Candidate Release Candidate Sprint (Weeks)
  • 24.
    Agile Software Factory:Demo (feature branch) 24 Story As a customer, I want …, so that … dev fb-x dev fb-x dev fb-x dev fb-x dev fb-x 1. Create story 2. Create feature branch 3. Commit code 4. Code review 5. Build, analyze, unit test Change …………… 6. Functional test Change …………… Change …………… Change ……………
  • 25.
    Agile Software Factory:Demo (dev branch) 25 7. Merge to dev dev fb-x Change …………… 8. Code review 9. Build, analyze, dev fb-x Change …………… unit test dev fb-x Change …………… 10. Functional test 11. Deploy 12. Integration test dev fb-x Change …………… dev fb-x Change …………… dev fb-x Change ……………
  • 26.
    Agile Software Factory:Demo (branching & pipelines) 26 Feature Dev Build Unit test Get latest changes Build Unit test Ongoing development Build Unit test Build Functional test Build Unit test Unit test New feature Get latest changes Ongoing development Feature implementation (code & tests) Ready for release Feature (Code Review) Dev (Code Review) Local Repo Submit to code review Merge Merge to Dev, submit to code review Merge to Dev Functional test Deploy Integration test 2 min 2-3 min 3-5 min 2-3 min 10-15 min
  • 27.
    Release 27 13.Deploy to Production Release Candidate ……………………….. ……………………….. ………………………..
  • 28.
    Project X: DayLaunch - 1 (Best Case) QA Environment (static & manual) Production 28 Development Operations Production ………………….. ………………….. ……misconfig. ………………….. ………………….. …network….. ………………….. ………………….. …………DB........ Code A …………………. ……bug……… Code H …………………. ……bug……. Code D …………………. …………………. Code C ……bug……. …………………. Code G …………………. …………………. … Code B …………………. …………………. Code E …………………. …………………. Code M …………………. …………………. Code X …………………. …………………. CI
  • 29.
    Project X: Launch 29 Production Data F …………………. …………………. Code A …………………. …………………. Code H …………………. …………………. Code G …………………. …………………. … Code C …………………. …………………. Code D …………………. …………………. Code B …………………. …………………. Code E …………………. …………………. Code M …………………. …………………. Code X …………………. …………………. code bug Data Z …………………. …………………. firewall issue DB issue First deployment on staging / production doesn’t go well. However, this is the point when development and operations start collaborating first.
  • 30.
    Enabling Technologies AgileSoftware Factory Software Engineering Assembly Line griddynamics.com Qubell Enterprise DevOps Platform qubell.com 30