konmik писал(а):Основными составляющими качества разработки из моего опыта, в краце являются:
Хороший набор. Только интересно к каждому пункту добавить средства, которыми он достигается - инструменты и методы (я вкратце упомяну свои).
konmik писал(а):1. Понятность чего и _почему_ вы хотите сделать.
Для ответа на вопрос "почему" часто использую первые документы шаблона
ReadySet (
http://readyset.tigris.org/). Там довольно толковая "рыба".
На вопрос "что" хорошо ответят спецификации требований к программе. Я намедни не поленился и перевел стандарт IEEE STD 830-1998 (
http://club.shelek.ru/viewart.php?id=344), там есть что почерпнуть, даже если не заимствовать его целиком.
konmik писал(а):3. Качественное написание кода, оно очень экономит вам время при доработке, переиспользовании и поддержке. Меры тут простые:
- следование выбранному вами стандарту оформления кода - аналог правильно оформленного документа, который приятно взять в руки.
В оформлении порой помогает
indent. Также полезна бывает встроенная документация
Doxygen, хотя не всем нравится.
konmik писал(а): - комментарии, например каждый оператор ветвления, цикл, расчетная константа ит.п. должны быть описаны,тогда легче следить за логикой и не надо напрягать память
Это тонкий вопрос. Многие авторитеты обоснованно считают, что если логика программы обильно закомментирована, это свидетельствует о ее запутанности, и такой код однозначно следует рефакторить. Кроме того, если код меняется, нужно переписывать и комментарии тоже, иначе они быстро потеряют актуальность. Лучше всего, когда код самодокументирован, а комментарии лишь проясняют отдельные неочевидные детали.
konmik писал(а): - разбивка на функциональные модули, т.е. не валим все в одну кучу
Тут, пожалуй, оптимальнее всего объектно-ориентированное проектирование.
konmik писал(а):4. Использование ситемы контроля версий, чтобы понять что, когда и хорошо бы еще и почему делалось. Так же это очень полезно для ситуации
"Ну вот, а пять минут назад работало...".
Полностью согласен, при правильном применении - незаменимая вещь. И даже при неправильном способна принести некоторую пользу, хотя и существенно меньшую, конечно.
konmik писал(а):5. Обсуждение(речью) написанного Вами с кем-то другим. (Здесь на форуме частенько попадаются вопросы поправить написанный автором код

Один из классиков (не помню, кто именно; кажется, Джон Роббинс) расказывал, что в особо затруднительных случаях подробно рассказывает неудачный алгоритм своему коту, который умеет слушать лучше всех. Высказанная вслух нелепость сразу становится очевидной.
konmik писал(а):6. _Регулярное_ тестирование позволяющее найти ошибку как можно раньше. Тут тема такая же большая как и разработка и о ней можно беседовать отдельно, если кому интересно, я бы точно умных людей послушал - поучился.
Тема просто
огромная. Я, как и обещал, взялся за небольшую статейку (которая, впрочем, по ходу начинает пухнуть, поскольку одно цепляется за другое, и вроде бы ничего нельзя выкинуть без ущерба для понимания). Как только будет результат, оповещу дополнительно, но пару недель, скорее всего, на это потребуется.
konmik писал(а):Все это звучит наверное избито, но, да, это работает и ,увы, далеко не везде этим пользуются.
Верно. Зачастую к тестированию относятся с таким же предубеждением, как староверы - к мирским благам: не пробовали, но слышали, что греховно. Попробовав же, убеждаются, что все не так уж страшно.
konmik писал(а):P.S.
Да и еще "Управление качеством" термин опасный, и лучше его в суе

, а особенно перед руководством не упоминать
Не вижу большой крамолы, только если это сопровождается реальными делами, а не пустословием. В самом по себе управлении нет ничего опасного. К тому же эта дисциплина является обязательной при изучени программной инженерии согласно SWEBOK.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle