нии — это "тупые юзеры", то, поверьте, она проявится, на
радость конкурентам, во многих вещах.
Теперь поговорим о трех основных занятиях программиста:
1. Написание кода для данного релиза происходит во время
стадии "Кодирование".
2. Интеграция кода для данного релиза происходит по за-
вершении стадии "Кодирование".
3. Ремонт багов для данного релиза происходит во время
стадии "Кодирование" следующего витка цикла разработ-
ки ПО (соответственно в пункте 1 программист ремонти-
ровал баги для предыдущего релиза).
97
1. НАПИСАНИЕ КОДА
Один программист написал:
мист написал:
2. ИНТЕГРАЦИЯ КОДА
а. Пытаемся два куска кода соединить в один:
б. Код не компилируется (компайлер выдает ошибку о неоп
ределенной переменной), так как второй программист на
писал
в. Код второго программиста фиксируется:
г. Пытаемся два куска кода соединить в один:
д. Код компилируется, но первый программист выполняет
юнит-тест, по которому
е. Код первого программиста фиксируется:
ж. Пытаемся два куска кода соединить в один:
з. Вроде все в порядке, передаем тестировщикам — пусть
они тра... маются.
3. РЕМОНТ БАГОВ
Согласно спецификации должно быть:
Тестировщик рапортует баг, и на основании этого бага програм-
мист меняет код.
98
1. НАПИСАНИЕ КОДА
О написании кода мы уже говорили. Один момент:
Качество работы программиста не должно оцениваться по коли-
честву багов, которые он взрастил, так как помимо таких субъек-
тивных вещей, как профессионализм и добросовестность, на на-
личие багов влияет множество других объективных факторов, о
которых мы упоминали (нехватка времени, плохие спеки и т.д.).
2. ИНТЕГРАЦИЯ КОДА
Вариант 1. Неблагодарный
После того как код написан на игровой площадке каждого из
программистов, происходит интеграция кода, когда тысячи строк
кода разных авторов компилируются на одном компьютере, на-
езжают друг на друга, спотыкаются, огрызаются и дарят релиз-
инженерам, производящим интеграцию, сомнения в принципи-
альном наличии вселенской гармонии.
•
•
•
•
•
•
•
•
Вариант 2. Благодарный
Чтобы избежать проблем, когда в один момент происходит мас-
сированная интеграция кодов разных авторов, как в Варианте 1,
программисты производят интеграцию постоянно по мере напи-
99
сания нового кода (т.е. стадия 1 и стадия 2 цикла разработки кода