Работа программиста в финансовой компании в то время была сложнее и ответственнее, чем сейчас. Не примите эту мысль за ностальгию по старым добрым временам. Все обстоит строго наоборот: если бы сегодня молодому и амбициозному айтишнику довелось очутиться в том времени, он бы по-братски проникся к нам сочувствием. На тот момент 95% программного обеспечения, которое использовалось в повседневной работе, было самописным: сотрудники компании создавали его под себя и свои нужды, руководствуясь исключительно личными представлениями о прекрасном.
Универсальное ПО только начинало появляться на рынке, стремительно его захватывая. Но, как любая высокотехнологичная новинка, оно было доступно не всем. Наша компания не стала исключением. На тот момент у нас была установлена старая система, разработанная прежней командой IT-отдела, и функционировала она по принципу «работает – не трогай». Работала она, увы, не лучшим образом. Но как мы ни старались, оптимизировать ее не получалось.
Тогда мы решили воспользоваться готовой разработкой и приобрели программный комплекс одной известной в узких кругах фирмы. Но он потребовал таких вычислительных ресурсов, которые мы позволить себе уже не могли. Через полгода, став начальником отдела разработки, я решил, что новую программу мы напишем сами.
Как руководить проектом, я к тому времени уже немного представлял. Но хотелось знать больше, так что я начал знакомиться с тем, какие подходы и методики в этом деле существуют. Нашел, увы, немногое: слишком разрозненной была информация, четких пошаговых инструкций не было, а глубоко разбираться самому казалось лишней тратой времени: задача-то была совсем другой! Так что, не слишком долго думая, я взял за основу лучше всего описанную на тот момент «водопадную» модель, расписал модули, решил, что за чем должно следовать, – и мы с сотрудниками принялись за работу.
⠀
На одном языке
«Водопадная», или каскадная, модель обязывает разработчиков действовать строго по принятому плану, не возвращаясь назад. Работа в рамках каскадной модели состоит из пяти шагов: аналитика, проектирование, разработка, тестирование и поддержка. Пропускать этапы нельзя, как и возвращаться на предыдущие ступени, – точно так же, как вода в водопаде никогда не потечет в обратную сторону, вверх по скалам. Сегодня каскадная модель считается уже плохо применимой для разработки ПО.