Программирование как управление рисками
Об управлении рисками в процесс разработки я уже писал. Но мне кажется, об управлении рисками можно говорить даже в рамках программирования (т.е. написания и отладки программного кода). По крайней мере, я себя часто ловлю на том, что многие решения в процессе написания кода принимаются именно путем оценки и сравнения рисков альтернативных вариантов, последствий наших действий или не-действий. Многие т.н. best practices, кстати, можно «объяснить» различными рисками альтернатив.
Пример 1. Стандарты оформления исходного кода. Поддержка единого стандарта на форматирования кода, именования переменных и файлов и т.п. требует усилий и нек-рой дисциплины разработчиков. Отсутствие такого стандарта означает снижение читабельности кода.
Пример 2. Автоматизированные тесты. Тесты означает дополнительный код, который необходимо разрабатывать и поддерживать в актуальном состоянии. Отсутствие тестов означает потери времени на отладку и снижение точности планирования.
Пример 3. Размножение кода (copy&paste). Анализ программы для инкапсуляции схожего поведения в параметризованные функции/классы требует усилий, подчас значительных. Многократное копирование с незначительными изменениями означает и копирование возможных багов и необходимость изменения множества мест в программе.
Эти примеры, как и многие другие, не описывают некоторые незыблемые аксиомы и жесткие правила; каждая команда разработчиков решает их по разному. Важно только, как и в проектном управлении рисками, делать это осознанно.
Если уж вы называете глобальную переменную nrz вместо numberOfResidents, подумайте, что менее плохо: потери времени при наборе текста или потери в читабельности программы из-за непонятного имени.
Программирование — дисциплина очень многогранная, множество разных моделей придумано для ее описания. Думаю, важно не то, насколько точно та или иная модель описывает суть этой дисциплины, а дает ли модель пищу для ума и получения ответов.
Как, например, модель где программирование представляется как управление рисками. Ведь программирование — это во многом поиск баланса, компромисса (trade offs), а выразить этот баланс можно как раз через риски.
13 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.