Agile Engineering Environment in 50 Minutes (or less)
About Me
3
Vernon is a Scrum Alliance Certified Scrum Trainer (CST) and an International Coaching Federation Professional Certified Coach. Vernon has 30 years of software development, IT, and operations experience including over 20 years leading award-winning teams in China. Vernon is a recognized expert on the practical application of Agile processes and engineering practices and is a frequent speaker at project, process, and Agile conferences globally.
Vernon StinebakerPrincipal, Agile Practices
Certified Scrum Trainer Professional Certified Coach
About Perficient
5
$487 Million in revenue 2016
1997Founded
PRFT Listed on NASDAQ
95% Repeat Business Rate
Employees3000+
N. America locations23
Global US, EU, China + India
6
Global Development Centers
Hangzhou, China 100% Scrum CMMI Level 5
Lafayette, LA 100% Scrum
Chennai, India 100% Scrum CMMI Level 5
Nagpur, India 100% Scrum CMMI Level 3
2,600+ Total Employees
7
History of Agile@Perficient
1997/1998
2008Our methodology was first assessed at CMMI Level 5 for our Hangzhou, China office in April 2008.
2010Delivered Scrum Alliance certified training to our organization.
2017Delivering Scrum training and consulting to clients
eXtreme Delivery
CMMI L5
Reassessed through full SCAMPI Class A (again, the most rigorous approach) 4 times
Reassess
Before Agile, Perficient contracted Kent Beck, the founder of eXtreme Programming (XP) to
consult in developing our delivery methodology
2016Our Chennai, India office has been assessed at CMMI Level 5
Enable Methodology
8
Perficient Agile Certifications
1
60+
60+
20+
1500+
Scrum Certifications
Setting the context
10
Purpose:
• To describe an agile engineering environment and share some options for establishing such an environment
Outcomes:
• Understand many of the key components that can be used to establish an agile engineering environment
• Gain exposure to various tools which can be used to build out an agile engineering environment
• Hopefully everyone will walk away with knowledge of at least one new tool (that you can go back and think about putting into use on Monday)
Purpose and Outcomes
11
• What comprises an Agile engineering environment • The environment itself
• Open environment — bring your toolbox • No walls, open, whiteboards
• Open minds • Open culture • Tools
• This is what we’ll focus on today • What do you use?
An Agile Engineering Environment
12
• If you have a chance to do so, start off right • If you don’t have a chance to start off right, set a plan
to make things right
First Things First
13
Pieces of the puzzle: 2009
Project Communication
(Wiki)
Test Case Management
Requirements
Code Quality
Continuous Integration
Testing Frameworks
Version Control
IDE
Code Review
14
Pieces of the puzzle: 2009
Code Quality
Continuous Integration
Testing Frameworks
Version Control
IDE
Code Review
15
Code Quality
Version Control
Testing Frameworks IDE
Code Review
Continuous Integration
• Hudson -> Jenkins
Pieces of the puzzle: 2009
16
Code Quality
Continuous Integration
Testing Frameworks IDE
Code Review
Version Control
• Hudson -> Jenkins • Mercurial
Pieces of the puzzle: 2009
17
Code Quality
Continuous Integration
Testing Frameworks
Version Control
Code Review
IDE• Hudson -> Jenkins • Mercurial • NetBeans
Pieces of the puzzle: 2009
18
Code Quality
Continuous Integration
Testing Frameworks
Version Control
IDE
Code Review
• Hudson -> Jenkins • Mercurial • NetBeans • Review Board
Pieces of the puzzle: 2009
19
Code Quality
Continuous Integration
Code Review
Version Control
IDETesting Frameworks
• Hudson -> Jenkins • Mercurial • NetBeans • xUnit • Review Board
Pieces of the puzzle: 2009
20
Testing Frameworks
Continuous Integration
Code Review
Version Control
IDE
Code Quality
• Hudson -> Jenkins • Mercurial • NetBeans • xUnit • Review Board • Sonar
Pieces of the puzzle: 2009
21
Deployment View: 2009
Developer’s Desktop
IDE
Web Server
DVCS(Mercurial)
CI(Hudson)
Quality(Sonar)
Workgroup
Web Server
DVCS(Mercurial)
CI(Hudson)
Quality(Sonar)
Organization
Web Server
DVCS(Mercurial)
CI(Hudson)
Quality(Sonar)
Organization
Requirement Management
andDefect
Tracking
22
• Cross platform • High degree of integration/interoperability • Scalable • Supported/rapidly developing • Simple
• Require little or no configuration • Can be started with just as single command
• They ‘just work’ • But don’t forget. There are other options.
Why this Toolset? - 2009
23
• For 6 years, not much • Then
• And
What’s changed?
24
Pieces of the puzzle: 2017
Version Control
Continuous Integration
25
Pieces of the puzzle: 2017
Version Control
Continuous Integration
Code Review
26
Pieces of the puzzle: 2017
Version Control
Continuous Integration
Code ReviewRequirements Test Case
Management
Project Communication
(Wiki)
27
Pieces of the puzzle: 2017
Version Control
Continuous Integration
Code ReviewRequirements Test Case
Management
Project Communication
(Wiki)
28
Pieces of the puzzle: 2017
Testing Frameworks
Version Control
Continuous Integration
Code Review
Code Quality
Requirements Test Case Management
Project Communication
(Wiki)
• Visual Studio CodeIDE
29
Pieces of the puzzle: 2017
IDE
Version Control
Continuous Integration
Code Review
Code Quality
Requirements Test Case Management
Project Communication
(Wiki)
• Jasmine Testing Frameworks
• Sonarqube
30
Pieces of the puzzle: 2017
IDE
Version Control
Continuous Integration
Code ReviewRequirements Test Case
Management
Project Communication
(Wiki)
Code Quality
Testing Frameworks
31
Deployment View 2017: Docker and GitLab Take Center Stage
Developer’s Desktop
Docker
Quality(Sonarqube)
IDE
GitLab
DCVS(Git)
ReqmtMgmt
Wiki
CI
Registry
DefectMgmt
WebServer
32
Deployment View: 2017
Developer’s Desktop
Docker
Quality(Sonarqube)
IDE
GitLab
DCVS(Git)
ReqmtMgmt
Wiki
CI
Registry
DefectMgmt
WebServer
Workgroup/Department/Organization
Docker
Quality(Sonarqube)
GitLab
DCVS(Git)
ReqmtMgmt
Wiki
CI
Registry
DefectMgmt
WebServer
33
• Cross platform • High degree of integration/interoperability • Scalable • Supported/rapidly developing • Simple
• Require little or no configuration • Can be started with just as single command
• They ‘just work’ • But don’t forget. There are other options.
Why this Toolset? - 2017
34
docker run -d --name gitlab -p 8080:8080 gitlab/gitlab-cedocker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Example (simple) script
Q&A
36
References - 2017
• git — https://git-scm.com/
• Docker — https://www.docker.com
• GitLab — https://www.gitlab.com
• Sonarqube — https://www.sonarqube.org/
• Visual Studio Code — https://code.visualstudio.com
• Jasmine — https://jasmine.github.io/
37
References - 2009
Tools discussed:
• Hudson -- http://hudson-ci.org/ • Mercurial -- http://mercurial.selenic.com/wiki/ • NetBeans -- http://www.netbeans.org • JUnit -- http://www.junit.org/ • Review Board --http://www.reviewboard.org/ • Sonar -- http://sonar.codehaus.org/ • Maven -- http://maven.apache.org/