Что делать, если ваш «провальный» проект действительно «успешен»?

14

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

Мне просто наплевать? Разве это нормально, что клиенты даже не понимают, что могли бы иметь лучшее приложение, чем это?

В какой момент я перестаю заботиться о правильном построении и просто плыву по течению?

Джеймс П. Райт
источник

Ответы:

37

Если клиенты довольны, вы делаете что-то правильно. Многие люди наслаждаются хот-догами, не зная, как их делают ...

Если приложение является хорошим решением проблемы, но вы беспокоитесь о том, что основа неисправна, выясните, как постепенно улучшать ситуацию, и составьте план реализации этих улучшений при обновлении продукта. Инкрементальное является ключевым: если вам не терпится переписать все его части, ваш менеджер по праву скажет, что это неразумно. Идеальный может быть врагом хорошего. Посмотрите историю jwz о том, как Netscape позволил IE взять на себя инициативу, потому что им «пришлось» переписать Navigator.

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

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

benzado
источник
Привет, Роберт, спасибо за добавление этой ссылки. Я печатал на своем iPhone и не хотел переключать контекст, чтобы найти его.
Бензадо
1
Связанный: Джоэл Спольский в клейкой ленте программатор и ответ Завинский в .
Бензадо
Также: jwz's Groupware Bad . (Извините за все ссылки, я теперь с удовольствием перечитываю их ...)
benzado
Я работаю над программным обеспечением, которому более 20 лет, и оно давно прошло, и оно начиналось плохо написанным (даже по стандартам 20 лет назад). («Этот код - собачий завтрак - теперь время обеда» - это памятная цитата.) Если стоит поддерживать целое состояние - в 10 раз больше, чем следует, но барьер для участия в конкурсе исключительно высок, поэтому клиенты просто платят. Альтернативой является compeditor с программным обеспечением simlar и структурой затрат. Это лицензия на печать денег, и поэтому программное обеспечение для бизнеса, если они стремятся к техническому совершенству, обанкротится.
Mattnz
4

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

JeffO
источник
3

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

djnotepad
источник
2

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

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

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

bethlakshmi
источник
2

Вы не Вы используете успех, чтобы обеспечить финансирование / разрешение / вступительный взнос, чтобы начать рефакторинг в сторону технически правильного и простого в обслуживании. Или вы используете успех, чтобы получить повышение из отдела «Я поддерживаю старую базу кода».

Уайетт Барнетт
источник
0

Возможно, ваш приоритет / точка зрения неверна.

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

Это в миллион раз важнее, чем быть «правильным» в соответствии с модой C / S этого месяца.

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

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

Джеймс Андерсон
источник
0

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

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

Bazzz
источник