Как стать автором
Обновить

Принцип YAGNI в управлении проектами

Время на прочтение 8 мин
Количество просмотров 22K
Разработка веб-сайтов *
Из песочницы
Наша компания занимается разработкой web-приложений на заказ. Не сайтов-визиток, а именно приложений. Чаще всего — для внутрикорпоративного использования.

Один из острейших вопросов заказной разработки — правильная оценка сроков и бюджета проекта, чтобы и работа была выполнена, и заказчик доволен, и прибыль была адекватной. В течение 3-х лет мы перепробовали разные способы работы и подходы к решению проблемы сроков и бюджета. Перечитали кучу книг, побывали на десятках конференций, вебинарах и т.д. Под катом описание решения, которое мы сейчас нашли для нанесения максимальной пользы заказчику за интересный для нас бюджет.
Читать дальше →
Всего голосов 48: ↑42 и ↓6 +36
Комментарии 19

Как быстро и точно оценить проект без ТЗ

Время на прочтение 6 мин
Количество просмотров 38K
Анализ и проектирование систем *
Из песочницы
При таком сочетании – быстро, точно, без ТЗ – кажется, что задача не имеет решения. Однако в работе фрилансера такие задачи возникают постоянно, поэтому в борьбе за выживание заказы приходится учиться их решать. Для начала поясню, что означают вынесенные в заголовок слова.

Быстро – значит, раньше, чем заказчик примет решение о выборе исполнителя (другого исполнителя, раз вы еще не готовы ответить ему на самый главный вопрос).
Точно – значит, достаточно близко к реальной стоимости проекта, которую можно было бы озвучить после согласования ТЗ (а еще лучше после выполнения проекта, когда уже известно точное количество потраченного на разработку времени).
Ну и, наконец, что значит Без ТЗ? Понятно, что проектов совсем без ТЗ (в стиле «пойди туда, не знаю куда, принеси то, не знаю что») практически не бывает. Другое дело, в каком виде заказчик предоставляет вам это самое ТЗ.
Читать дальше →
Всего голосов 41: ↑29 и ↓12 +17
Комментарии 11

Команда PVS-Studio расширяет кругозор, выполняя разработку на заказ

Время на прочтение 8 мин
Количество просмотров 7.4K
Блог компании PVS-Studio Разработка веб-сайтов *C++ *
Outsourcing
Как вы знаете, основная наша деятельность – это разработка анализатора кода PVS-Studio. И хотя мы давно и, как нам кажется, успешно этим занимаемся, недавно у нас появилась необычная мысль. Все-таки мы не пользуемся своим инструментам в том режиме, что и наши клиенты. Нет, конечно, мы проверяем код PVS-Studio с помощью PVS-Studio. Но откровенно говоря, проект PVS-Studio не такой уж большой. И работа с кодом PVS-Studio по стилю и характеру отличается от, к примеру, работы с кодом Chromium или LLVM.

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

Ну да ладно, к чему это все? Наши теоретические желания попробовать себя в других проектах совпали с практическими предложениями, которые постепенно стали к нам поступать. В прошлом году мы решили выделить у нас в компании команду, которая бы занималась – о ужас! – разработкой на заказ. То есть участвовала в сторонних проектах в качестве программистов. Причем нам было интересно участвовать в долгосрочных и довольно крупных проектах, т.е. не менее 2-3 разработчиков и не менее 6 месяцев разработки. У нас было две цели:
  • попробовать альтернативный тип бизнеса (заказную разработку помимо продуктовой разработки);
  • самим посмотреть на использование PVS-Studio в долгосрочных проектах.

И первая, и вторая задача оказались удачными. Но эта статья не про бизнес по заказной разработке, а про наш опыт. Имеется в виду не организационный опыт. Про это и так много статей. Про опыт работы с кодом чужих проектов. Про это мы и хотим рассказать.
Читать дальше →
Всего голосов 46: ↑34 и ↓12 +22
Комментарии 19

Плюсы и минусы заказной разработки без ТЗ

Время на прочтение 5 мин
Количество просмотров 34K
Разработка веб-сайтов *Анализ и проектирование систем *


В конце прошлого года к нам в компанию пришел заказ на небольшую автоматизацию. Товарищ моего шефа, предприниматель, уставший от обилия ошибок из-за человеческого фактора, захотел автоматизировать процесс подготовки макетов для последующей машинной обработки. Макеты выполнялись в Автокаде и Фотошопе. Задача показалась решаемой и интересной. Предприниматель получил положительный ответ. А что из этого вышло, читайте далее.
Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 42

Обзор процесса разработки программного обеспечения

Время на прочтение 13 мин
Количество просмотров 177K
Разработка веб-сайтов *
Из песочницы

Введение


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

Я работаю в IT последние 15 лет, хотя программированием начал заниматься значительно раньше. Основное направление моей деятельности как системного архитектора была организация разработки программ, разработка концепций и верхнеуровневой архитектуры и контроль выполнения концепции на протяжении проекта. Кроме управления разработкой ПО и создания архитектуры, я время от времени занимаюсь решением сложных технических проблем и написанием некоторых критически важных участков кода, где необходимо не только знание самого языка и среды разработки, но и их внутренней организации, иногда преподносящей неприятные сюрпризы.

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

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

В отличие от заказного ПО, работа над инвестиционным программным обеспечением ведётся самим исполнителем на деньги внутреннего или внешнего инвестора. Как правило, права на код системы остаётся у исполнителя, что стимулирует непрерывную работу по улучшению своего продукта и последовательный выпуск версий с более развитой функциональностью.

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

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

Нашими заказчиками являются органы власти, крупные государственные и коммерческие организации и, конечно, мы сами. Поэтому в смысле заказного ПО в нашем процессе часто присутствует некоторая разница между процессами разработки продуктов для внутреннего и для внешнего заказчиков. Некоторые нюансы я укажу в этой статье. Уровень формализации отношений с заказчиком у нас варьируется от проекта к проекту очень широко. В целом, чем больше бюджет проекта, тем выше формальность. Государственный заказчик или крупные коммерческие предприятия (особенно с государственным участием) обычно имеют законодательные ограничения на формирование, размещение заказа и приёмку результатов работ. Ещё одним ограничением крупных организаций является тот факт, что их персонал, являющийся источником требований и основным пользователем наших систем, имеет очень ограниченную доступность для исполнителей, хотя бы вследствие своей занятости. Однако для небольших организаций уровень формализации падает и иногда уходит в противоположную крайность, где возникает недостаточный уровень ответственности заказчика в рамках проекта.

Другая сторона наших заказных проектов – высокие требования к функциональности. Это и высокая нагрузка на все системы, и большая географическая распределённость, и высокие требования к точности вычислений при очень ограниченных временных рамках. Часто в наших проектах появляются элементы исследовательской работы и творческого поиска, направленного на решение нетривиальных проектных задач. Иногда нам приходится комбинировать в рамках одного процесса разработки разные методологии, например, вставляя в общий процесс, близкий к RUP, один или несколько этапов почти чистого scrum, порождая что-то вроде проекта в проекте. Это позволяет нам сохранять невысокий уровень вовлеченности пользователей, связанный с природой проекта, с гибкостью разработки в условиях высокой неопределённости требований. В этом плане для меня важен именно подготовительный этап, во время которого можно выбрать необходимую методологию и выстроить оптимальный процесс разработки. Один из примеров применения гибкой методологии я описал в статье «Применение agile при разработке проекта для государственного заказчика».

В качестве примера работы над инвестиционным проектом я могу привести разработку комплексной системы безопасности, которую мы создавали как «коробочный» продукт. Под моим руководством было выпущено последовательно четыре версии этой системы, пользователями которой стали самые разные коммерческие и государственные организации, включая мэрию Москвы, АФК «Система», банки, бизнес-центры и, конечно, наш собственный офис. Первая версия была не очень успешной, но у нас была стратегия развития, которая позволила нам успешно захватить рынок и пережить сложные времена кризиса. Опыт работы над этим и ещё несколькими инвестиционными проектами тоже был учтён при формировании используемого мной процесса разработки.

Наш процесс представляет собой последовательность определённых этапов. Приведённая мной классификация ПО сделана только, чтобы показать возможную разницу в организации разработки различных программных средств. Делая обзор процесса разработки, я остановлюсь только на различиях именно самого процесса касаемо разных видов ПО. Однако надо помнить, что различия между процессами разработки разных видов ПО гораздо глубже, поэтому при планировании каждого этапа необходимо учитывать эти нюансы.

