Есть такой давно интересующий вопрос, на который я получал множество разных ответов как от проджект-менеджеров так и от обычных кодеров.
Какой должна быть скорость работы программиста и в чем ее измерять? И как определить качество работы программиста по количеству найденных в его коде ошибок бета-тестерами, его коллегами или в конце концов самими пользователями? Каков допустимый уровень "глючности" программы на разных стадиях разработки?
И как соотносятся скорость разработки программы и ее "глючности"? Каково должно быть это соотношение чтобы программист мог считаться настоящим профессионалом?
И каковы эти цифры для разных платформ, языков и технологий?
Сам я человек темный, малообразованный :) и хотелось бы получить разумный и точный ответ от многоуважаемых господ программистов.
(При ответе на вопрос условимся на том, что мы пишем не какую нибудь навороченную систему в которой множество ноу-хау и мы не делаем революцию в разработке ПО.)
А вот основные ответы по поводу скорости разработки и оценки "глючности", которые мне удалось получить:
1. Все определяется субъективно. Поставь пиво своему ПМ и коллегам и не морочь себе голову :)
2. если ты гуру ты будешь писать 2000 строк в день, занимаясь системным программированием под юникс
3. если ты простой кодер, ты обязан писать не менее 500 строк в день
4. пиши 120 строк в день и не напрягайся
5. 10-30 кб исходников "пальцами" без копи энд паст — это недельная норма
6. 10 кб кода в день "пальцами" без копи энд паст
7. 60 символов в минуту на сях :)
8. от ошибок никто не застрахован, смирись, гордыня — это грех :)
9. программирование — это очень творческая работа и измерению тут ничего не поддается, доверяй тому что тебе говорит твой ПМ и более опытные коллеги
Re: Соотношение количества и качества в работе программиста
Здравствуйте, unknown_programmer, Вы писали:
_>И каковы эти цифры для разных платформ, языков и технологий?
Кто знает...
_>А вот основные ответы по поводу скорости разработки и оценки "глючности", которые мне удалось получить: _>1. Все определяется субъективно. Поставь пиво своему ПМ и коллегам и не морочь себе голову
Бред. ПМ самого напрягают. Он не по своей воле требует от тебя сроки.
_>2. если ты гуру ты будешь писать 2000 строк в день, занимаясь системным программированием под юникс
При чем здесь юникс? Это круто? И системное программирование? Только "сосунки" думают, что системное программирование круче прикладного... Каюсь, тоже был сосунком.
_>3. если ты простой кодер, ты обязан писать не менее 500 строк в день
Не обязан. Ни строчки.
_>4. пиши 120 строк в день и не напрягайся
А что писать? Что в этих 120-ти строках? Если нечего, то будет 0. Зато в другой день наверстаешь.
_>5. 10-30 кб исходников "пальцами" без копи энд паст — это недельная норма _>6. 10 кб кода в день "пальцами" без копи энд паст _>7. 60 символов в минуту на сях
Опять же бред. Смотри выше.
_>8. от ошибок никто не застрахован, смирись, гордыня — это грех
Это конечно. Но при чем здесь ошибки? Ты же объем кода оцениваешь?
_>9. программирование — это очень творческая работа и измерению тут ничего не поддается, доверяй тому что тебе говорит твой ПМ и более опытные коллеги
Здесь полностью согласен!! Именно так. Забудь про какие-то конкретные лимиты, ерунда все это... Я вот могу дня 2 вообще ничего не делать (в смысле не сделать), зато потом за полдня недельную работу замутить. Причем, работа моя продолжается и после рабочего дня — в мыслях. Бывает и ночью просыпась — еврика! Ну ты понял...
Re: Соотношение количества и качества в работе программиста
в америке были проведены исследования, показавшие, что
1) Перед отдачей проекта тестерам, в нем есть 1 ошибка на 100 строк.
2) После завершения цикла тестирования, в нем есть 1 ошибка на 1000 строк.
3) 50% всех исправлений не верны.
...
список можно продолжить. (если хотите, в следующем послании, я это сделаю.)
Относится к этим данным нужно с некоторой долей скептицизма, т.к. во первых это статистика (средние данные), а во вторых скорее всего, они собраны среди американских программеров...
Re[2]: Соотношение количества и качества в работе программис
Здравствуйте, Lonely Dog,
Если не секрет, где вы нашли эти данные и нет ли каких нибудь книг в которых эта тема очень подробно раскрывается?
Считаете, что американские программеры хуже наших? :) или лучше?
тем более, если это исследование проводилось не раньше начала 90х, то сам термин "американские" — уже вызывает много вопросов :)
Re[3]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
_>Здравствуйте, Lonely Dog, _>Если не секрет, где вы нашли эти данные и нет ли каких нибудь книг в которых эта тема очень подробно раскрывается?
Если честно, всю эту фигню мне читали в институте в этом году. Могу прислать лекцию в электронном варианте, где этих оценок еще больше.
_>Считаете, что американские программеры хуже наших? или лучше?
Считаю, что их средний программер хуже нашего среднего. Однако, не будем забывать , что Кнут, Ахо, Ульман, Стокмейер и пр. из америки.
_>тем более, если это исследование проводилось не раньше начала 90х, то сам термин "американские" — уже вызывает много вопросов
Че-то я не понял этого утверждения.
Re[2]: Соотношение количества и качества в работе программис
Здравствуйте, Demiurg,
Ваш подход конечно весьма интересен :), и он годится для ситуации, когда фирма — это 5 человек, работающих у себя на дому. Но я весьма сомневаюсь, что он применим уже для кодера работающего в команде из 20 человек. Тем более если эта команда лишь один из отделов крупной компании...
Re[4]: Соотношение количества и качества в работе программис
Здравствуйте, Lonely Dog, Вы писали:
LD>Здравствуйте, unknown_programmer, Вы писали:
_>>Здравствуйте, Lonely Dog, _>>Если не секрет, где вы нашли эти данные и нет ли каких нибудь книг в которых эта тема очень подробно раскрывается? LD>Если честно, всю эту фигню мне читали в институте в этом году. Могу прислать лекцию в электронном варианте, где этих оценок еще больше.
Вам повезло с вузом :) Кидайте на mb2000@rbcmail.ru. И желательно с библиографией. Заранее спасибо.
_>>Считаете, что американские программеры хуже наших? :) или лучше? LD>Считаю, что их средний программер хуже нашего среднего. Однако, не будем забывать , что Кнут, Ахо, Ульман, Стокмейер и пр. из америки.
_>>тем более, если это исследование проводилось не раньше начала 90х, то сам термин "американские" — уже вызывает много вопросов :)
LD>Че-то я не понял этого утверждения. :-(
Я имел в виду многонациональный состав многих американских IT компаний.
Re: Соотношение количества и качества в работе программиста
Здравствуйте, unknown_programmer, Вы писали:
_>2. если ты гуру ты будешь писать 2000 строк в день, занимаясь системным программированием под юникс
Тутбалин колбасит 500 крейсерских строк в день и это очень хороший темп.
_>9. программирование — это очень творческая работа и измерению тут ничего не поддается, доверяй тому что тебе говорит твой ПМ и более опытные коллеги
Да нет, поддается. Только мерять надо не строчками, а другим. Например, при разработке гуйни можно мерять экранами. Пересчитал экраны у системы, поделил на, скажем, экран/неделю, имеешь трудоемкость. Если хорошоя декомпозиция, то можно считать количество функций нижнего уровня (они должны быть примерно одной трудемкости). Есть и высокая наука — функциональные точки (см.).
Ну, и, нелишне вспомнить про 30-1. Это типичный разброс производительностей программистов. Из Брукса, кажется... Брукса читал? Беги читай.
GS
Re[2]: Соотношение количества и качества в работе программис
Здравствуйте, George Seryakov, Вы писали:
GS>Здравствуйте, unknown_programmer, Вы писали:
_>>2. если ты гуру ты будешь писать 2000 строк в день, занимаясь системным программированием под юникс
GS>Тутбалин колбасит 500 крейсерских строк в день и это очень хороший темп.
кто такой Тутбалин? (я же упоминал — я темный :))
_>>9. программирование — это очень творческая работа и измерению тут ничего не поддается, доверяй тому что тебе говорит твой ПМ и более опытные коллеги
GS>Да нет, поддается. Только мерять надо не строчками, а другим. Например, при разработке гуйни можно мерять экранами. Пересчитал экраны у системы, поделил на, скажем, экран/неделю, имеешь трудоемкость. Если хорошоя декомпозиция, то можно считать количество функций нижнего уровня (они должны быть примерно одной трудемкости). Есть и высокая наука — функциональные точки (см.).
логично, только вот опечатка у вас — не указали, что именно см.
GS>Ну, и, нелишне вспомнить про 30-1. Это типичный разброс производительностей программистов. Из Брукса, кажется... Брукса читал? Беги читай.
бегу :)
Re[3]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
_>кто такой Тутбалин? (я же упоминал — я темный
Тутубалин, см. Культовый программер.
GS>>... Есть и высокая наука — функциональные точки (см.).
_>логично, только вот опечатка у вас — не указали, что именно см.
Здравствуйте, George Seryakov,
С Бруксом все более менее ясно. :)
Те данные о производительности, что он приводит соответствую в целом тому, что собственными глазами видел. А как вот с ошибками быть? Тут человек в этом же топике цифру привел в 1 на 100 строк и в 50% на все изменения (что тоже Бруксу соответствует).
Как скажем на практике в вашей конторе все устроено? )
Re[5]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
_>Те данные о производительности, что он приводит соответствую в целом тому, что собственными глазами видел.
Вот этого быть не должно. С его времен все несколько поменялось... кажется. По крайней мере в современном отладчике отлаживаться куда проще, чем на перфоркартах. Да еще 1-30 должно обессмысливать "данные о производительности".
_>А как вот с ошибками быть? Тут человек в этом же топике цифру привел в 1 на 100 строк и в 50% на все изменения (что тоже Бруксу соответствует).
А какой процесс? Насколько детален детальный дизайн? Ошибки, которые сделались до кодирования считаем? Это я к тому, что оно как-то не меряется. Можно прикинуть трудемкость на разработку и стабилизацию (в духе недавно помянутого MSF), но опять — все сильно зависит от процесса.
_>Как скажем на практике в вашей конторе все устроено? )
Так и устроено — дизайна особенного нет, все пишут как бог на душу положил, потом это дело отрихтовывается, чтоб работало, и потом рихтуется почти непрерывно, чтоб соответствовать вновь открывшимся обстоятельствам и линии партии, колеблющейся, правда, не очень сильно.
GS
Re[6]: Соотношение количества и качества в работе программис
Здравствуйте, George Seryakov, Вы писали:
GS>Здравствуйте, unknown_programmer, Вы писали:
_>>Те данные о производительности, что он приводит соответствую в целом тому, что собственными глазами видел.
GS>Вот этого быть не должно. С его времен все несколько поменялось... кажется. По крайней мере в современном отладчике отлаживаться куда проще, чем на перфоркартах. Да еще 1-30 должно обессмысливать "данные о производительности".
там соотношение производительности разных программеров 1 к 10 указывается по числу машинных команд в программе
если сравнивать размер сырцов в КБ или строках (хотя бы из названного мне и найденного в разных источниках мною) выходят цифры менее печальные, но все равно резкий расброс есть
_>>А как вот с ошибками быть? Тут человек в этом же топике цифру привел в 1 на 100 строк и в 50% на все изменения (что тоже Бруксу соответствует).
GS>А какой процесс? Насколько детален детальный дизайн? Ошибки, которые сделались до кодирования считаем? Это я к тому, что оно как-то не меряется. Можно прикинуть трудемкость на разработку и стабилизацию (в духе недавно помянутого MSF), но опять — все сильно зависит от процесса.
все что до кодирования не в счет
играем в условиях когда сидят 10 человек с ТЗ на руках, доками и книгами под мышкой и вопрос стоит "кто здесь лучше? кому я могу доверить самый ответственный и "вкусный" кусок проекта? кто лучше и быстрее все это закодирует??"
_>>Как скажем на практике в вашей конторе все устроено? )
GS>Так и устроено — дизайна особенного нет, все пишут как бог на душу положил, потом это дело отрихтовывается, чтоб работало, и потом рихтуется почти непрерывно, чтоб соответствовать вновь открывшимся обстоятельствам и линии партии, колеблющейся, правда, не очень сильно.
как все грустно :(
Re[6]: Соотношение количества и качества в работе программис
Здравствуйте, George Seryakov,
и как вы относитесь к данным статистики упомянутым у того же Брукса, в которых говорится, что производительность практически не зависит от опыта?
Я с ними согласен в случае чистого кодерства, но чем больше отход от чистого кодерства в сторону постановки тем больше становиться зависимость от опыта.
Re: Соотношение количества и качества в работе программиста
Работал ли кто нибудь из присутствующих на форуме в российских программерских конторах имеющих сертификат на собственную систему контроля качества соответствующую ISO 9000?
Я так понимаю стандарт определяет лишь общие положения этого вопроса, а в каждой конторе стандарт реализован по своему.
Можно ли где нибудь найти какую либо документацию на конкретную реализацию этого стандарта? (реализацию не для галочки, а используемую в деле) Или все эти вещи — комм. тайна и хранятся за семью печатями?
Re[4]: Соотношение количества и качества в работе программис
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[7]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
GS>>А какой процесс? Насколько детален детальный дизайн? Ошибки, которые сделались до кодирования считаем? Это я к тому, что оно как-то не меряется. Можно прикинуть трудемкость на разработку и стабилизацию (в духе недавно помянутого MSF), но опять — все сильно зависит от процесса.
_>все что до кодирования не в счет _>играем в условиях когда сидят 10 человек с ТЗ на руках, доками и книгами под мышкой и вопрос стоит "кто здесь лучше? кому я могу доверить самый ответственный и "вкусный" кусок проекта? кто лучше и быстрее все это закодирует??"
Истина конкретна. А "быстрее" и "лучше" совместимы не всегда. Ответственный кусок будет дан тому, кто свободен и кто не наколбасит в ядре.
GS>>Так и устроено — дизайна особенного нет, все пишут как бог на душу положил, потом это дело отрихтовывается, чтоб работало, и потом рихтуется почти непрерывно, чтоб соответствовать вновь открывшимся обстоятельствам и линии партии, колеблющейся, правда, не очень сильно.
_>как все грустно
Ты впечатлителен. Я мог бы рассказать все то же самое в терминах MSF, и ты тогда сказал бы "как здорово!".
На самом деле все имееь свои причины. UPS, где я работаю, это супермонстр, он существует уще 80 лет, его бизнес-процессы развиваются все 80 лет и посейчас содержат в себе инноваци 80-летней давности. Нужно ли говорить, что они не документированы и существуют только в умах владельцев знания. Узнать, что нужно реализовать можно только начав реализовывать. По научному это еще как-то называется, лень вспоминать.
GS
Re[7]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
_>Здравствуйте, George Seryakov, _>и как вы относитесь к данным статистики упомянутым у того же Брукса, в которых говорится, что производительность практически не зависит от опыта?
Я это называю вменяемостью. Либо есть она либо нет.
_>Я с ними согласен в случае чистого кодерства, но чем больше отход от чистого кодерства в сторону постановки тем больше становиться зависимость от опыта.
От знания предметной области, умения разбираться в предметных областях. Но прежде этого — от вменяемости.
И, я бы вообще не говорил о производительности. Я бы говорил просто о способности программировать. Эдак, бинарно. Починит или наколбасит, прибирать за ним придется.
GS
Re[2]: Соотношение количества и качества в работе программис
Здравствуйте, unknown_programmer, Вы писали:
_>Работал ли кто нибудь из присутствующих на форуме в российских программерских конторах имеющих сертификат на собственную систему контроля качества соответствующую ISO 9000?
Я работал на аргуссофт, впоследствии сертифицированнй на 9000-3. Поверь мне, мистический ужас испытывать не перед чем. Среди банковских автоматизаторов ходит такое выражение (приписываемое, кажется, Калянову) "Автоматизация бардака дает автоматизированный бардак". С сертификацией... нет, я могу, точнее, не могу говорить про единсвенный пример.
_>Я так понимаю стандарт определяет лишь общие положения этого вопроса, а в каждой конторе стандарт реализован по своему.
Так.
_>Можно ли где нибудь найти какую либо документацию на конкретную реализацию этого стандарта? (реализацию не для галочки, а используемую в деле) Или все эти вещи — комм. тайна и хранятся за семью печатями?
Тайна. ДСП. У меня была копия. Может быть, и сейчас есть, если мой комп в Москве не переформатировали. Ничего особенного, обычная советская туфта. Пишется задней ногой. Я счастлив, что в Америке этим не занимаюсь.
GS
Re[5]: Соотношение количества и качества в работе программис