Upload
choose
View
483
Download
2
Embed Size (px)
DESCRIPTION
These are the notes from the slides used by Ralph Jocham for the CHOOSE Talk he gave on December 8, 2009
Citation preview
�
��������� ������������� � ��������������������� � ������������� �������������
�
������������� ��� � � � � � � ����������� ������
�� !��"�����
����� �#$��%!���&�'#� �������
�
�
����(��)��*��+
�� !��"����
� ������� �������� ��
, -.� ��*��+
������������� ��
�����������
�
�
��������� ������������� � ��������������������� � ������������� ����*��������
�
������
�/�"� $�*��+
�� !��"����
� ������� �������� ��
, -.� ��*��+
��
0����������$
���
��
�
0����������$�1��������2����
3����!�����4�� ��������������������4�� ��!������%5��� $���������������)� �� ��� �����4���4�������4��������� �� ������� � ������
������
�/�"� $�*��+
�� !��"����
� ���*��� �������� ��
, -.� ��*��+
0����������$���
��
��
0����������$�1��������2����5�������#�
����� ��$�� ������������$������������ !���!����� �)� �� ��� ���������� �� � �� ��#����4�$��'�5��� $���� � �����������4������� ���
������
�/�"� $�*��+
�� !��"����
� ���6��� �������� ��
, -.� ��*��+
0����������$���
��
��
���� ���#
0���
�
��������������4�����0��� �4������������# � ���
• 7���# �
• 0 �����#�
• ��#����4�
• �������������
• �����
����������������4��������� ���#����� �� ���������� $�!���������������� ������ � ���
• ������� � !���
• ���������#�
• ��#���% �
• 7������������!��8�������� ��������9�������5�� �3��#������:���� ���$ �:�;<�
• �����
�� � � �94� �<�#��4�������:���������� ������'�� ��!������� � �� ����� ������� �� �!����������$��
����������
�/�"� $�*��+
�� !��"����
� ���=��� �������� ��
, -.� ��*��+
0����������$���
��
��
���� ���#
0���
�
3������ � �� �8� ��)����������� ������4��������)��� �) >����� � �4� ����� ��#�:����!� �) ����� ��
3����� ���� ������������� ������������#���!��������>����� ��������)����������� ���� ������ ����)����:�0������0*�)�# �)���0?�9�����)�# �� �4��#���� � <��'����� �!����:����#������&��������������� ���������4������
�
��������� ������������� � ��������������������� � ������������� ����?��������
�
������
�/�"� $�*��+
�� !��"����
� ���@��� �������� ��
, -.� ��*��+
0����������$
���
��
��
���� ���#
0���
�
A����������!������� �����������!��� ��������� ���#�� ��>�������������� ��$��������!��8������4��:�4���������������4�$�����!���� ��4��)��� ���� ������������������������������������������4�����������������
' �:���� ���� ����!��8��������� �#�������� $� �4��������)#�����#���!����������B���� �C��!!�����D���4������!���� � � �����) ������� ��#��������������������4��� �� � �#�������� $��������
������
�/�"� $�*��+
�� !��"����
� ���E��� �������� ��
, -.� ��*��+
�
������ ! �����!����!��8���)������� ������������ ������#������4�����������)$�"�������� ��������F�����4�)������������++���9���!�&&444� ���� �������#<�
3���� �?��� ��
• 0��������4���
���0��� �� !�� �) �����!�������G��#����0���5�������� �#�90�H<������ �� !�� �) ���������#� �������������#���!�������#� ��� �!��4����#����� ���� ����� ���� ��
• �����7� ���
����7��� � ��������� �������� �������������� �! �)��� �)� ��� ���� �����4����� �
��������!���� �������) ��������������0���������������#�� ��
• �� �!������
����������� �! ��������� ��������������� !�����)��� �#������ �������������
���0��������4���������������7� ����������)��4����������!� �� ������4� �$���4� ����������� ����������� � ����� ��� ���������!��8������#���� �� �4����4����#� � ! �������� ������������ ��� ��
(��� ��4��������!������� ���� !�����! �����#����#:���� !��������4����� !��������� !������
������
�/�"� $�*��+
�� !��"����
� ���+��� �������� ��
, -.� ��*��+
�
'������#������7�*���$����� �4� ��������$�����7� ������������I����������! �������������������� �)��#��!! ��:�)���7� ��$��� �4����$�� ����%!��5����
7� ���� �����$�������� ����4���������� �������5�#����� ������;��3��������#���������������������5 ����4����%� ���#����#����!!����� ��
��0�� ������ ���7��
�������
�/�"� $�*��+
�� !��"����
� �������� �������� ��
, -.� ��*��+
0��������0��������
��!�����!���
'��������#����'��������#����
(����(����
�%!���&�7� ��
�
�
��������� ������������� � ��������������������� � ������������� ����6��������
�
�!����#������������� � � :�������������#������7�� � �$���������) ����!�����'���%!��&7� ���4�� ����������������7�� � ���$������
(�����
��� !� �����"�#�!$%�#�!���# ��#����"���# �������&'� �����#
I������� ��� �������!����� �%!����������� ������
I���4�����������! � ���� !�������� ���
I������ �!5)$5 �!��� �������� ��������! � �������#�� ��
I�������������� �����������������!������ �!��) �
'��������#�����
(�����)������"! �$����#�# ��$������#"�������#������ �#�����*
I��J��������� � ����$�����4���
I��J������������� �$�����) ������#�!��) ��
I���4����������������� ���
I��J��)#���������� ���!�����! :�)���4��������� � �������� ������#��
��!����
+$��#�# ��$������#"�����!#������������)��#��&���#��"����� !� #��'���,
I��J��)#������������� ��#5���! �� �����#�� ��
I�����������) ������ ��!��) ����$�����4���
I��J���� �!������!��� ��� ������4�����# �4�����
I��� ������%!����������
0���������
������*�����#������ �#�����*"��� ���* ���#�� �"�!!�%��*�� ���
I���4����������� �������� ��#������!��� ����54�����
I��J����� ������)$����5 �! �����������������
I��� �����������%!������������ ��
I������� ����������!! $��%� ��
�%!���
��� ������)���*�"������*$�##� )�%�")� � ����#��#���
I��������!����$� �����������4 �#�����������������
I����������� $� ��������)�������� ��
I���4����!����� $��������������:������� ����
K� �4��#��� ������� ��#��� �$����!���������
�������
�/�"� $�*��+
�� !��"����
� �������� �������� ��
, -.� ��*��+
�
����������� ��� �#��4�#������#������4�������� �� �� $�������#���4������� ����� ������9L0�� �� �� $���� ��)$��� �!� <����$�4� ��������� ����� ����#���!����!�! ���������7���������# ���
���$������� ����� ����#���������#�9������ ��� $���7<�
��4��������� ���������� �4�����$������� ��������� ����$����%� ���#���������:���4������)�� �$�����4������������
�#%��-���������������� �)�� �H��� ��!������� �)��������
.!������-�I��������������������������4���)��#����)�������)����4 �� �������)�������#�)�����������#��������#�����!��) �� �����!!�������$������� ����� ���$�!��) � �����C��� ����� �������� ������
����� ���-����C�����K�������)$������#���!� �������������*�!��8�� �������!����� � �#����������
�
�
��������� ������������� � ��������������������� � ������������� ����/��������
�
���������)���$�������������������#���� ��������� ������� � ��� ���� ��!���������/���� #���&�*����#������# %#�����#������'�� �������#,�
�������
�@��(��)��*��+
�� !��"����
� ����*��� �������� ��
, -.� ��*��+
�� �����
�� ��0�#Progress Tracking Graph
18
36
54
72
90
108
126
144
156
168
180
198
216
234
252
0
34
54
72
90
109
125
145
159
171
270 270 270 270 270 270
290 290 290
305 305310
285 285 285
18
34
54
72
90
109
125
145
159
171181
197
213
226
241
181
197
213
226
241
0.0
50.0
100.0
150.0
200.0
250.0
300.0
350.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
I terations (Number: End Date)
Sco
pe
(Sto
ry P
oin
ts)
Required to meet target Actuals Original Scope Target Scope Full Availability Projection Yesterdays Weather Project ion
�
���C�������������������� � �! �)���(���� $���5����$��� ����������� ��������$��� ��� ��������� � ���)�� ��� �� �4������������)����=� !���� ��
�������� �����
• (����5 ��������9������<����������4�� ��)��� �) �
• (����� $� ����
• (�� !�����! �����#�
• (�� !��������4�
• (������ !���� �
• �!����� �#������������ �
• ����# ������#���� !�����
• 0�������7���� ��!� ���
7��$�������!������ ���������!�������������!���5�������#�� ����� ������������!��������
�������
�/�"� $�*��+
�� !��"����
� ����?��� �������� ��
, -.� ��*��+
�
������ ��������������4�����$����������� ������ �$��� ����M �� $�$������� ������ �4�����4����4 ��������C�� �������$ �������������:���� �� ���������$����������������������$ ���������������������' ��� �!��) ��������)����4� ��#�������)#��5���#��
�������
�/�"� $�*��+
�� !��"����
� ����6��� �������� ��
, -.� ��*��+
������� �������
� ����� �!"�#�� ���$����$�����!�%� ����� �!"�#�� ���$����$�����!�%� ����� �!"�#�� ���$����$�����!�%� ����� �!"�#�� ���$����$�����!�%
& #�� ���!��������������'�(� �����������!�)�*����
& ��*� ������ ���������������� ��! �* ��!"���������! ���������� ���!
& ����#�� ���!��������� ���� ������������!�����������
� ����� �!"��� ��%� ����� �!"��� ��%� ����� �!"��� ��%� ����� �!"��� ��%
& +���!*�*������� ����*!� ���
& ��� �������� ���������"�� � ���,� ��������!����$����
& ����� ���������"���������������� ���� ������������
& ���������"�!� ������� ! *!��� ����! ��!*������ �$������
& ��� ��� ��!��� -������!�"� ��. ��!�!������/� �� ����!"�����* �����������
�
/�N���� ������� ��?�>� ���� ��
����������������#�/�>� ���� ��
�������
�/�"� $�*��+
�� !��"����
� ����/��� �������� ��
, -.� ��*��+
0#���������������123������� "�!�,���!�����!"��� ���*����!�������� ��!�"����!"�������!������������������� � �����4
567�
0�����!��!��!���� �������������5���� � ���!���!�7�� �!��� �!�������� "�!�,���!���!��(�������8! ��!�����9���!�� "�!�,���!�����!"���� ���������� ���������!� �:������� � ���!���!���!���� ����$�!"������4
;�!����*���
��
���������)�## ���� � :���� ������ ��� ��I��� � ��!��#� � ���*�5?�N:�����������$���4�� ��5� �� ����4��:�$��� �� ���� �����#��������
���C�� ��!������� $��������#��������������$ ����5������
����#��������#������� ��� ���������)#�����#��
�
��������� ������������� � ��������������������� � ������������� ����=��������
�
�������
�/�"� $�*��+
�� !��"����
� ����=��� �������� ��
, -.� ��*��+
�
I���#��4����$���� �������0�! �)������������#������4���$����� �������$�4� � ��������9!���$�������$����#<������������#��#�� ��
• �������!�����#�����>����� &�� � ����)��#���! �����$� !�������������� !������� $�#� �)�������B#���C��� ������������# �������#��!�����#���� ���� �����!�$�������
• �!���B������ C���$��������!��) ��������������#�� �
• 0�����#����� �� ���� �������� �� ���$������������ ���F!� ���� ��� � ��������� ��5!�������G������������� � �! ��'����� ���$� � �!�����#��
• O'������)��#�� ��)$���4���$�)�# ���$������5P���$� ��� ��� !�����������)�# ����� �9#�����7'������!������������:� ����4��� �!� :�;<�
• �� ���4��� ����� �� $���������� ����������������� � �5P�����������4���:������ ���4)�$�!��#��� �
� +�� ����#0+12.1���$���*�����������#�� 3����#%����������*$���'��� ������#�
�������
�/�"� $�*��+
�� !��"����
� ����@��� �������� ��
, -.� ��*��+
A������ ������� $���Q��!���$��������������������9���<���������������M� ��� ���$��� �� ������������ ������)����������4��� �!��#� ��3������� ������ �� $������:����� ����������������������$��5>����� �4� ����)��������������)�# ������4����9�����!��� ���� <���������� ��� ��4�$�������� !������ ����$:����������� �����#�����������������)���%�����#�����
��� ���� �$����� ����$���� �������
�������
�/�"� $�*��+
�� !��"����
� ����E��� �������� ��
, -.� ��*��+
�
������ �KM(R�3�����C�� ��������4�����4������������#�)��������� �� ��4�$��������#�����# ��3�������� ��)������������ ����� �����!�! � ����#������!��$���������4������������������������A�� :����!�! � ����#����������$�� ���� �� ���$� ����)������ �����4���������*�#�����!��%� %���������*�#�����!��%,�
�������
�/�"� $�*��+
�� !��"����
� ����+��� �������� ��
, -.� ��*��+
���
��
���� ���#
0���
0����������$
��
�
A���������4�����#�����!��� � �������������� ����4���������� ���#�� � �� �%� ���#���������� $����!��#� �4� � �� ����� ���!!� � ����)������� �� $� �� ��� ���
5�#��� ��%�������'���!#�� �*�#! ����#)�#��$��3����#%��#� ,
�
��������� ������������� � ��������������������� � ������������� ����@��������
�
�������
�/�"� $�*��+
�� !��"����
� ����+��� �������� ��
, -.� ��*��+
���!�� 2��!����#��
2��!����#��
+�� ��%
2��!��
��3�� ����#�
2����#�
+* �����#
6� ��
+* �����#
��������*%2����#�2� #���#%
6� ��2� #���#%
������������#�� 7���#���������#��� ������ �$���� �� ��� �# �����! %��$ S ?�����������)$ �� !���������$:�K������� ��� :���� �4��# ���
�
������ ! �������#�����>����� ��%� ��3��4��� � !��� $�4 �4�����������! ������������! %��������4��:�����)� ��$��������#��>����� ���������#���#�)� � ������$� ���������!��8���!�� ���������� � �� �������������� �#$��%� ���������)� ��� ����)��) ������������� �����# ���� ���#���#�����# � ������������ ���4���������#�������������! ������������! %������
�������
�/�"� $�*��+
�� !��"����
� ���*���� �������� ��
, -.� ��*��+
����!�����<(�����!��
�
3����������#��������� ���#��������� ����� � �4������������������ ��%� ����
�������
�/�"� $�*��+
�� !��"����
� ���**��� �������� ��
, -.� ��*��+
0����������$
���
��
��
���� ���#
0���
�
A���������$������� ������! %��$�������!��������>����� ����������������# ����������� �!�� �
��������� � �� ������������ �#$���������#����4��������#�� � ����������� �%� ��:�4�#��)��������������� ��
�������7�������
�/�"� $�*��+
�� !��"����
� ���*?��� �������� ��
, -.� � �*��+
�/�"� $�*��+
�� !��"����
� ���*6����������� ��
, -.� ��*��+ �
�����)��� �� $���! ����������������� ����� �!����������� �4��������������!������
'���4���������$��������4�����#��������)� �� ����5����'����� �!��������4����� �����������S����4������ ��� $ ���
� ������������������������������ ���������������� ��$:� ��#� ��������)� ��
�������
�/�"� $�*��+
�� !��"����
� ���*/��� �������� ��
, -.� ��*��+
Coding Standards
Test Driven DevelopmentRefactoring
Pair Programming
Small Classes/MethodsGood Naming
No Code Duplication
Coding Standards
Test Driven DevelopmentRefactoring
Pair Programming
Small Classes/MethodsGood Naming
No Code Duplication
�
0������ ������ ����������
� �����#��������� �
� 0����0��#����#�
B����#�����#������ �����0����0��#����#C�93����"� $&'�#� ��*���<�
T;U�6�N��� �������������� �#��������� �)�# ���������)��������>�� ��$��T;U�����+�N����!��#��� ��������!����!��#����#�������$�#��� ���������T;U�
� � ���������� �!���
B�� ������!����� �#��>�� ��$C��93����7����&'!�� �*��E<��
T;U���� � ����:� � ������ :�)�������! ��#��������� ���! %�T;U�
� ���������#�
�
��������� ������������� � ��������������������� � ������������� ����E��������
�
� (��������! ��������
� �� �� � &(���#�
� V����(���#�
H���)$������$�������!�����! ��B' 4�$ � ��������!5#����� �� ��������$�����������C��
�
�������
�/�"� $�*��+
�� !��"����
� ���*=��� �������� ��
, -.� ��*��+
Fully automated build fromCheck in to Deployment
Continuous IntegrationCruiseControl, Hudson, …
Data Driven TestsFIT, FITnesse
Unit TestsxUnit
Functional/Story TestsSelenium, JFCUnit, …
Coding StandardCheckstyle, JCSC, …
Code DuplicationCPD of PMD
SingletonsSingleton Detector
Build SystemsAnt, Rake, Maven, …
TestabilityTestability Explorer
�
��� ���������� ����� �#���
3��$������ �����#����*�����:�����#��������������������������� ���������4� ��������)�������?�����������������������#���' ������������� ����� ���!��������������������$������������3��������� $��5 ���) ����!��� ��
��� ���#������!��������������$���������������� �3��5#��������'�������������� ����)�����������$�����5��#�9*��� �����$���� � �<����)�� � ����4�� ��!! �������:���� �� �� � ������� �������� ������� �����$����#���!5!� ���������� $������)$�������#����������� ���������)������������ ��)�������� �������������
�
�������
�/�"� $�*��+
�� !��"����
� ���*@��� �������� ��
, -.� ��*��+
�=� ��� > " ����!"
=>
6�����������$���•0����!��#����#•0 �����#�#�•� �5�������� �!��•A�� ���
2��#������! �����•��������� ����#������•���������#����� �#���!�����•�� �� �
��� ������ �#�����*•�����#� ������� •�� ����������4�� ��!•��! �� �#�•�$ ����!���
8 �* ���� )��� �•�� �����) �!��
�
' ���� �� !�� ����)��#����� ��)$�L���0��5#����#�9L0<���%���0��#����#�� ���)���������#��������) �����!���!��� ����4��:��� ����� $��#�!�����! �����!������ ��>��������#���#������� ��5! ����
�������
�/�"� $�*��+
�� !��"����
� ���*E����������� ��
, -.� ��*��+
98�� ���� ��
98
�
�� ��-�>����� �K %�)� ��$�
98-� ������� �K %�)� ��$�
L0��������������>�������4�!������ ���������)������ �� ��� ���������#�� �������$���������� �)������������#�����
�������7��7��7��
�/�"� $�*��+
�� !��"����
� ���*+��� �������� ��
, -.� � �*��+
T;U����� ��!! $��#L0�!������ �!�����%�� $���#��>�� ��$�T;U
T;U�!��������� ���$�!��8�� :������ ������������� ����������%��������#��!��������������! �������4����L0��#�����#�!������ ��� ���
�/�"� $�*��+
�� !��"����
� ���?������������ ��
, -.� ��*��+
T;U����L0�!�������������������#� ����� ���$����� ��� ��� �� �������������4�� ������� ����������������)� �T;U
�/�"� $�*��+
�� !��"����
� ���?���� �������� ��
, -.� ��*��+
T;U�L0�!������ � � ����#�������!��) �T;U
�/�"� $�*��+
�� !��"����
� ���?*����������� ��
, -.� � �*��+
567������� ��� ��!���!�� !�� ������� -�����!��� ���!���������$� �"���������������39������������� ��!���!�������!"9����� �" ����!������!"9��� ��!����! ��� ������!" ������������!�� ��� �����567
�
�
��������� ������������� � ��������������������� � ������������� ����+��������
�
"�������� ���:����������������� ��������:�� �������� $���#����4����L0����� ��>��� ����������#�����
� T;U����� ��!! $��#�L0�!������ �!������%5�� $���#��>�� ��$�T;U�
� T;U�!��������� ���$�!��8�� :������ ���5����������� ����������%��������#��!��������������! ��������4����L0��#�����#�!������ ��� ����
� T;U����L0�!�������������������#� ����� ���$����� ��� ���� �� �������������4�� ���5���� ����������������)� �T;U�
� T;U�L0�!������ � � �����#�������!��) �T;U�
� T;U��������������������������������� �!��58������ �� ������� �������#�������� � ��E�N:��� $������������������ �� ���#:��� ��#� ����� ���#:�!������������ ����� ���#������ ��5! ���� ���� ��T;U�
�������
�/�"� $�*��+
�� !��"����
� ���??��� �������� ��
, -.� ��*��+
?!��!����#�� $���!�
K� �W��+*@@@�=�
���C�� ��!������� $��"� ��)$�����#�������������� ������ ��#����� ����90�<�!�������G��0�H�$���4� � �)�#��!����� ���
3������� �������������� �3��#����������37������� ������������� ��3������� ��>�������#��� �!!���D��3��>��� ��� ������������ � � ��
�������
�/�"� $�*��+
�� !��"����
� ���?6��� �������� ��
, -.� ��*��+
@�A��@�A��@�A��@�A��
�
��������� ������������� � ��������������������� � ������������� ��������������
�
�������
�@��(��)��*��+
�� !��"����
� ���?/��� �������� ��
, -.� ��*��+
��� �!���
& <(� ����> " ����!"�<(����!� 9�;�!������9�� ��!�B�����9�C�< ���!�C���
& �"������*� ����$�����!��*������ ��9�;�!����*��� 9�D������� ��9�> �!�����E���9����C
& �"����> -����D�!�"���!��*������ ��9�;�!����*��� 9�D�� ���> ���9����F
& D�!�"�!"��"����> -����9���!-�$��"����!�9�> �!�����E���9����2
& �"����� ���!�>���� !�9��� <������ ���9�� ��!�B�����9�����
& ��*� ��> -������ $�$���G�� �9����$��D�?!!���9�D�� ���> ���9�C��1
& >��!!�!"�<(� ����> " ����!"9�;�!������9�D� ��!�H*�� 9�� ��!�B�����9�����
& ?���!�? �9���� ��?��D� ��!9�> �!�����E���9�����
& ?!��!����#!��" ���!I�#�� $�!"���*� ��@��������! ��� ���!"�����9�>������$��9����$��D�����9
�! �*�G�$� 9�� ��!�B�����9����1
& �"���������!"9���!���G �" �9�J����? ����!9�� ��!�B����������
& #!�� $��*�*����;�!����*��� 9��"����?����9�C��H��������5��!�7
& �� �!"���!�!"�����?���� �>�� �> " ����!"9�J�� ���B�������9���� �����;����� 9�B� �?�!!�!"���9
�!��� ���9�#<<<�����K��"���������
& ��������'� �$�!'��$�����!���������#�� $������"!�@������9���$� �����!,�!9�E�����!���� ��!9
#<<<�D� ��K�� �������
& H��������� ����� ��� ��I��������� ��������� �E��� � ����$� L�� � ��$�����!�������9
�������� ��! 9�>����9�G�� ����!����9�<��� �����!�� "9�D�� ��� ��-�
& #!� ����!���J��!���*� ����$�����!�9�CF�L��������5��!�7�
& <(� ����> " ����!"�5��!�7
& �� �������!�� 5��!�7
�
�
