9.91M
Categories: programmingprogramming softwaresoftware

Введение в разработку ПО. Занятие 1

1.

Занятие 1
Введение в разработку ПО

2.

Содержание
1. Приветствие. Организационные моменты.
2. Введение в IT-сферу. Виды деятельности и услуг ITкомпаний. Аутсорсинг в IT.
3. Проектная деятельность.
4. Команда разработки ПО.
5. Жизненный цикл разработки ПО.
6. Финансирование проектов.
it-courses.by

3.

Организационные моменты
• Наша группа в Телеграм
• Наша Google-папка (здесь все лекции, книги,
темплейты и т.д., отправь запрос на доступ, если его
нет)
• Мой email: hodar9375@gmail.com
• Мой Skype (рабочий): maksim.khodar
• Мой телефон: +375295529113
it-courses.by

4.

“Войти в IT”
Информационные технологии (от Information Technology
(IT), сокр. ИТ)
it-courses.by

5.

Почему IT?
Умные и талантливые
коллеги
Высокое качество белорусской
разработки, которому доверяют
Постоянно растущий спрос на ИТ-услуги
«ICT sector revenues reached almost USD 4 billion
in 2016»
Позитивный прогноз (ПВТ)
it-courses.by

6.

37% занятых в ИТ отметили, что в 2017 году их заработная плата
увеличилась более чем на 20%
63,4% аналитиков удовлетворены своей заработной плате
it-courses.by

7.

Виды деятельности и услуги
IT-компаний
Разработка ПО, а также оказание услуг по их внедрению,
поддержке и сопровождению;
Обработка данных с применением ПО;
Техническая и криптографическая защита информации;
Аудит информационных систем и ПО, ИТ-консультирование;
Издание и продвижение ПО, включая компьютерные игры;
Рекламные и посреднические услуги в сети Интернет с
использованием разработанного ПО;
Разработка и обслуживание программных средств с
использованием технологии реестра блоков транзакций
(блокчейн);
Майнинг, услуги по созданию и размещению цифровых знаков
(токенов), деятельность криптобирж и криптообменников;
Разработка систем беспилотного управления транспортными
средствами;
Услуги центров обработки данных, включая хостинг;
Создание, обучение нейронных сетей и иная деятельность в
сфере искусственного интеллекта;
Разработка и внедрение концепции Интернет вещей;
Разработка технологий для финансовой сферы;
Киберспорт и образовательная деятельность в сфере ИТ и др.
it-courses.by

8.

Аутсорсинг в IТ
Задача -> Решение
Аутсо́ рсинг (от англ. Outsourcing: использование внешнего источника и/или
ресурса) — передача организацией, на основании договора, определенных видов
или функций производственной предпринимательской деятельности другой
компании, действующей в нужной области.
Плюсы аутсорсинга:
● Освобождение персонала от рутинных или непрофильных задач;
● Концентрация заказчика на целях и задачах бизнеса;
● Экономия затрат
Вне аутсорсинга: проектирование архитектуры, разработка критических сервисов.
it-courses.by

9.

it-courses.by

10.

Аутсорсинга vs. Аутстаффинг
Аутсорсинг ~ Outsourcing - это процесс передачи проектов, действий или
функций третьей стороне, у которой есть все необходимые ресурсы для ее
проведения - например, квалифицированный персонал и оборудование.
Аутстаффинг ~ Outstaffing - это процесс предоставления работодателю
необходимых специализированных команд или
специализированных разработчиков, которых им
не хватает.
Для аутстаффинга в IT компаниях характерно:
● Персонал подбирается в соответствии с
задачей заказчика;
● Вся ответственность за качество проекта плюс
риски по управлению, простоям, загрузке
лежат полностью на заказчике;
● Заказчик поименно знает всех членов команды;
● Компания (поставщик аутстаффинга) несет ответственность за обеспечение
официальной занятости, налогообложения, страхования, предоставление
комфортных условий труда и т.д.
it-courses.by

11.

Проектная деятельность
● Проект – это временное предприятие,
предназначенное для создания уникальных
продуктов, услуг или результатов [PMBOK]
● Проект – это среда управления, созданная с целью
выпуска одного или более бизнес-продуктов
[Prince2]
Проект = Среда обитания * Аналитика
it-courses.by

12.

Пример проекта
NASA: «Managing the Moon
Program»
Реализация проекта: 1961 – 1969 гг.
Результат: первая и 5 последующих
пилотируемых высадок на Луну:
1969 – 1972 гг.
Бюджет проекта: $20-25,4 млрд.
(1969 г.) / $136 млрд. (2005 г.)
it-courses.by

13.

Жизненный цикл проекта
5 групп процессов:
Инициирование: цели, задачи, ответственность, команда;
Планирование: расписание, бюджет, риски, ресурсы, персонал;
Реализация: технологии, решения, изменения, качество;
Контроль: отчетность, прогнозы;
Завершение: обучение клиента, передача документов,
освобождение ресурсов, ретроспектива.
it-courses.by

14.

Успешность IТ-проектов
➢ Успешны лишь 30% IТ-проектов;
➢ 50% превышают запланированный бюджет, не
вкладываются в график, не достигают целей;
➢ 20% останавливаются незавершенными;
➢ Только 2% IТ-проектов с бюджетом более 10 млн. долл.
становятся успешными
it-courses.by

15.

Почему IТ-проекты терпят неудачу?
➔ 46% of CIOs say that one of the main reasons IT projects fail is weak
ownership
[The Harvey Nash/KPMG CIO Survey, 2017]
➔ 33% of IT projects fail because senior management doesn’t get involved and
requirements/scope change mid-way through the project
[A Replicated Survey of IT Software Project Failures by Khaled El Emam and A. Güneş Koru,
2008]
➔ 78% of respondents feel that business is out of sync with project
requirements and business stakeholders need to be more involved in the
requirements process
[Doomed from the Start Industry Survey by Geneca, 2011]
➔ Poor estimation during the planning phase continues to be the largest (32%)
contributor to IT project failures
[PwC 15th Annual Global CEO Survey, 2012]
it-courses.by

16.

Что делать?
1. Снижать степень неопределенности проекта посредством
детального планирования (границы проекта и требования);
2. Ставить SMART цели;
3. Проверять соответствие требований бизнес-целям;
4. Подружиться с Заказчиком - все заинтересованные в проекте
лица (stakeholders) должны быть максимально вовлечены в
проект;
5. Собрать команду (которая начинает, реализует и заканчивает
проект в одном составе);
6. Нанять профессионального менеджера проекта/сторонника
продукта
it-courses.by

17.

18.

Инструменты управления проектами
1. Самые популярные: ничего либо Excel;
2. MS Project или похожее ПО;
3. Помощь консалтинговых компаний и др.
JIRA, Google Docs & Spreadsheets, MS Excel,
Outlook, MS Project, Skype
it-courses.by

19.

Модели финансового взаимодействия
Fixed Price
Фиксированная цена
Задача -> Оценка -> Реализация проекта в соответствии с оценкой
● Фиксированный бюджет, объем работ, временные рамки;
● Отсутствие возможности внести изменения или дополнения после
подписания контракта;
● Подходит для:
○ Краткосрочных небольших проектов,
○ При ограниченном (фиксированном) бюджете,
○ При разработке MVP (Minimum Viable Product),
○ Когда у вас есть четкие требования и сроки проекта.
PoC
it-courses.by

20.

Модели финансового взаимодействия
Time and Material
Время и материалы
Задача -> Выполнение задачи -> Отчет по затраченному времени
● Распределение ресурсов между проектами (part-time работа на разных
проектах);
● Распределение занятости ресурсов на проекте (по объему задачи, ее
сложности и срокам);
● Заказчик получает «pваный» инвойс в конце месяца;
● Идеально подходит для средних по продолжительности и долгосрочных
проектов с меняющимися требованиями.
Преимущества T&M:
➢ Гибкий подход к разработке;
➢ Масштабируемость и быстрая адаптация;
➢ Возможность четко определить приоритеты проекта;
➢ Контроль затрат и гибкость бюджета;
➢ Вовлечение клиента в процесс разработки. Roadmap
it-courses.by

21.

Модели финансового взаимодействия
Dedicated Team
Выделенная команда
Заказчик получает в полное распоряжение сработанную команду
специалистов на долгосрочную перспективу. Заказчик самостоятельно
управляет командой;
Команда работает full-time только над проектами заказчика и
взаимодействует с ним напрямую;
Заказчик готов вкладывать средства в развитие качественного продукта;
Заказчик оплачивает основную работу, компания берет на себя контроль за
рисками (но может делить их с заказчиком).
Преимущества Dedicated Team:
➢ Экономическая эффективность;
➢ Концентрация на проекте и полное погружение;
➢ Тесное сотрудничество между командой и клиентом;
➢ Непрерывная разработка (непрерывная занятость);
➢ Возможность оптимизировать продукт.
Dedicated teams и T&M — это две родственные модели. Отличаются объемом часов, которые
продаются, и ресурсами.
it-courses.by

22.

it-courses.by

23.

Заказчик
Команда разработки ПО
Менеджер по
продажам
UI/UX
дизайнер
Тестировщик
Бизнес-аналитик
Конечный
пользователь
Разработчик
Архитектор
Роль
it-courses.by
Человек
Менеджер проекта
Технический
писатель

24.

Заказчик
Client
Клиент/Заказчик (Client) - тот, кто покупает продукт / заказывает разработку
продукта.
Характеристики:
● Не один человек, а группа лиц;
● Формулирует бизнес-требования;
● Зачастую выкраивает время на работу с командой;
● Редко является конечным пользователем системы;
● Принимает ключевые решения.
Не стоит путать клиента с:
➢ Конечным покупателем (Customer) - организация, которая использует продукт.
➢ Конечным пользователем (User) - человек, который использует продукт.
it-courses.by

25.

Типы заказчиков
Государственная компания
● Тендеры;
● Стандарты (ГОСТ)
Крупный бизнес
● Видимо, вы один из множества тех, кто
на него работает;
● Очень важно качество;
● Предсказуемость, выстроенные
процессы
Малый бизнес
● Видимо, никогда не
аутсорсили;
● Цель - сэкономить
*Русский клиент
- «Хочу как у него»;
- Купить подешевле, продать
подороже
it-courses.by

26.

Билль об обязанностях клиента ПО при
формировании требований
it-courses.by

27.

Менеджер по продажам
Sales Manager (SM)/ Account Manager (AM)
Менеджер по продажам — специалист, который отвечает за
первичное общение с клиентом: от первого контакта и предложения
услуг компании до заключения сделки (часто менеджер по продажам
остается правой рукой заказчика и в дальнейшем).
Ключевые обязанности менеджера по продажам:
● поиск потенциальных клиентов;
● первичный контакт с клиентом;
● презентация услуг компании;
● ведение переговоров;
● подготовка коммерческих предложений;
● подготовка и подписание контракта;
● повторное привлечение клиентов к сотрудничеству.
it-courses.by

28.

Менеджер проекта
Project Manager (PM)
Менеджер проекта — это специалист, отвечающий за успешное
выполнение проекта: в указанные заказчиком сроки, с необходимым
качеством, при фиксированном бюджете, ограниченных
человеческих ресурсах и в соответствии с требованиями со стороны
заказчика.
Что делает?
● Левая рука заказчика;
● Не углубляется в детали требований;
● Предлагает решения;
● Эффективно коммуницирует и решает проблемы;
● Обрабатывает задачи и занимается планированием;
● Беспощадно делегирует;
● Отчитывается перед заказчиком.
Навыки:
● Hard skills;
● Soft skills;
● Разговорный английский;
● Владение методологиями управления проектами;
● Командный игрок, мотиватор и т.д.
it-courses.by

29.

Бизнес-аналитик
Business Analyst (BA)
Бизнес-аналитик — это роль в проекте, которая прежде всего
отвечает за действия по работе (выявление, анализ,
документирование, проверка, управление) с требованиями в проекте.
Отвечает за сбор и распространение информации о продукте.
За что отвечает?
● Определение бизнес-требований;
● Планирование подхода к работе с
требованиями;
● Определение заинтересованных
лиц и классов пользователей;
● Выявление требований;
● Анализ требований;
● Документирование требований;
● Приоритезацию требований;
● Управление требованиями и др.
Карл Вигерс
«Библия» бизнес-аналитика
it-courses.by

30.

it-courses.by

31.

Архитектор
Architect
Архите́ ктор ПО — проектная роль в разработке, ключевая
обязанность которой - это проектирование архитектуры ПО, то
есть принятие ключевых проектных решений относительно
внутреннего устройства программной системы и её технических
интерфейсов.
Принимает концептуальные решения о том, как будет построена система;
Вовлечен в проект, начиная с его ранней стадии.
Из требований он получает информацию о реализуемости, быстродействии
или трудоемкости.
it-courses.by

32.

Разработчик
Developer / Software Engineer
Программи́ ст — специалист, занимающийся непосредственной
разработкой программного обеспечения.
it-courses.by
Реализует требования, описанные аналитиком;
На практике нередко смотрит больше на оглавление
спецификации, лишь бегло прочитывая ее текст;
Задает совершенно конкретные вопросы, о которых аналитик
мог и не подумать. (CS50)

33.

Тестировщик
Tester / Quality Assurance (QA) Engineer
Тестировщик — это специалист, который занимается
тестированием ПО с целью выявления ошибок в его работе
и их последующего исправления.
Проверяет требования на
полноту,
непротиворечивость и
понятность описания;
● Проверяет артефакты на
соответствие принятым в
проекте соглашениям;
● На основании
утвержденных
требований
разрабатывает тест-кейсы;
● Контролирует качество
разрабатываемого ПО.
it-courses.by

34.

UI/UX дизайнер
UI/UX Designer
Пользовательский интерфейс (User Interface / UI)
обеспечивает передачу информации между пользователемчеловеком и компонентами компьютерной системы
Интерфейс — это всегда взаимодействие (системы и человека).
Опыт взаимодействия (User eXperience/ UX) это восприятие и
ответные действия пользователя, возникающие в результате
использования и/или предстоящего использования
продукции, системы или услуги
UX-дизайн — это комплексный подход к
взаимодействию пользователя с интерфейсом,
будь то веб-сайт, мобильное приложение или
любая другая программа. Задача UX-специалиста
— при разработке интерфейса по возможности
максимально учесть все мелочи, начиная от
среды пользователя и типа электронного
устройства и заканчивая способами ввода и
отображения информации.
it-courses.by

35.

Технический писатель
Technical Writer
Технический писатель — специалист, занимающийся
документированием в рамках решения технических задач, в
частности разработки программного обеспечения.
Опирается на описанные аналитиком требования при подготовке
руководств, инструкций и хелпов к системе.
it-courses.by

36.

Степень неопределенности в проекте
it-courses.by

37.

Заинтересованные лица
Stakeholders
Stakeholder— это человек, группа или организация, которая активно
задействована в проекте, подвержена влиянию процесса или результата
или может влиять на процесс или результат.
it-courses.by

38.

it-courses.by

39.

