Подтвердить что ты не робот

Как доказать, что характеристики записи превосходят код ковбоев?

Так что у меня проблема. Или, скорее, у моего друга проблемы, так как я никогда не буду писать о своей компании на интернет-форуме.

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

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

Мой друг нашел, что его рекомендации по написанию (и тестированию) спецификаций, как правило, хорошо приняты. Большинство его коллег обрело прекрасное чувство обнаружения ложных предположений на бумаге, а не в 11 часов вечера в воскресенье в середине бета-версии. Viva La Revolution!

Однако есть несколько человек, которые poo-poo все, что стоит между их задачей и клавиатурой. Они смеются над мыслью о том, что они вообще что-то конструируют, и пишут код с веселым отказом. В основном это старшие, давно работающие разработчики, не желая "тратить время".

Проблема в том, что эта вторая группа еретиков неизменно производит вещи (или, по крайней мере, что-то) быстрее, чем первая. Впоследствии это становится оправданием по строкам "Нет смысла писать спецификации для чего-то столь же простого, как и для resizer! О, и те ошибки, где ширина!= Высота или изображение использует RLE, просто нужно несколько настроек".

И теперь вопрос:)

Кроме того, что "сказал вам так" в конце проекта, какие хорошие краткосрочные способы продемонстрировать, как практика написания функциональных или технических спецификаций приводит к лучшему программному обеспечению в долгосрочной перспективе?

Ура!

4b9b3361

Ответ 1

Это довольно сложно, так как офисная культура и рабочие привычки очень трудно изменить. Если вы действительно серьезно относитесь к этому, попробуйте заставить руководство согласиться на пробную версию, где спецификации используются для небольшого проекта/модуля, а затраты на обслуживание (время, ошибки и т.д.) Количественно оцениваются с течением времени.

Вы не можете заставить других разработчиков на вашей стороне таким образом, но $$ легче понять, чем более абстрактные методы dev. Руководство poo-poo'ers несет ответственность за то, что эта группа продолжает работу и обзоры производительности, так что это один из способов убедить их измениться или заставить их работать где-то в другом месте.

Ответ 2

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

Я думаю, что в качестве группы нужно решить, как вы собираетесь строить правильные вещи и как вы общаетесь с ними среди всех.

т.е. сосредоточиться на реальной проблеме, а затем получить общее согласие о том, как ее решить. Вместо того, чтобы сказать: "вот решение проблемы, давайте это сделаем!", Что часто не получает много покупки у всех. Также может быть, что спецификации не совсем подходят для решения проблемы.

Ответ 3

В одной области, где характеристики битуют ковбоев, " creep scope" и связанные с этим затраты.

Спецификация - это контракт между клиентом и разработчиками. Если у вас нет четкого контракта, как вы узнаете, когда контракт будет удовлетворен?

Кроме того, наличие подробных спецификаций упрощает одновременное использование двух или более разработчиков, работающих в разных частях проекта. И, это дает тестерам что-то сравнить программное обеспечение с тем, чтобы убедиться, что чертовски работает!

Ответ 4

Если у вас есть власть, попробуйте, чтобы все разработчики, когда у них возникли вопросы о чьей-то другой процедуре, напрямую попросили оригинальный кодер. Несколько кодеров, которые по-прежнему считают, что спецификации и документы не важны, могут захотеть попробовать несколько раз, если они застряли в ответ на "вопросы о новичках" все время.

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

Конечно, это возможно только в том случае, если вы можете получить достаточно людей, чтобы попробовать:)

Ответ 5

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

Ответ 6

Обычно требуется время - и это всегда проблема.

EDIT:

Для вашей собственной компании, я имею в виду вашего друга, нужно документировать, когда что-то должно было измениться, а спецификация не была доступна. Всякий раз, когда спецификация или документы сохраняют время, запишите это событие. Запишите количество потраченного времени (как исследователем, так и человеком (если есть), которого попросили, помогли и т.д. Затем вам нужно провести анализ затрат и выгод, независимо от того, было ли время "сохранено" изначально, не выполняя спецификацию стоило не иметь его, когда это было необходимо.

В некоторых случаях он, вероятно, рассчитывает написать один, и вы можете найти другие случаи, когда он не "нужен". На практике выигрыши потенциально настолько велики, что всегда лучше всего сделать это в начале.

Теперь - оговорка:

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

Ответ 7

Разделите две культуры на две разные группы, придумайте свои предпочтительные показатели производительности и освободите их. Лучшая победа в группе и все такое.

Или укажите их на любую тысячу различных количественных/качественных исследований, которые научно подтверждают его точку.

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

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

Или спросите клиентов о качестве продукции/стоимости и т.д.

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

Кроме того, вам не нужно ждать завершения проекта, чтобы знать, что есть проблема или сделать изменения для персоны.

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

Ответ 8

Спецификация - это знание того, что сделано. Как вы можете узнать свое время, чтобы вернуться домой, если вы не знаете, что сделано?

В простейшем случае разработчики беседуют с заинтересованными сторонами, чтобы понять, чего они хотят? Если это так, то все, что они решат, это "спецификация".

Белый, что вниз - реализуйте его - и идите домой.

Ответ 9

Просто скажи своему другу, что им нужно избегать перехода на другую крайность, где ничего не может быть сделано до тех пор, пока спецификация не станет совершенной и не будет полной на 100%. И кодировка откладывалась каждую неделю, потому что кто-то добавил что-то еще в спецификацию. Будут моменты, когда этот подход может занять 2-3 месяца, после чего кто-то на высоком уровне управления будет очень расстроен и скажет: "Мне все равно, я просто хочу, чтобы продукт был выполнен", а ситуация будет худшей.

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

Ответ 10

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

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

Лучший способ дизайна - выйти туда и посмотреть, как они привыкли делать что-то, и попытаться подправить ваше приложение в свой рабочий процесс. КАЖДЫЙ член команды должен это сделать.

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

Вкратце: не пишите спецификации, следите за своими пользователями. Убедитесь, что все члены команды делают это.

Ответ 11

Слишком много времени на спецификации - это трата времени. Я когда-то работал над проектом, в котором было продано, написано и отправлено одноразовое приложение "Профессиональные услуги", после чего боссы потребовали, чтобы мы писали спецификации. Дело в том, что писать спецификацию потребовалось больше времени, потребовалось больше людей и стоило больше, чем оригинальное приложение, которое никогда больше не будет использоваться снова.

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

Код должен быть самодокументирован. Следует соблюдать стандарты стандартов. Требования должны быть тщательно продуманы и перечислены. Но то, что вам не нужно, это 200-страничный документ, описывающий, что происходит на каждой строке кода freakin в каждом модуле, или комментарии, которые более подробно, чем сам код. Разработчики должны уметь читать этот материал. Если они не могут, ваша проблема кроется в другом месте.