Закон Парето и программное обеспечение
Информация правит миром, как говорил наш компьютерный бизнесмен Билл Гейтс. Недавно игрался с такой интересной штукой как Oracle Business Intelligence. Нужно мне было сделать небольшой отчетик, и я в очередной раз убедился, что закон Парето проявляется везде, и даже такой монстр как Oracle не поможет этого избежать.
Для справки: Oracle Business Intelligence (Oracle BI) – это такой программный пакет, который позволяет строить по базе данных графики, отчеты, пересылать эти отчеты по почте и запускать их в автоматическом режиме, там есть много чего, но это сейчас не важно. А принцип Парето – это закон 80 на 20 (подробно о законе в Wiki или еще здесь), проявление которого можно видеть везде. Например, 20% клиентов дают 80% дохода, 80% времени занимает 20% работы и т.д. Вот как раз последнее и происходит часто в разработке программного обеспечения. Приходит к вам программист и говорит, что почти все сделано, осталось чуть-чуть доделать. А вот тут-то и проявляется принцип Парето. Можно быстро-быстро сделать большую часть, примерно 80%, а потом упереться в 20%. Что кстати и получилось у меня с отчетом. Как всегда, отчет практически полностью был сделан довольно быстро, но вот с одной колонкой, случилась проблема. Вывести ее в отчет оказалось не так просто, и заняло это в несколько раз больше времени, чем заняла вся сделанная ранее работа.
О законе Парето часто забывают программисты, когда оценивают потенциальное время разработки. Можно быстро сделать макет, как я называю этот процесс “на проводках”, макет можно показывать клиенту, демонстрировать руководству, все будут рукоплескать и спрашивать, о том, когда же можно это попробовать в деле. Ориентируясь на время, затраченное на макет, вы можете жестоко ошибиться в сроках.
Как только вы пытаетесь из макета сделать реально работающую вещь, вот тут и вылезают проблемы. Вдруг оказывается, что настройка какой-нибудь, казавшейся несущественной мелочи, которая, однако, так необходима клиенту и которую в макет естественно не включали, занимает в несколько раз больше времени, чем вся проделанная до того работа. И заявленные сроки летят к чертям, и клиент не доволен, и денег платить не хочет за “лишнюю” работу, а все потому, что разработчик при оценке трудоемкости забыл такой простой принцип 80 на 20.
P.S. Кстати, интересно было бы узнать, как в вашей жизни проявился принцип Парето.
P.P.S. А вот Крайнов, еще не успел ничего про закон Парето написать. Интересно было бы почитать про то, как 80% денег тратятся на 20% всякой фигни
Макс Крайнов
С принципом Парето в действии сталкиваюсь каждый день по многу раз. Надоело уже.
И в области BI тоже, правда, мы используем решения от M$. Вроде, всё сделано, всё круто – но вот пары метрик не хватает