Программное обеспечение принцип Питера - Википедия - Software Peter principle

В Программное обеспечение принцип Питера используется в программная инженерия описать умирающий проект, который стал слишком сложным для понимания даже его собственными разработчиками.

Это хорошо известно в отрасли[нужна цитата ] как тихий убийца проектов, но к моменту появления симптомов часто уже слишком поздно что-либо с этим делать[нужна цитата ]. Хорошие менеджеры могут избежать этой катастрофы, установив четкие методы кодирования, избегая излишне сложного кода и дизайна.

Имя используется в книге C ++ FAQs (см. ниже), и получается из Принцип Питера - теория о некомпетентности в иерархических организациях.

Причины

Утрата концептуальной целостности

Концептуальная целостность программного обеспечения - это мера того, насколько хорошо оно соответствует единому простому набору принципов проектирования, согласно Месяц мифического человека к Фред Брукс[нужна цитата ]. Когда все сделано правильно, он обеспечивает максимальную функциональность используя самый простой идиомы. Это упрощает использование программного обеспечения, упрощая его создание и изучение.[нужна цитата ].

Концептуальная целостность достигается, когда дизайн программного обеспечения исходит от небольшого числа согласных людей[нужна цитата ]. Чтобы программное обеспечение сохраняло концептуальную целостность, проект должен контролироваться одной небольшой группой людей, которые хорошо разбираются в коде (включая природу взаимодействия всех подпрограмм и переменных).

В проектах без сильного программная архитектура команда, задача дизайна часто сочетается с задачей реализации и неявно делегируется между отдельными разработчики программного обеспечения. В этих условиях разработчики менее склонны жертвовать личными интересами в пользу интересов продукта. Сложность продукта возрастает в результате того, что разработчики добавляют новые дизайны и изменяют предыдущие, чтобы отразить изменения в моде и индивидуальном вкусе.

Некомпетентность программиста

По мнению авторов, лучшие разработчики программного обеспечения понимают важность общения с людьми, а не общения с компьютером. Код завершен к Стив МакКоннелл. В среднем 85 процентов времени программиста тратится на общение с людьми, и только 15 процентов - на общение с компьютером.[нужна цитата ] Программисты обслуживания тратят от 50 до 60 процентов своего времени, пытаясь понять код, который они должны обслуживать, а программа будет иметь в среднем 10 поколений программистов обслуживания.

Неопытность программиста

Иногда программисты принимают решения, которые работают, но имеют непредвиденные негативные последствия. Наиболее частые из этих ошибок занесены в каталог и обозначены как пахнет в книге Рефакторинг к Мартин Фаулер. Со временем многие такие варианты реализации ухудшают дизайн программного обеспечения, делая его все более трудным для понимания.

Смотрите также

Рекомендации

  • C ++ FAQs Клайн, Ломоу и Жиру, Addison-Wesley 1999 ISBN  0-201-30983-1
  • Брукс, Ф., Мифический человеко-месяц, Addison-Wesley Longman Inc., 1995.
  • Макконнелл, С., Код завершен, Microsoft Press, 1993 г.
  • Фаулер, М., Рефакторинг, Эддисон-Уэсли, 2000 г.