Если клиенты довольны, вы делаете что-то правильно. Многие люди наслаждаются хот-догами, не зная, как их делают ...
Если приложение является хорошим решением проблемы, но вы беспокоитесь о том, что основа неисправна, выясните, как постепенно улучшать ситуацию, и составьте план реализации этих улучшений при обновлении продукта. Инкрементальное является ключевым: если вам не терпится переписать все его части, ваш менеджер по праву скажет, что это неразумно. Идеальный может быть врагом хорошего. Посмотрите историю jwz о том, как Netscape позволил IE взять на себя инициативу, потому что им «пришлось» переписать Navigator.
Если пользовательский интерфейс приложения сам по себе беспорядок, клиенты все равно могут быть довольны, потому что они сравнивают его с «трудным путем», и даже глючная программа может быть намного лучше, чем эта. Вы сравниваете его с идеалом, который вы можете себе представить из-за своего опыта и навыков. Опять же, подумайте, как вы можете улучшать вещи постепенно, и представьте это как часть плана.
Не переставайте заботиться: вы хотите, чтобы ваша работа была лучшей, какой только может быть. Но помните также, что клиент оплачивает ваши счета, и вы пишете программное обеспечение для них, а не вы.
Это не кошмар для них. Это станет для вас кошмаром, и они, кажется, думают, что вы знаете, что делаете, так что это будет исправлено. Вы бы предпочли людей, которые не занимаются программированием, думают, что ваше приложение хуже, чем оно есть на самом деле? Это не исключение. Наслаждайтесь, пока можно. Вам лучше надеяться, что клиент перерастет это приложение. Они могут зайти так далеко в другом направлении, как бизнес, что это абсолютно бесполезно. Вы могли бы переписать его по совершенно разным причинам, чем вы думаете.
источник
Я не думаю, что вы должны перестать заботиться, даже если кажется, что высшее руководство прекратило. Я думаю, что важно извлечь из этого опыта запоминание и документирование всего, что, по вашему мнению, пошло не так. Предотвращение этих ошибок в будущем в конечном итоге будет признано, если не эта текущая группа менеджеров, возможно, следующая группа менеджеров, на которых вы работаете.
источник
Я бы начал представлять идеи для следующих шагов в разработке, которые включают в себя рефакторинг для улучшения качества кода. Не вдавайтесь в технические подробности, но отметьте, как будут предлагаться исправления, которые вы предлагаете постоянное удовлетворение клиента. Будьте готовы смешать очистку с новыми функциями, поскольку руководство всегда будет искать что-то новое для продажи.
В целом, клиенты не будут заботиться об обслуживании, пока что-то не пойдет не так. В идеале ваша компания должна заботиться о своей репутации и хотеть защитить ее, поддерживая код.
Тем не менее, если этот продукт рассматривается как очень короткий срок, на самом деле не может быть никакой пользы для правильного выполнения. В этом случае - ищите дешевые исправления - вещи без особых усилий, которые имеют большое значение для здравомыслия разработчика.
источник
Вы не Вы используете успех, чтобы обеспечить финансирование / разрешение / вступительный взнос, чтобы начать рефакторинг в сторону технически правильного и простого в обслуживании. Или вы используете успех, чтобы получить повышение из отдела «Я поддерживаю старую базу кода».
источник
Возможно, ваш приоритет / точка зрения неверна.
Самым важным в любом программном проекте является то, что он удовлетворяет требованиям пользователей.
Это в миллион раз важнее, чем быть «правильным» в соответствии с модой C / S этого месяца.
Да, вы должны использовать правильные шаблоны проектирования, правильно использовать технологию и т. Д. но только в той мере, в которой это облегчает реализацию требований пользователей надежным и понятным способом.
По-настоящему плохо написанная система, которая на самом деле удовлетворяет потребности бизнеса, всегда лучше, чем чудесно написанный прекрасно документированный фрагмент кода, который никто не хочет или не имеет причин использовать.
источник
Попытайтесь общаться с текущими пользователями и спросите их, какие аспекты, по их мнению, нуждаются в улучшении. Затем вы можете улучшить некоторые аспекты, которые, по вашему мнению, нуждаются в улучшении, а также улучшить аспекты, предложенные пользователями. Вы можете обосновать свои улучшения как «необходимые для реализации предложенных пользователем улучшений»
Например: если пользователи думают, что функция поиска медленная. Вы можете улучшить это, создав лучший Уровень данных, который, очевидно, служит не только для поиска, но затем вы можете оправдать затраченное время.
источник