ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Instructions
2
The most important skill for a manager is to select the ONE idea to implement this week. Not trying to do 10 at once. Only ONE forces the manager to pick the BIGGEST IMPACT item that is doable in a week. Elite managers are comfortable being forced to make decisions about cost and priority and timing, not JUST produce a list of things for someone else to choose from. What happens with bad managers is they generate all the ideas and pick the wrong things to do at the wrong times.
3
4
Deliverable #1: What is the biggest impact item for this team that you would do next week?
5
Action: Replace Peer Reviews with a dedicated and independent Internal QA team focused on building a most effective and efficient IQB enforcement process.

Problem: Peer Reviews and CRN are not effective in identifying process failures and regressions. CRN only focuses on code quality issues related to language usage and naming. Peer Reviews did not catch any of the 33 EQB fails in W50 (See CiCs). Peer Reviews don’t assign responsibility for outcome to the reviewer, force ICs to context-switch rather than focus on one task, work against IC metric, and are subject to bias and informal communication. Best practices recommend an independent QA team.

A deep dive showed that:
a) No IQB checklist was used by the review.
b) The ICs see Peer Reviewing of their colleague's work as a formality that is impossed by the process.
c) It distracts them from their metric-producing activity.
d) The ICs have no responsibility for the outcome of the review
e) Rather than using automation to assign reviewers, some ICs favor assigning to someone who they have a relationship with in order to be able to resolve the outcome informally which contradicts the principles of QA and skews the IQB FTAR metric.

