Подсказки для предотвращения второго системного [закрытого] синдрома

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

Существует ли хороший дизайн / метод разработки, который предоставляет себя созданию лучшей версии 2.0 при предотвращении вторых системных сценариев?

15
задан spender 17 February 2010 в 14:56
поделиться

6 ответов

«Мне не хотелось бы, чтобы мы застряли в бесконечном цикле переписывания и никогда ничего не запускали».

Вот почему люди используют Scrum .

  1. Определите, что нужно построить.

  2. Расставьте приоритеты, чтобы в первую очередь были вещи, которые приводят к освобождению. Вещи, которые следует исправить, второстепенны.

  3. Выполните спринты, чтобы добраться до релиза. Выполните релиз-спринт.

10
ответ дан 1 December 2019 в 00:59
поделиться

Сосредоточение внимания на архитектуре системы должно помочь, например

  • Наличие задокументированных интерфейсов, которые поддерживают «слабую связь» между подсистемами
  • Задокументированные проектные решения (избегать повторного хеширования ранее проторенных путей)

Следовательно, без полной замены текущая система может быть «модернизирован» с более подходящими интерфейсами, чтобы способствовать будущему росту.


Еще один хороший способ сосредоточиться: назначить цифру $$$ для каждой функции и соответственно расставить приоритеты; -)

В любом случае, только мои 2 цента

1
ответ дан 1 December 2019 в 00:59
поделиться

Nettuts имеет отличное учебное пособие для формы CodeIgniter for Login. Следуйте заставке, и она прояснит ваши вопросы.

http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-6-login/

-121--1880543-

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

<include buildfile="../commonFile.build"/>

В моем newFile.build (который включает commonFile.build в верхней части файла) я добавил новую цель под названием «build», так как она существует в commonFile, и вот сообщение об ошибке, которое вы получите в ответ...

СБОЙ ПОСТРОЕНИЯ

Повторяющийся целевой объект с именем «» build «»!

Хорошая идея, вероятно, борются с принципами ОО, но, к сожалению, это не работает.

Какой-либо товар?

-121--4029294-

Я поднял голос за ответ С. Лотта и хотел бы добавить еще несколько предложений:

  1. Доставляйте рабочий продукт вашему клиенту как можно чаще. Итерации продолжительностью от нескольких недель до 2 месяцев идеально подходят. Гибкие методологии, такие как Scrum, хорошо поддаются этому.

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

  3. Определите приоритеты, какие функции вы будете разрабатывать в соответствии с правилом 80/20 (20% функций будут использоваться 80% времени) и наибольшим ударом по сбору. Это помогает максимально упростить систему, предотвратить раздувание и сэкономить время разработки и тестирования.

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

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

1
ответ дан 1 December 2019 в 00:59
поделиться

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

4
ответ дан 1 December 2019 в 00:59
поделиться

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

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

2
ответ дан 1 December 2019 в 00:59
поделиться

Когда слово «shall» используется в стандарте C++, оно означает «должен от боли смерти» - если реализация не подчиняется этому, она неисправна.

-121--1531935-

«Дополнительное» пространство внизу - это пространство, которое занимает нижний колонтитул. Относительно расположенные элементы по-прежнему занимают одно и то же пространство в потоке макета страницы, даже если они появляются где-то в другом месте.

Вы можете попробовать отрицательное нижнее поле на основном корпусе. Это означает, что вам не нужно вверху: -60px; в нижнем колонтитуле.

-121--2254443-

Старайтесь сосредоточиться на коротких циклах доставки, т.е. заставляйте себя доставлять что-то ощутимое и полезное пользователям каждые несколько недель или месяцев. Определение приоритетов задач на основе их ценности для клиента. Таким образом у вас всегда есть удобное, функциональное приложение с довольными пользователями, в то время как под капотом вы можете переформатировать архитектуру небольшими шагами, если хотите (и если вы можете обосновать необходимость в нем - то есть в сторону руководства/клиентов, а не только товарищей по команде!).

Это очень помогает, если у вас есть стабильный процесс сборки с хорошим номером люкс автоматических (блок/интеграция) тестов.

Быстрые методы разработки, такие как Scrum , делают это, и они тепло рекомендуются. Но конечно не всегда легко или даже возможно адаптировать такой метод в своей команде. Даже если вы не можете, вы все равно можете взять его элементы и применить его к выгоде вашего проекта (возможно, даже без упоминания слов «agile» или «Scrum» публично; -)

4
ответ дан 1 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: