Вот мой контрольный список относительно зрелости проекта:
Достиг ли проект первоначального рубежа?
Я бы не стал добавлять какой-либо код, если он не достиг своего первоначального рубежа. Я не предлагаю вам всегда доверять разработчику, утверждающему, что его проект готов к работе, и всегда пытаться оценить такие утверждения, но вам обязательно следует доверять ей, когда она говорит, что это не так, то есть маркировать программное обеспечение как версию 0.x, альфа, бета, релиз-кандидат и так далее.
Есть ли адекватная документация?
Идеальный проект будет предлагать:
- Руководство пользователя с примерами
- Руководство по интеграции / расширению, если это библиотека
- API документация
- Полностью документированный исходный код
- Трекер общественного выпуска
Разработчики по-прежнему привержены проекту?
Вы никогда не сможете сказать, останутся ли разработчики преданными делу в будущем, если, конечно, это не проект, поддерживаемый фондом / компанией. Но вы почти всегда можете определить, совершены ли они прямо сейчас, проверив:
- Недавняя активность
- Последние функции (не только исправления ошибок)
- Последние действия с документацией (обновления документации, сообщения в блоге и т. Д.)
Также хорошим показателем зрелости проекта является второе поколение разработчиков, активных разработчиков, которые подключились после начальных этапов.
Разработчики доступны?
- Они реагируют на ошибки?
- Предоставляют ли они другие средства связи, кроме общего средства отслеживания проблем? Это второстепенный пункт в контрольном списке, но для проектов с одним разработчиком альтернативные способы связи могут помочь в таких случаях, как «случай пропавшего разработчика» .
Теперь по вашим более конкретным вопросам:
Скорость
В проекте с общедоступным трекером проблем я бы определенно проверил, сколько времени занимает решение проблем. Конечно, скорость не всегда означает качество, поэтому я, вероятно, рассмотрю закрытые вопросы, выберу несколько вопросов, которые считаю важными, и оценим время и качество реакции разработчиков.
Совместимость лицензий
Что касается юридических вопросов, никогда не интегрируйте проект с открытым исходным кодом в свою кодовую базу, если вы не уверены на 100%, что его использование совместимо с его лицензией. В случае сомнений вы всегда можете обратиться к разработчикам проекта или даже спросить здесь.
Обман сообщества
Вы всегда должны оценивать ажиотаж. Рекомендации коллег-разработчиков почти всегда являются достаточно хорошим показателем зрелости проекта.
Каждый пункт в контрольном списке не является обязательным, за исключением совместимости лицензий. Я включил в свой код множество мертвых или недокументированных проектов, это всегда зависит от ваших конкретных потребностей и того, как вы видите, как развивается ваш собственный код.