In October 2009, I presented a well-received session entitled An Agile Engineering Environment (in 59 Minutes or Less) at an Agile conference in Chengdu, China. From 2009 – 2015 the environment presented in that session remained fundamentally unchanged as our primary internal development environment. By 2015, however, we began seeing the emergence of new tools which build upon the basic premises of that environment, but enable an even more robust environment to be established even more quickly and independently than the 59-minute environment realized in the 2009 session.
In this session, we will briefly introduce the original configuration and see how modern tooling and techniques enable the improved environment to be established in a fraction of the time, enabling even greater agility in our engineering environment.
3. 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 Stinebaker
Principal, Agile Practices
Certified Scrum Trainer
Professional Certified Coach
5. 5
$487 Million in revenue 2016
1997Founded
PRFT Listed on NASDAQ
95% Repeat Business Rate
Employees
3000+
N. America locations
23
Global US, EU, China + India
6. 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. 7
History of Agile@Perficient
1997/1998
2008
Our methodology was first assessed at CMMI
Level 5 for our Hangzhou, China office in April
2008.
2010
Delivered Scrum Alliance certified
training to our organization.
2017
Delivering 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
2016
Our Chennai, India office has been
assessed at CMMI Level 5
Enable Methodology
10. 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. 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. 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. 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. 14
Pieces of the puzzle: 2009
Code
Quality
Continuous
Integration
Testing
Frameworks
Version
Control
IDE
Code
Review
21. 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
and
Defect
Tracking
22. 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. 23
• For 6 years, not much
• Then
• And
What’s changed?
24. 24
Pieces of the puzzle: 2017
Version
Control
Continuous
Integration
25. 25
Pieces of the puzzle: 2017
Version
Control
Continuous
Integration
Code
Review
26. 26
Pieces of the puzzle: 2017
Version
Control
Continuous
Integration
Code
Review
Requirements
Test Case
Management
Project
Communication
(Wiki)
27. 27
Pieces of the puzzle: 2017
Version
Control
Continuous
Integration
Code
Review
Requirements
Test Case
Management
Project
Communication
(Wiki)
28. 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 Code
IDE
29. 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
30. • Sonarqube
30
Pieces of the puzzle: 2017
IDE
Version
Control
Continuous
Integration
Code
Review
Requirements
Test Case
Management
Project
Communication
(Wiki)
Code
Quality
Testing
Frameworks
31. 31
Deployment View 2017: Docker and GitLab Take Center Stage
Developer’s Desktop
Docker
Quality
(Sonar
qube)
IDE
GitLab
DCVS
(Git)
Reqmt
Mgmt
Wiki
CI
Registry
Defect
Mgmt
Web
Server
32. 32
Deployment View: 2017
Developer’s Desktop
Docker
Quality
(Sonar
qube)
IDE
GitLab
DCVS
(Git)
Reqmt
Mgmt
Wiki
CI
Registry
Defect
Mgmt
Web
Server
Workgroup/Department/Organization
Docker
Quality
(Sonar
qube)
GitLab
DCVS
(Git)
Reqmt
Mgmt
Wiki
CI
Registry
Defect
Mgmt
Web
Server
33. 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. 34
docker run -d --name gitlab -p 8080:8080 gitlab/gitlab-ce
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Example (simple) script