Важно понимать, что переход процесса от одного этапа к другому не имеет чёткой границы. Как правило, работы следующего этапа начинаются по мере выполнения 80-90% работ по предыдущему этапу. Особенно это касается разработки требований, когда в ряде случаев снятие неопределённости происходит лишь к концу проекта. Безусловно, наличие такой неопределённости в проекте является существенным риском и должно находиться под постоянным контролем.
Читать дальше →
Всего голосов 19: ↑13 и ↓6 +7
Комментарии 45

Как заказать мобильное приложение?

Время на прочтение 2 мин
Количество просмотров 1.6K
Блог компании ANT Аналитика мобильных приложений *
image


Каждому бизнесу рано или поздно нужно мобильное приложение. Как его заказывать? В этом случае вам помогут 5 вопросов, на которые вы, ответив, легко закажете мобильное приложение.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

Сказ о том, как сделать Гаусс пушку за семь дней

Время на прочтение 5 мин
Количество просмотров 56K
Разработка робототехники *
image

Когда я учился в университете на втором курсе, мне пришел весьма необычный заказ — трехступенчатая Гаусс пушка. Сроки на ее создание были очень короткими: на все про все была лишь неделя. Кроме того, пушка была с физически нереализуемой изюминкой: переполюсовкой магнитного поля катушек, что должно было, по мнению автора пушки, повысить ее КПД. Тем не менее, поскольку я любил Гаусс пушки и мечтал начать зарабатывать деньги любимым делом, я согласился на выполнение заказа.

Читать дальше →
Всего голосов 33: ↑26 и ↓7 +19
Комментарии 40

Разработка требований для противоречащих законодательств

Время на прочтение 4 мин
Количество просмотров 4.7K
Анализ и проектирование систем *
Многие продукты, ориентированные на международный рынок, нацелены на обслуживание клиентов, находящихся под действием разных, часто даже противоречащих финансовых регуляций и государственных законов.

На примере нашего проекта я расскажу как мы отлично с этим справились и какие практики выработали.

С докладом на эту тему я выступил на SECR-2016, слайды приложены в конце статьи.

Суть проблемы


В нашей ситуации, общий функционал, востребованный всеми клиентами, для каждого из них имел собственные правила, навязанные финансовым и юридическим регулированием. В таком случае самое важное не растерять все эти тонкости по дороге от выявления этих требований до удовлетворения клиентских потребностей.
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 7

Как построить эффективный управленческий учёт и получать сверхприбыль

Время на прочтение 7 мин
Количество просмотров 8.5K
Блог компании AGIMA Управление проектами *Бизнес-модели *
🔥 Технотекст 2020
image

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

Основная задача управленческого учёта — показать план и факт по финансовой модели организации для принятия управленческих решений. Но как учесть все факторы и риски для построения финансовой моделей?
Читать дальше →
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 11

Еще раз про усложненность архитектуры и порог входа

Время на прочтение 5 мин
Количество просмотров 8K
Разработка мобильных приложений *Проектирование и рефакторинг *Разработка под Android *
Из песочницы

В данной статье я коснусь вопроса порога входа в проект с устоявшейся архитектурой и дам несколько вариантов ответа на очень часто возникающий вопрос: почему так сложно?


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

Читать дальше →
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 13

Как сделать заказной веб- или mobile-проект с нуля: процессы, правила и немного крови

Время на прочтение 12 мин
Количество просмотров 6.3K
Управление разработкой *Управление проектами *
Из песочницы
В интернете и книгах полным-полно best practices, которые освещают те или иные моменты в работе над ИТ-проектом. Однако best practices не позволяют увидеть всю картинку, на которой был бы виден весь путь реализации проекта с нуля.

Мне не удалось найти такой «мануал», который бы разложил четко и по полочкам весь объем и порядок работ в заказном проекте. Поэтому идея поделиться своим опытом в разработке «внешних проектов» показалась мне неплохой — быть может, вы узнаете здесь себя.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 4

Заказная разработка контроллеров для IIoT

Время на прочтение 10 мин
Количество просмотров 5.1K
Блог компании Synergy Team SCADA *Разработка для интернета вещей *Производство и разработка электроники *Интернет вещей
В большинстве проектов промышленного Интернета вещей (IIoT) заказчики используют контроллеры, с которыми работали раньше или рекомендованные поставщиками систем верхнего уровня. При этом счет IIoT контроллеров на рынке, из которых можно выбирать, идет на тысячи.


