forked from atosorigin/DevOpsMaturityAssessment
-
Notifications
You must be signed in to change notification settings - Fork 0
/
questions.json
559 lines (559 loc) · 23.2 KB
/
questions.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
[
{
"//" : "Copyright 2018 Atos SE and Worldline",
"//" : "Licensed under MIT (https://github.com/atosorigin/DevOpsMaturityAssessment/blob/master/LICENSE)",
"SectionName" : "Introduction",
"Questions" : [
{
"Type" : "Banner",
"QuestionText" : "The goal of this questionaire is to help you assess the DevOps maturity of your team and to help you understand what might be the appropriate next steps for you on your DevOps journey.<br><br>These questions are intended to be completed for one team (typically reporting to the same line manager and usually consisting of between 5 and 15 people)."
}
]
},
{
"SectionName" : "Team Agility",
"SpiderPos" : 2,
"Questions" : [
{
"Type" : "Option",
"QuestionText" : "Does the team have a new, potentially shippable, version of the product available every 1-2 weeks?"
},
{
"Type" : "Checkbox",
"QuestionText" : "Which of the following are measured by the team (tick all that apply)?",
"Answers" : [
{"Answer" : "Elapsed lead time time to deliver valuable changes (from initial request to production)", "Score" : 0.5},
{"Answer" : "Frequency of deployments into production", "Score" : 0.5},
{"Answer" : "Change failure rate", "Score" : 0.5},
{"Answer" : "Time to restore service after a failure", "Score" : 0.5}
]
},
{
"Type" : "Option",
"QuestionText" : "Does the team regularly meet to discuss what is working well, what isn't working well and what they can improve, and the top improvement items are implemented?"
},
{
"Type" : "Option",
"QuestionText" : "Does the team take actions to ensure that the team does not create or experience bottlenecks with/for other teams?",
"Answers" : [
{"Answer" : "Yes, and the actions are effective", "Score" : 1},
{"Answer" : "Yes, but the actions are not always effective", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Are any work items that are blocked swiftly identified and then people collaborate to rectify the situation?"
},
{
"Type" : "Option",
"QuestionText" : "Is there a clearly defined mechanism for prioritising the backlog?"
},
{
"Type" : "Option",
"QuestionText" : "Does the team work on the highest priority items in the backlog?"
},
{
"Type" : "Option",
"QuestionText" : "Are the most experienced team members are allocated last so they can help others develop cross functional skills and be free to focus on the most business critical or complex problems?"
},
{
"Type" : "Checkbox",
"QuestionText" : "Does the team have fast feedback loops in place (tick all that apply)?",
"Answers" : [
{"Answer" : "From testers: usually less than 1 day", "Score" : 0.5},
{"Answer" : "From the product owner: usually less than 3 days", "Score" : 0.5},
{"Answer" : "From customers: usually less than 2 weeks", "Score" : 0.5},
{"Answer" : "From end users: usually less than 2 weeks", "Score" : 0.5}
]
},
{
"Type" : "Option",
"QuestionText" : "Are there proactive steps taken to ensure there is no major dependency on \"super heroes\" (e.g. pair programming, mob learning, real options)?"
}
]
},
{
"SectionName" : "Collaboration",
"SpiderPos" : 7,
"Questions" : [
{
"Type" : "Option",
"QuestionText" : "Are knowledge and interests shared within the team and with other teams within the organisation (for example via communities of interest)?",
"Answers" : [
{"Answer" : "Yes", "Score" : 1},
{"Answer" : "Yes, but only within the team", "Score" : 0.5},
{"Answer" : "No", "Score" : 1}
]
},
{
"Type" : "Option",
"QuestionText" : "Does the team have methods in place for asynchronous communication (for example Kanban Board, JIRA, Slack, Circuit)?"
},
{
"Type" : "Option",
"QuestionText" : "Do people on the team have mechanisms to collaborate with people outside of the team?"
},
{
"Type" : "Option",
"QuestionText" : "Are people on the team willing to work outside their usual specialism?",
"Answers" : [
{"Answer" : "Everyone on the team is willing to do this", "Score" : 1},
{"Answer" : "Some people on the team are willing to do this", "Score" : 0.5},
{"Answer" : "Generally people on the team prefer not to do this", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Do people on the team have a preference towards the most immediate (information rich) comunication method available (e.g. voice call rather than email)?",
"Answers" : [
{"Answer" : "Everyone on the team does", "Score" : 1},
{"Answer" : "Most people on the team do", "Score" : 0.5},
{"Answer" : "Most people on the team do not", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Is there sufficient opportunity for people on the team to meet face to face?"
},
{
"Type" : "Option",
"QuestionText" : "How frequently are their misunderstandings between members of the team?",
"Answers" : [
{"Answer" : "Hardly ever", "Score" : 1},
{"Answer" : "Fairly frequently (at least once per week)", "Score" : 0.5},
{"Answer" : "Very frequently (at least once per day)", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Do people on the team share their ideas/concerns with the rest of the team and they are fairly represented?",
"Answers" : [
{"Answer" : "Yes, always", "Score" : 1},
{"Answer" : "Yes, most of the time", "Score" : 0.5},
{"Answer" : "Hardly ever", "Score" : 0}
]
}
]
},
{
"SectionName" : "Automation",
"SpiderPos" : 3,
"Questions" : [
{
"Type" : "Option",
"SubCategory" : "Environments",
"QuestionText" : "Are development and test environments consistent with production environments?"
},
{
"Type" : "Option",
"QuestionText" : "Is the provisioning, configuration and management of infrastructure (e.g. networks, storage, etc.) automated (for example by using Infrastructure as Code)?",
"Answers" : [
{"Answer" : "Yes", "Score" : 1},
{"Answer" : "Partially", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Checkbox",
"SubCategory" : "Environments",
"QuestionText" : "For which of these is the configuration and management of environments automated (tick all that apply)?",
"Answers" : [
{"Answer" : "Virtual machine(s)", "Score" : 1},
{"Answer" : "The application stack", "Score" : 1},
{"Answer" : "The application", "Score" : 1}
]
},
{
"Type" : "Option",
"SubCategory" : "Environments",
"QuestionText" : "Are the required environments (e.g. dev, test, integration) available in line with demand (e.g. right time)?"
},
{
"Type" : "Option",
"SubCategory" : "Environments",
"QuestionText" : "Is the provisioning, configuration and management of environments automated?",
"Answers" : [
{"Answer" : "Yes, and scaling is automatic", "Score" : 2},
{"Answer" : "Yes, but scaling is manual", "Score" : 1},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Testing",
"QuestionText" : "Does the team have a high degree of automated unit tests in place (testing individual modules)?",
"Answers" : [
{"Answer" : "Yes, automated tests are in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated tests are in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Testing",
"QuestionText" : "Does the team have a high degree of automated integration tests in place (testing the interaction of modules with each other)?",
"Answers" : [
{"Answer" : "Yes, automated tests are in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated tests are in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Testing",
"QuestionText" : "Does the team have a high degree of automated system tests in place (confirming overall system functionality meets requirements)?",
"Answers" : [
{"Answer" : "Yes, automated tests are in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated tests are in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Testing",
"QuestionText" : "Does the team have a high degree of automated performance tests in place?",
"Answers" : [
{"Answer" : "Yes, automated tests are in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated tests are in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Static Analysis",
"QuestionText" : "Does the team complete automated scanning of source code assets?",
"Answers" : [
{"Answer" : "Yes, automated scanning is in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated scanning is in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Static Analysis",
"QuestionText" : "Does the team complete automated scanning of binaries?",
"Answers" : [
{"Answer" : "Yes, automated scanning is in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated scanning is in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Static Analysis",
"QuestionText" : "Is code automatically scanned for quality during a build?",
"Answers" : [
{"Answer" : "Yes, automated scanning is in place and run on every build", "Score" : 1},
{"Answer" : "Yes, automated scanning is in place", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Does failure to meet coding standards or security rules trigger a break in the build?"
},
{
"Type" : "Option",
"QuestionText" : "Is code developed to achieve automation developed with the same rigor as product code (e.g. testing, source control)?"
}
]
},
{
"SectionName" : "Architecture and Design",
"SpiderPos" : 5,
"Questions" : [
{
"Type" : "Option",
"QuestionText" : "Does the architecture of the application consists of loosely coupled components (choose the most accurate description)?",
"Answers" : [
{"Answer" : "The application is built from a number of stateless components with scaling and resilience provided at the application layer (full MicroServices)", "Score" : 3},
{"Answer" : "The application is made up of several separate components but relies on external solutions to provide availability and scalability", "Score" : 2},
{"Answer" : "The application is largely monolithic but made up of code modules that can be worked on independently and then re-compiled into a single unit", "Score" : 1},
{"Answer" : "The application is built up of monolithic code and can only be changed in its entirely as part of a release schedule", "Score" : 0}
]
},
{
"Type" : "Checkbox",
"QuestionText" : "Does the architecture enable development, testing and other QA activities to be representative and performed independently of each another without impacting production (tick all that apply)?",
"Answers" : [
{"Answer" : "There are fully separate development, test and QA environments", "Score" : 0.5},
{"Answer" : "Environments are regularly re-built or synchronised (at least monthly)", "Score" : 0.5},
{"Answer" : "The 3 environments are similar at all levels (resilience, performance, security, dependencies)", "Score" : 0.5},
{"Answer" : "Each environment can be torn down and rebuilt without affecting other environments", "Score" : 0.5},
{"Answer" : " Environment specific configuration items are decoupled from the code in order to accelerate rebuilds", "Score" : 0.5}
]
},
{
"Type" : "Option",
"QuestionText" : "Does the architecture enable the deployment of services independently of one another?",
"Answers" : [
{"Answer" : "Yes, every element of functionality can be updated individually and applied to the application", "Score" : 2},
{"Answer" : "Partially, some elements can be updated independently, but there are certain core components that need to be updated together in order to maintain functionality", "Score" : 1},
{"Answer" : "No, updates to the system need to be performed together in a formal release cycle", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Are all application logs are written to a central log repository automatically with the configuration included in the environment design to allow portability between environments?"
}
]
},
{
"SectionName" : "DevOps Practices",
"SpiderPos" : 6,
"Questions" : [
{
"Type" : "Checkbox",
"SubCategory" : "CI",
"QuestionText" : "Does the team manage their source code in a central source control system (tick all that apply)?",
"Answers" : [
{"Answer" : "We have a common code repository (e.g. Git based repo)", "Score" : 0.5},
{"Answer" : "We have a defined branching structure", "Score" : 0.5},
{"Answer" : "We have defined repository structure", "Score" : 0.5},
{"Answer" : "Our structure and branching strategy are aligned to our Dev, Test, and Prod environments (enabling a smooth flow between environments)", "Score" : 0.5}
]
},
{
"Type" : "Option",
"SubCategory" : "CI",
"QuestionText" : "How frequently do developers integrate their changes into a shared mainline (trunk)?",
"Answers" : [
{"Answer" : "Code is integrated once per day or more", "Score" : 2},
{"Answer" : "Code is integrated at least weekly", "Score" : 1},
{"Answer" : "Code is integrated infrequently but at least once a month", "Score" : 0.5},
{"Answer" : "Code is integrated on an ad hoc basis when the developer feels it is ready to share", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Code Review",
"QuestionText" : "Is there a defined code review and approval process?",
"Answers" : [
{"Answer" : "We have a targeted code review process that is appropriate and ensures code is published in a timely manner", "Score" : 1},
{"Answer" : "We have a code review process but the process incurs delays and hinders deployments", "Score" : 0.5},
{"Answer" : "We have no code review process and bugs can frequently be integrated into the mainline (trunk)", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "CD",
"QuestionText" : "Whenever code is integrated with a shared mainline (trunk), are automated processes triggered?",
"Answers" : [
{"Answer" : "Yes, an automated build of the software is triggered into a production-like environment, automated tests are then triggered and software is available to be automatically deployed into production", "Score" : 2},
{"Answer" : "Yes, an automated build of the software is triggered into a production-like environment, manual tests are then performed before the release is manually deployed into production", "Score" : 1},
{"Answer" : "Yes, an automated build of the software is triggered, however this build is then manually deployed into the relevant environments (QA and Prod)", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "CI",
"QuestionText" : "Is highest priority always given to fixing a broken build?",
"Answers" : [
{"Answer" : "Yes, builds are fixed / rolled back within 10 minutes", "Score" : 2},
{"Answer" : "Yes, builds are fixed / rolled back within 1 hour", "Score" : 1},
{"Answer" : "Yes, builds are fixed / rolled back within a day", "Score" : 0.5},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "CI",
"QuestionText" : "Are adequate notifications are in place to communicate the build status and failures to the team (e.g. automated e-mails, slack, circuit)?"
},
{
"Type" : "Option",
"SubCategory" : "CD",
"QuestionText" : "Is it possible to roll back the application cleanly and reliably?"
},
{
"Type" : "Option",
"SubCategory" : "Refactoring",
"QuestionText" : "Does the team practice regular refactoring of their code?",
"Answers" : [
{"Answer" : "Yes, code is often updated independently of new functions or features to ensure technical debt is minimised", "Score" : 1},
{"Answer" : "No, code is only updated to enable new features or functionality", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Refactoring",
"QuestionText" : "Is time allocated/dedicated to refactoring to improve code quality and reduce technical debt?"
},
{
"Type" : "Option",
"SubCategory" : "Refactoring",
"QuestionText" : "Are there sufficient automated tests in place to enable developers to refactor with confidence?"
},
{
"Type" : "Option",
"SubCategory" : "TDD",
"QuestionText" : "How widely does the team practice Test Driven Development (TDD), ensuring that automated tests are developed in advance of new features?",
"Answers" : [
{"Answer" : "All product code is developed using TDD", "Score" : 2},
{"Answer" : "Some product code is developed using TDD", "Score" : 1},
{"Answer" : "TDD is not used at all", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "TDD",
"QuestionText" : "Is a standard test framework (such as JUnit) used by the team?"
},
{
"Type" : "Option",
"SubCategory" : "TDD",
"QuestionText" : "Is the refactoring step of the TDD cycle usually applied?"
},
{
"Type" : "Option",
"SubCategory" : "TDD",
"QuestionText" : "Are mocks/stubs/simulators used to ensure that tests can be run quickly, frequently and repeatably?"
}
]
},
{
"SectionName" : "Org Structure, Culture and Incentives",
"SpiderPos" : 1,
"Questions" : [
{
"Type" : "Option",
"SubCategory" : "Organisation Structure",
"QuestionText" : "Is the team a cross functional delivery team comprising development, testing and operations expertise?"
},
{
"Type" : "Option",
"SubCategory" : "Incentivisation",
"QuestionText" : "Are incentives for people on the team (both financial and non-financial) aligned to overall team results?"
},
{
"Type" : "Option",
"SubCategory" : "Organisation Structure",
"QuestionText" : "Are those responsible for designing, developing, testing and operating the application all part of the same team?"
},
{
"Type" : "Option",
"QuestionText" : "Does the team have accountability for the product throughout its life-cycle (introduction, growth, maturity, decline)?"
},
{
"Type" : "Option",
"SubCategory" : "Culture",
"QuestionText" : "Does the team have a culture of experimentation and innovation?"
},
{
"Type" : "Option",
"SubCategory" : "Culture",
"QuestionText" : "Does the team have a high trust culture which enables autonomy?"
},
{
"Type" : "Option",
"SubCategory" : "Incentivisation",
"QuestionText" : "Do people involved in developing and running the application have aligned incentives and goals?"
},
{
"Type" : "Option",
"QuestionText" : "Does the team have a say in what they work on (e.g. self selection days)?"
},
{
"Type" : "Option",
"SubCategory" : "Organisation Structure",
"QuestionText" : "Does the organisation structure catalyse and support a DevOps approach?"
},
{
"Type" : "Option",
"QuestionText" : "Is there a team charter that describes how the team behaves and works together?"
},
{
"Type" : "Option",
"SubCategory" : "Incentivisation",
"QuestionText" : "Is there a clear vision and purpose for the product?"
},
{
"Type" : "Option",
"QuestionText" : "Are all the product's stakeholders identified and engaged?"
},
{
"Type" : "Option",
"SubCategory" : "Incentivisation",
"QuestionText" : "Is the team aligned and incentivised to a measurable business outcome?"
},
{
"Type" : "Option",
"QuestionText" : "Do management and the wider organisation see the value in protecting time for continuous improvement?"
},
{
"Type" : "Option",
"QuestionText" : "Does the team have enough time to learn new technologies, tools and practices?"
},
{
"Type" : "Option",
"SubCategory" : "Organisation Structure",
"QuestionText" : "How frequently is there interaction between the business and the development team?",
"Answers" : [
{"Answer" : "Business users are embedded within the team", "Score" : 2},
{"Answer" : "The team meets with the business at least every week", "Score" : 1},
{"Answer" : "The team meets with the business at least every month", "Score" : 0.5},
{"Answer" : "Rarely or not at all", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Culture",
"QuestionText" : "Do senior stakeholders buy into and support the DevOps approach?",
"Answers" : [
{"Answer" : "Yes, we rarely have issues with business cases or bureaucratic processes", "Score" : 2},
{"Answer" : "Yes, there is buy-in and understanding, but business processes are still too rigid", "Score" : 1},
{"Answer" : "No", "Score" : 0}
]
},
{
"Type" : "Option",
"SubCategory" : "Culture",
"QuestionText" : "Do members of the team practice continuous learning?"
},
{
"Type" : "Option",
"SubCategory" : "Culture",
"QuestionText" : "Does the team have a feedback culture (where people are happy to quickly share negative and positive feedback)?"
}
]
},
{
"SectionName" : "Standardisation",
"SpiderPos" : 5,
"Questions" : [
{
"Type" : "Checkbox",
"QuestionText" : "Has the organisation standardised on a set of tooling standards (tick all that apply)?",
"Answers" : [
{"Answer" : "We have a defined set of CI/CD tooling that is universally used", "Score" : 1},
{"Answer" : "We have defined code repository tooling and standardised usage processes for them (e.g. branching pattern)", "Score" : 1},
{"Answer" : "We have defined monitoring tooling", "Score" : 1},
{"Answer" : "We have defined patching/upgrade tooling and processes (e.g. immutable vs. mutable)", "Score" : 1}
]
},
{
"Type" : "Option",
"QuestionText" : "Has the organisation standardised on a set of application stacks/development languages?",
"Answers" : [
{"Answer" : "Yes, with a sufficient portfolio of options to meet our development needs", "Score" : 2},
{"Answer" : "Yes, but with an insufficient portfolio of options to meet our development needs", "Score" : 1},
{"Answer" : "No, any team can choose any stack/language without constraint", "Score" : 0}
]
},
{
"Type" : "Option",
"QuestionText" : "Do you make the best use of SaaS (Software as a Service) for utility applications (i.e. ones not used for competitive advantage such as version control)?"
},
{
"Type" : "Option",
"QuestionText" : "As much as makes sense, do you use PaaS (Platform as a Service)?"
},
{
"Type" : "Option",
"QuestionText" : "As much as makes sense, do you use IaaS (Infrastructure as a Service)?"
}
]
}
]