A TMS of the reviews showed an average of 25.7 minutes per review, with 5 mins automatable via Jira. Using T4W weekly output of the 10 ICs, that translates to 66 hrs of reviews or 2 ICs (5:1 ratio of producer to reviewer). The QA ICs performance metric will be “# of reviews completed”. Quality metric will be # of reviewed Tickets that pass EQB and have no regressions. See daily implementation plan. The QA ICs will be rotated from the CC pool quarterly and only allowed to communicate with producers via Jira. This will not require any additional ICs as the work is already being done by the existing team. In fact due to 100% focus the team will get more efficient and will develop better automations and tooling.
6
7
Deliverable #2: Provide a summarized stack rank (1 = action you would take next week.......5 = least important decision to make)of all the actions you recommend for this team based on your insights with WS data.
8
9
ActionAffect quality?Easy/Hard?Quick/Long?Color code
10
1. Set-up a dedicated and independent Internal QA team with structured process and toolchain.
2.45% FTAR improvement
EasyQuick1) Problem should fail IQB but was not caught
11
2. Define a process for PCA to provide a project-specific Addendum to IQB.
1.02% FTAR improvement in combination with 1 Idea
EasyQuick2) Unsatisfied with UT coverage
12
3. Define a CC Team Output Specification and require all PCAs to familiarize themselves with it (sign-off on it) before placing an order.
Help eliminate 100% of regressions. Only 0.52% of FTAR, but most damaging.
EasyQuick3) PCA presents project-specific requirements
13
4. Extend Autofix to cover more cases (Duplicate Code) as well as .NET to eliminate errors on Dead and Dupe Code tickets and improve team productivity.
Approximately 40% of all tix and 30% of EQB fails. Potential +0.99% FTAR effect.
HardLong4) Miscommunication with the PCA regarding CC work and process
14
5. Implement tooling to do a logic Diff that highlights changes in execution (see 25% QoQ and Tools slides).
Reduce rate of regressions, ~75% are subtle logic changes, FTAR effect +0.39%
HardLong5) Other additions to IQB bar
15
16
Deliverable #3
17
Jira ticket linkScreencaptureReason for QB failureSolution
18
https://jira.devfactory.com/browse/CC-206358CC-206358Build failed, but the problem was due to an issue unrelated to this ticket.Define a CC Team Output Specification and require all PCAs to familiarize themselves with it (sign-off on it) before placing an order. The PCA to confirm the ticket in fact violates the Output Specification before rejecting.
19
https://jira.devfactory.com/browse/CC-94132CC-94132IC changes execution logic, not caught by Peer Review.Improve IQB enforcement and Self-Review.
20
https://jira.devfactory.com/browse/CC-140335CC-140335Use of Dictionary to replace a switch statement can introduce regression if fields are modified. Not caught by Peer Review.Improve IQB enforcement and Self-Review.
21
https://jira.devfactory.com/browse/CC-54230CC-54230Merge conflict caused CI build failure. Verify against Dev branch before sending-off. Not caught by Peer Review.Improve IQB enforcement and Self-Review.
22
https://jira.devfactory.com/browse/CC-87857CC-87857Project-specific language requirement C# <6. Can be defined in Project-Specific EQB.IQB to include project-specific Addendum.
23
https://jira.devfactory.com/browse/CC-80614CC-80614UT naming convention violation and hanging CI build. Update IQB and Improve IQB enforcement.
24
https://jira.devfactory.com/browse/CC-209037CC-209037No UT coverage for AutoFix tickets. Misunderstanding with the PCA regarding UT coverage for Autofix tickets.Define a CC Team Output Specification and require all PCAs to familiarize themselves with it (sign-off on it) before placing an order. The PCA to confirm the ticket in fact violates the Output Specification before rejecting.
25
https://jira.devfactory.com/browse/CC-208904CC-208904AutoFix removed comments, PCA wants them back in.IQB to include project-specific Addendum.
26
https://jira.devfactory.com/browse/CC-50548CC-50548PCA presented formal requirements and communicated with the IC until they were met (did not formally reject the ticket). IQB to include project-specific Addendum.
27
https://jira.devfactory.com/browse/CC-93691CC-936911) IC fails to properly refactor, no caught by Peer Review. 2) Use of static, reducing cyclomatic complexity - misunderstanding on EQB. 1) Improve IQB enforcement.
2) Define a CC Team Output Specification and require all PCAs to familiarize themselves with it (sign-off on it) before placing an order.
28
29
Deliverable #4: Stack rank of solutions for QB failures
30
1. Improve IQB enforcement by setting-up an independent Internal QA team with a dedicated metric and automated process. IQB is as effective as the process to enforce it.
Peer Reviews, currently used to enforce the IQB, are not effective: i) They distract ICs from their main metric-producing task i) They work against their performance metric iii) ICs don't have responsibility for the review as the outcome does not affect their personal metric. iv) The reviews are not independent and can be affected by informal communication.
40%
31
2. IQB to include project-specific Addendum. Define a process to provide an Addendum to the Internal QB where the PCA can define a checklist of project-specific requirements and integrated them as a part of the Internal QA workflow automation.30%The project-specific Addendum to the IQB will also direclty benefit from better IQB enforcement from solution #1, but it's formally not included in the percentage.
32
3. Define a CC Team Output Specification and require all PCAs to familiarize themselves with it (sign-off on it) before placing an order. The PCA to confirm the ticket in fact violates the Output Specification before rejecting.20%
33
34
35
Peer Review TMS (in mins)Cuma CakmakPallaviIbrahimAverage
36
Open PR for review1.10.50.51.30.50.50.60.7
37
Open ticket and analyze0.61.11.41.70.50.00.00.8
38
QB open, copy QB with new name2.61.32.51.50.02.31.01.6
39
QB Fill summary1.51.61.81.20.01.20.81.2
40
QB Do basic checks which don't require code review5.13.32.52.04.85.23.03.7
41
Review for logic and correct refactoring, write comments
10.89.89.317.615.61.91.59.5
42
Check comments fixed0.00.00.03.80.00.00.00.5
43
Review for standarts and write comments4.010.32.02.70.00.00.02.7
44
Review tests, check coverage and write comment1.55.22.40.32.10.00.01.6
45
QB fill checks after code review2.12.61.72.43.40.00.01.7
46
QB Put link into PR description0.80.71.20.51.00.00.00.6
47
Approve PR and and close QE ticket1.00.01.61.40.90.71.31.0
48
Total time to do a review31.136.526.936.328.911.88.225.7
49
This is too short, low quality review
50
T4W average tickets produced per week (W47 - W50)191.5
51
Time required to review all tickets (min)4915
Potential time saved by automating workflow in Jira
5.1
52
Time required to review all tickets (hours)82
Peer review with automated workflow
20.6
53
Time required to review all tickets with Jira automation
66
54
55
Daily Implementation PlanDays
56
Set-up teamroom and metric, assign ICs1
57
Set-up process flow and IQB checklist in Jira3
58
Set-up process for defining project-specific addendum2
59
Set-up automation for tracking review to EQB fails mapping
1
60
Define playbook1
61
Total man-days8
62
63
64
EQB Fails
65
Summary (W50)ClassificationIssue KeyDupe and Dead Code
66
Long Methods :: product/src/generalui/src/com/actional/ui/configuration/DBConfigUtil.java
AutofixCC-209026
67
Long Methods :: product/src/serverui/src/com/actional/lg/serverui/deprecated/Wizard.java
AutofixCC-208549
68
Long Methods :: product/src/common-products/src/com/actional/soapstation/monitoring/LocalResultQueryBase.java
AutofixCC-208642
69
Long Methods :: reco-digest-deployable/src/main/java/com/jivesoftware/r2/digest/deployable/ui/digest/EmbedDigestUIEndpoints.java
AutofixCC-204315
70
Long Methods :: reco-deployable/src/main/java/com/jivesoftware/r3/deployable/RecoMain.java
AutofixCC-204294
71
BRP :: Short-circuit logic should be used in boolean contexts
AutofixCC-204585
72
BRP :: "@Override" should be used on overriding and implementing methods
No RejectionCC-204515
73
Long Methods :: impl/impl/DynamicContext.javaBroken BuildsCC-180123
74
Duplicate Code :: lib/externalCORBAInterface/intf/cib_adapt/IEciRechargeTags.java
Broken BuildsCC-2064691
75
Duplicate Code :: lib/externalCORBAInterface/intf/cib_adapt/IEciAuthorize1Tags.java
Broken BuildsCC-2064641
76
Long Classes :: product/src/common/src/com/actional/APIException.java
Broken BuildsCC-64772
77
Long Classes :: product/src/common-products/src/com/actional/soapstation/plugin/XmlInterceptor.java
False positive ticketCC-64596
78
Long Methods :: InternetApplications2/OasisLSSiWeb/OasisLSSiWeb/XML/OasisLSSiWebProcessSearchRequest.cs
Incomplete ImplementationsCC-145735
79
Long Methods :: CDSCallControlForWindows/WcfOasisCTI/VoltDelta.Oasis.CTI/Service/CtiService.svc.cs
Incomplete ImplementationsCC-145845
80
Duplicate Code :: AMS2Infrastructure/FilePublicationSubscriptionService/FilePublicationSubscriptionLibrary/FPSL_workerThread.cs
Incomplete ImplementationsCC-1450101
81
Duplicate Code :: InternetApplications2/IFX/OnlineUpdate/ListingExtract/ListingExtract.cs
Incomplete ImplementationsCC-1454121
82
Duplicate Code :: fmagent/agent/de/siemens/advantage/platform/oam/agt/fm/common/dispatch/AlarmCompression.java
No testsCC-154912Not counting these becaseuse the problem is related to lack of UTs
83
Duplicate Code :: fmagent/agent/de/siemens/advantage/platform/oam/agt/fm/common/dispatch/AlarmCompression.java
No testsCC-154955
84
Duplicate Code :: fmagent/agent/de/siemens/advantage/platform/oam/agt/fm/common/dispatch/AlarmCompression.java
No testsCC-154947
85
Dead Code :: fmagent/agent/de/siemens/advantage/platform/oam/agt/fm/common/dispatch/AlarmSuppression.java
No testsCC-155152
86
Duplicate Code :: Setup/GFI.Installer.ManagedActions/UserModeUpgrade.cs
No testsCC-179636
87
Duplicate Code :: Setup/GFI.Installer.ManagedActions/UserModeUpgrade.cs
No testsCC-179388
88
Long Methods :: core/src/main/java/com/jivesoftware/util/spell/SpellChecker.java
No testsCC-95938
89
Duplicate Code :: impl/impl/gdmBalancing/GdmExternalAdminBalance.java
Not following PR creation standardsCC-1801781
90
Long Methods :: Server/ASPNET/MarUI/User/Handlers/MarcAjaxEmailOperations.ashx.cs
Product specific changeCC-37674
91
Duplicate Code :: ac-src/cfbb/calib/src/main/java/com/siemens/nm/ca/permission/CABasePermission.java
Wrong Manual FixCC-1827101
92
Long Classes :: product/src/server/src/com/actional/lg/server/db/NetworkOverviewNode.java
Wrong Manual FixCC-65037
93
Long Methods :: Configuration/configieui/DImportExportWizard.cs
Wrong Manual FixCC-93691
94
Duplicate Code :: Code/Util/MailEssentials.Reporting/MsSqlSchemaChecker.cs
Wrong Manual FixCC-829421
95
Duplicate Code :: Code/Util/MailEssentials.Reporting/MsSqlSchemaChecker.cs
Wrong Manual FixCC-828971
96
Duplicate Code :: Code/Util/MailEssentials.Reporting/MsSqlSchemaChecker.cs
Wrong Manual FixCC-827951
97
Duplicate Code :: Code/Util/MailEssentials.Reporting/MsSqlSchemaChecker.cs
Wrong Manual FixCC-829691
98
Long Methods :: core/src/main/java/com/jivesoftware/community/action/ImportBlogContentAction.java
Wrong Manual FixCC-95811
99
BRP :: "hashCode" and "toString" should not be called on array instances
CC-211079
100
Total EQB fails3310