Причины неудачи IT-проектов

О предмете

Задачи нашего предмета:

  • Изучить причины неудач IT-проектов.
  • Выявить способы устранения этих причин.
  • Научиться применять эти способы на практике.

Почему IT-проекты терпят неудачи?

Почему, казалось бы, хорошо спланированный проект не укладывается во временные рамки?

Почему по прошествии некоторого времени выясняется, что имеющегося бюджета недостаточно?

Почему полученный в итоге продукт не пользуется спросом?

Проблема сложна и многогранна. Трудно перечислить все возможные причины неудачи. Остановимся кратко на некоторых из них, представляющихся нам наиболее существенными.

Причина 1. Нереалистичные временные рамки.

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

Причина 2. Недостаток количества исполнителей.

Иногда менеджер решает сэкономить, иногда переоценивает возможности своих сотрудников, иногда в ходе разработки выясняется, что задача сложнее, чем казалось на самом деле, – проблема недостатка рабочих рук, так или иначе, возникает достаточно часто.

Причина 3. Размытые границы проекта.

Одна из наиболее серьезных причин неудачи проекта – нечетко сформулированные цели, неоднократно меняющиеся в ходе разработки. Поверьте, многоэтажные дома и дачные домики строятся на основе применения разных технологий и материалов. Если вам доведется управлять проектом – сделайте все, чтобы четко сформулировать требования к системе в соответствии с пожеланиями пользователя. Мы поговорим про это подробнее в подразделе «Управление требованиями».

Причина 4. Недостаток средств.

Известны две крайности при планировании бюджета: чрезмерное раздувание (подход пессимиста) и чрезмерное уменьшение (подход оптимиста). Использование первого подхода чаще всего (если только ваш заказчик не совсем дилетант) приводит к тому, что ваша команда теряет проект. «Слишком дорого, сэр. Мы идем к Вашим конкурентам». Второй подход часто применяется не только в силу оптимизма менеджмента, но и в рекламных целях, чтобы любой ценой выиграть проект. «Мы сейчас напишем меньше всех, а там видно будет». Увы, в дальнейшем приходится расплачиваться за демпинговые меры. Качественно реализовать проект за выделенные деньги оказывается просто невозможным. Представляется разумным оценивать бюджет реально с некоторой перестраховкой на случай непредвиденных ситуаций (заболел ключевой сотрудник, вышло из строя дорогостоящее оборудование...). Не выиграем этот проект – выиграем другой. Хуже, если выиграем, но провалим. В нашу состоятельность больше могут и не поверить.

Причина 5. Нехватка квалифицированных кадров.

Нехватка квалифицированных специалистов – одна из существенных проблем отрасли. Технологии развиваются с такой скоростью, что профессионалы вынуждены все время обновлять свои знания. Относительная новизна самой области IT, с одной стороны, становящееся повсеместным внедрение информационных технологий во все сферы человеческой деятельности, с другой, а, значит, все возрастающий спрос на специалистов ведут к существенной нехватке квалифицированных кадров. Конечно, все хотят принять на работу лучших. Но опыт показывает, что их не так много, и на всех не хватает. Умение из потока кандидатов выбрать тех, кто вам нужен, очень важное качество специалистов по кадрам. Часто к подбору сотрудников рекомендуют привлекать всех членов команды. То, как новичок впишется в коллектив, совсем не последнее дело.

5. Технологии программирования – путь к успеху в разработке ПО

Технология – совокупность производственных процессов в определенной отрасли производства, а также научное описание способов производства [1].

Уже в 60-х–70-х годах XX людям было ясно, что ввиду роста сложности решаемых при помощи компьютера задач неимоверно возрастает стоимость разработки программ. Причем, если стоимость аппаратуры растет умеренными темпами, а иногда и вовсе падает, то со стоимостью разработки программ ничего поделать не удается. Именно тогда вопрос о том, как оптимизировать процесс разработки, вышел на первый план.

Для того чтобы ответить на этот вопрос, потребовалось определить, куда уходят средства, за счет чего возрастает стоимость разработки программных систем?

Создание любой программной системы выполняется по некоторой схеме. Данная схема представляет собой последовательность стандартных этапов (очень приблизительно эта схема может выглядеть так: анализ, проектирование, разработка, тестирование, модификация). Именно на этих этапах и возникают существенные финансовые затраты. Для их оптимизации необходимо было понять, что программирование есть обычный технологический процесс, по характеру возникающих проблем мало чем отличающийся от, скажем, строительства дома или корабля.

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

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

Итак, технология программирования – совокупность методов, приемов и средств для сокращения стоимости и повышения качества разработки программных систем.

В любой серьезной компании, занимающейся разработкой программного обеспечения, на каждом этапе процесса разработки применяется большое количество разных технологий. Над созданием программного продукта работают представители таких специальностей как: аналитики, управленцы (менеджеры), тестеры, кодировщики, (программисты), технические писатели, системные администраторы, специалисты по повторному использованию, дизайнеры, специалисты по эргономике и др. Сейчас мы вспомним то, что вам должно быть известно из курса «Основы программирования», – ту часть технологий, которая наиболее устоялась и имеет отношение к общим вопросам анализа, проектирования и разработки: структурное, модульное, объектно-ориентированное и компонентное программирование.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: