Когда технологии, подходы и архитектура применяются впервые, мало кто из коллектива верит, что всё заработает. Это и понятно: в отсутствие опыта решения подобных проблем шансы на успех могут казаться призрачными. Однако такого рода сомнения могут стать источником реальных проблем. От недостатка уверенности в успехе проекта страдает не только боевой дух группы, но и производительность труда. Поэтому задача — как можно раньше исключить всякие сомнения и создать уверенность, что проект может быть и будет успешным.
•
Почти всем ясно, что производительность приложений приобретает всё более важное значение. К сожалению, оптимизация производительности — это не та задача, которую можно отложить на потом, чтобы заняться ею в конце работы над проектом. Здесь нужен другой подход: следует заранее построить модель, воплощающую важнейшие черты архитектуры проекта, и как можно раньше протестировать её, чтобы выяснить, насколько хорошо она масштабируется.
•
Чтобы работать на рынке с жёсткой конкуренцией необходимы исследования. Следует направить часть усилий группы на прогноз нужд потребителей, а также на поиск революционных решений и идей. Прекрасные идеи, новые подходы и хитовые приложения не появляются по волшебству в одночасье — их вынашивают как младенцев.
Исследования
Хоть некоторые и считают исследовательскую работу чисто академическим занятием, она тем не менее играет важную роль в разработке ПО. В этом разделе мы обсудим основы ведения исследований в приложении к созданию программных продуктов.
Исследования бывают
Прикладные исследования — наиболее важная форма исследований в контексте этой книги. Они могут обеспечить критически важное преимущество в конкурентной борьбе, особенно на нестабильном рынке, когда потребности пользователей, ПО и аппаратные платформы и технологии претерпевают стремительные изменения. Хотя изменения часто вносят неопределённость, они также дают невероятные возможности группам, способным предвидеть потребности потребителей и задействовать новые технологии для их удовлетворения. Если, занимаясь созданием новой технологии, вы хотите «остаться на плаву» вопреки всем неожиданностям, то параллельно циклу разработки нужно вести непрерывную исследовательскую работу.