Жизненный цикл разработки ПО
Жизненный цикл программного обеспечения (Software Life Cycle
Model) — это период времени, который начинается с момента
принятия решения о создании программного продукта и заканчивается
в момент его полного изъятия из эксплуатации
.
Основные модели жизненного цикла ПО:
1. Каскадная модель;
2. V-образная модель;
3. Спиральная модель;
4. Инкрементная модель;
5. Итерационная модель;
6. Модель прототипирования;
7. Модель быстрой разработки
приложений RAD.
it-courses.by

40.

Каскадная модель
Преимущества:
● Проста и понятна в понимании
и применении;
● Отличается стабильностью
требований;
● Высвобождает специалистов
после завершения этапа.
Недостатки:
● Отсутствие обратных связей
между этапами;
● Недочеты могут быть
обнаружены только в конце
разработки;
● Не соответствует реальным
условиям разработки ПО.
● R&D
it-courses.by

41.

V-образная модель
Разработка через тестирование
it-courses.by

42.

V-образная модель
Разработка через тестирование
На каждом этапе происходит контроль текущего процесса, для того чтобы убедится
в возможности перехода на следующий уровень. Контроль заключается в
определении результатов, которые должны быть получены в процессе разработки.
Преимущества:
Строгая этапизация;
Планирование тестирования и
верификация системы производятся на
ранних этапах;
Модель проста в использовании.
Недостатки:
Недостаточно гибкая модель;
Недостаточный анализ рисков;
Нет возможности динамичного внесения изменений;
Собственно создание программы происходит на этапе написания кода, то
есть уже в середине процесса разработки.
it-courses.by

43.

Спиральная модель
Преимущества:
● Управлению рисками
уделяется особое
внимание;
● Дополнительные функции
могут быть добавлены на
поздних этапах;
● Есть возможность гибкого
проектирования.
Недостатки:
● Оценка рисков на каждом этапе является довольно затратной;
● Реакция заказчика может провоцировать все новые и новые итерации;
● Более применима для больших проектов.
it-courses.by

44.

Инкрементная модель
Преимущества:
Заказчик может дать свой отзыв касательно каждой версии продукта;
Есть возможность пересмотреть риски;
Привыкание заказчика к новой технологии происходит постепенно.
it-courses.by

45.

Гибкая модель
Итеративная
Преимущества:
Снижение рисков –> минимизации затрат на их устранение;
Эффективная обратная связь проектной команды с пользователями;
Акцент усилий на наиболее важные и критичные задачи;
Непрерывное итеративное тестирование;
Раннее обнаружение конфликтов между требованиями, моделями и
реализацией проекта;
Более равномерная загрузка участников проекта;
Эффективное использование накопленного опыта;
Реальная оценка текущего состояния проекта.
(Scrum, Kanban, Lean, RUP…)
it-courses.by

46.

Frontend, Backend

47.

48.

Incremental model vs. Iterative model
it-courses.by

49.

Типы проектов по финансированию
«Главная цель любого бизнеса — не придумать, как решить проблему. Не
сделать много продаж. Не найти клевого дизайнера, который сделает красиво.
Главная цель — заработать деньги»
Прибыль
Денежные
накопления,
сбережения
it-courses.by
Family, friends & fools
Заемные средства инвесторов (фонды
или частные лица (бизнес-ангелы))
Банковский кредит
Краудфандинг (p2p)
Акселератор или инкубатор
Конкурсы
Государство

50.

it-courses.by

51.

Венчурные инвестиции
Early stage in the life cycle of an enterprise where the entrepreneur moves from
the idea stage to securing financing, laying down the basis structure of the
business, and initiating operations or trading
[Business Dictionary]
Startup is a state of mind
[Adora Cheung, cofounder
and CEO of Homejoy]
Возможные проблемы стартапа:
● Отлаживание бизнес-процессов;
● Сложность приоритизации фичей
и управления развитием продукта
(аналитика в помощь);
● Медленная разработка
(применяй подход backend as a service);
● Мало внимания UX/UI
it-courses.by
English     Русский Rules