Не всем известна опция разработки оборудования на заказ. Для большинства промышленных контроллеров не нужен «дальний космос» в виде уникального функционала или дизайнерского корпуса. При удачном выборе подрядчика, имеющего необходимые наработки, за 2-3 месяца можно сделать опытные образцы, а еще через пару месяцев — начать серийное производство. Разработка может окупиться за счет использования недорогой элементной базы и реализации нужного количества функций под конкретный проект. Комплекс оборудования на объекте будет состоять из минимального количества устройств (часто одного), а значит будет меньше работ по сборке, установке и пуско-наладке.

Заказная разработка «железа» давно не является уделом избранных заказчиков с огромными бюджетами. Однако, имеется ряд особенностей, с которыми лучше ознакомиться на собственном чужом опыте до начала проекта.
Любопытно
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 8

Стратегия тестирования краткосрочного проекта

Время на прочтение 11 мин
Количество просмотров 9.7K
Блог компании Arcadia Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *

За пять лет работы в «Аркадии» — компании-разработчике программного обеспечения на заказ, где я работаю тестировщиком, — мне довелось поучаствовать в самых разных проектах. Большая часть из них была связана с веб-разработкой, меньшая — с мобильной. Некоторые проекты длились более года, другие были краткосрочными (полгода или даже пару месяцев). Менялся и размер команд: от трёх до трёх десятков человек.  

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 0

Стоит ли инженерной команде с продуктовыми амбициями заниматься аутсорсингом?

Время на прочтение 5 мин
Количество просмотров 2.8K
Венчурные инвестиции Развитие стартапа Карьера в IT-индустрии Бизнес-модели *Производство и разработка электроники *

Если бы я — основатель дизайн-центра электроники Promwad — начинал свой бизнес сейчас, то не выбрал бы аутсорсинговую бизнес-модель. Это не значит, что всем командам с продуктовыми амбициями нужно обходить ее стороной. Временная работа в таком формате может стать отличным инструментом для достижения своих целей. Важно только действовать осознанно и понимать, как это работает.

Когда я только начинал работать в отрасли электроники в начале 2000-х и мечтал создавать серийные устройства на острие технологий, то мог рассчитывать только на собственные ресурсы. Не было доступа к западным рынкам свободного капитала, менторов, хабов и акселераторов — всего того, что сейчас формирует hardware-экосистему, да и доступ в интернет в те времена только недавно заработал без Dial-Up. Самым логичным выходом из ситуации для меня было такое решение:

Чем всё это закончилось?
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

12 визуализаций данных, которые иллюстрируют самые большие проблемы бедности

Время на прочтение 6 мин
Количество просмотров 5.5K
Блог компании OTUS
Перевод

Здесь собраны лучшие визуализации данных о глобальной грамотности, смертности, рождаемости и многом другом, которые помогут оценить перспективы некоторых из самых серьезных проблем, связанных с бедностью в наши дни. Хорошие новости: Уровень крайней бедности снижается, а продолжительность жизни и доходы в целом растут. Плохие новости: Нам предстоит еще много работы!

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 1

Как планировать разработку digital-проектов с учетом возможных изменений, сохранить прибыль и избежать убытков

Время на прочтение 8 мин
Количество просмотров 1.9K
Управление разработкой *Управление проектами *Управление продуктом *

Рассказываю, как наша компания адаптируется к изменениям требований при планировании проектов. Материал поможет руководителям веб-студий всегда делать проекты прибыльными. Клиенты digital-компаний смогут лучше ориентироваться на рынке услуг и понимать, в каких случаях можно все починить «по гарантии», и где лучше не экономить на незаменимом.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 2

Как не потерять собственное приложение

Время на прочтение 3 мин
Количество просмотров 2.1K
Разработка мобильных приложений *Управление проектами *

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

Уверены, что это действительно так?

Могут ли разработчики удерживать или претендовать на продукт?

Если возникнут конфликты, кто будет прав и как обезопасить себя и свои права?

Об этом говорим в статье.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 15

Почему ТЗ стоит денег?

Время на прочтение 7 мин
Количество просмотров 3.6K
Управление проектами *

Всем привет, меня зовут Дядиченко Григорий и я технический продюсер. Я в аутсорсе в роли фрилансера, аутсорс студии, заказчика и подрядчика уже 6 лет. В 2017 году я ушёл с последней постоянной работы и занимаюсь подрядом в том или ином виде. Сегодня хочется обсудить техническое задание. Почему оно стоит денег? Зачем вообще нужно качественное тз? Если вам интересна данная тема — добро пожаловать под кат.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 22