Преимущества создания качественного ПО

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

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

Подробнее

Некоторые особенности разработки корпоративных информационных систем (КИС)

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

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

Подробнее

Краткий обзор процесса разработки ПО

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

  • Заказное ПО. Продукт разработки предназначается определенному заказчику, который финансирует процесс разработки и определяет требования к программному продукту. По исполнении заказа все права на продукт переходят к заказчику, который в будущем для совершенствования данного программного продукта может привлечь либо прежнего, либо любого другого исполнителя.
  • Инвестиционное ПО. Отличается от заказного отсутствием конкретного заказчика (хотя разработка может вестись и на средства, выделенные внешним инвестором). Обычно в этом случае права на программный код сохраняет исполнитель. Благодаря этому создаются условия для работы по постоянному совершенствованию данного ПО, выпуска его новых версий и обновлений для действующих. Вероятна и организация непрерывно работающей службы технической поддержки. Коммерческий эффект достигается обычно путем продажи программного продукта заинтересованным пользователям. Почти все программные продукты, представленные на свободном рынке относятся к данному типу ПО.
  • Игровое ПО. Это условное название, поскольку большинство компьютерных игр можно отнести скорее к инвестиционному типу ПО. Но в целом данный тип ПО характеризуется тем, что в процессе его разработки отсутствует (или до минимума ограничена по сроку) фаза сопровождения, что сильно влияет на экономику процесса разработки и его организацию.
  • Встроенное ПО. Это прикладное ПО, создаваемое под конкретные технические изделия и поставляемое вместе с ними. Сопровождению, как правило, не подлежит, но характеризуется повышенными требованиями к качеству, надежности и безотказности. Объясняется это тем, что отзыв партии изделий производителем – ситуация очень неприятная, несущая серьезные прямые коммерческие и репутационные потери для производителя изделий.

Этапы разработки ПО

Любой процесс, в том числе и разработка ПО состоит из какого-то количества определенных этапов. Процесс разработки ПО отличается тем, что обычно к работам над следующим этапом приступают, когда уровень готовности предыдущего достигает около 80-90%. В наибольшей степени данное обстоятельство относится к разработке требований, поскольку именно в них какой-то уровень неопределенности иногда сохраняется практически до завершения проекта. Этот момент является серьезным фактором риска, и должен непрерывно контролироваться.

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

  1. Подготовка. Определение общей концепции системы, востребованности, реализуемости и т.д.
  2. Разработка конкретных требований к программному продукту.
  3. Разработка архитектуры. Целью данного этапа является создание физической и логической архитектуры верхнего уровня, способной выполнить все требования к разрабатываемому программному продукту. На данном этапе возможна коррекция концепции, первоначального технического решения и требований. По его завершении, возможно начало параллельных работ над созданием следующей версии данного программного продукта.
  4. Этап поставки. Может включать несколько промежуточных этапов, в зависимости от масштабности проекта. На данной стадии проект приобретает форму относительно готового программного продукта.
  5. Опытная эксплуатация. Продолжительность данного этапа также зависит от масштабности проекта. На этом этапе выявляются и устраняются недочеты, баги, уязвимости и т.д. Проверяется качество работы ПО в различных условиях эксплуатации, совместимость с другими программными продуктами и т.д. Данный этап можно также назвать этапом основной отладки и оптимизации программного продукта.
  6. Этап коммерческой реализации, промышленной эксплуатации и т.д. Сопровождение и техническая поддержка.
  7. Вывод из эксплуатации. Прекращение технической поддержки и выпуска обновлений.
  8. Завершение работ.

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

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

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

Сегодня любой пользователь ПК регулярно использует в своей работе программное обеспечение. Даже обычное перемещение курсора – это тоже результат работы специального ПО. Как же происходит разработка программ, которые раскрывают перед пользователями массу возможностей?

Подробнее

Задачи IT-консультанта

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

Что клиент хочет от IT-аутсорсинга: возможности и перспективы через призму потребностей

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

IT-аутсорсинг вчера, сегодня, завтра

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

Основные причины применения IT-аутсорсинга

С точки зрения среднестатистического клиента можно выделить следующие причины:

  • Желание увеличить размеры прибыли предприятия. Что вполне логично, поскольку благодаря аутсорсингу можно значительно снизить издержки обслуживания бизнес-процессов;
  • Возможность администрации и управленцев сконцентрироваться непосредственно на ключевых задачах бизнеса. Действительно грамотных менеджеров не так много, поэтому не стоит тратить их время и потенциал на решение сторонних задач. В идеале каждый должен делать свою работу: менеджер – разрабатывать управленческую стратегию, а IT-специалист – заниматься оптимизацией информационной системы предприятия;
  • Возможность применения и адаптации к собственным потребностям уже накопленного опыта. Велика вероятность, что подрядчику уже приходилось сталкиваться с решением аналогичных задач, которые заказчик перед ним поставил. Поэтому с учетом накопленного опыта для их решения потребуется меньше усилий и вложений – временных, финансовых, ресурсных;
  • Задействование последних достижений и разработок. Естественно, IT-компания, предоставляющая соответствующие услуги, в курсе последних достижений и разработок. А благодаря их своевременному внедрению предприятие может не только быстро успеть занять соответствующую нишу на рынке, но и опередить конкурентов;
  • Повышение уровня качества обслуживания. Как правило, в договоре четко прописываются обязательства подрядчика, и аутсорсинговая компания несет ответственность за уровень качества предоставляемых услуг;
  • Оптимизация процессов управления. IT-компания владеет современными эффективными способами управления и может передать соответствующий опыт менеджерам клиента;
  • Гарантии развития и роста. Маловероятно, что собственный IT-отдел может гарантировать определенные показатели развития бизнеса, тогда как для профессионального подрядчика это не только не представляет проблемы, но и является обычным рабочим моментом.

В заключении можно выделить несколько ключевых факторов, при соответствии которым бизнеса клиент может воспользоваться услугами аутсорсинговой компании. Это потребность в профессионале высокой квалификации и одновременное желание сэкономить. В случае со сторонним исполнителем не придется нести расходы, связанные с оборудованием рабочего места, выплатой заработной платы и отчислениями в ПФР и ФСС. Второй фактор – это потребность в использовании качественных и проверенных технических решений, третий – необходимость в использовании только узкого набора сервисов. И, наконец, последний – необходимость высвобождения собственного IT-отдела или специалиста для решения других более приоритетных задач. Можно с уверенностью утверждать, что один или несколько вышеперечисленных факторов характерны для подавляющего большинства современных предприятий, и аутсорсинговой компании остается только помочь администрации принять оптимальное для бизнеса решение.

Сравнение Offshore и Nearshore IT-аутсорсинга

Обдумывая идею передачи некоторых функций предприятия сторонним компаниям, руководство достаточно часто сталкивается с предложениями обратиться к так называемому Offshore или Nearshore IT-аутсорсингу. Чтобы читателю были понятны иноязычные определения, достаточно сказать, что Offshore IT-аутсорсинг предполагает использование услуг сторонних разработчиков, расположенных на достаточно больших расстояниях от местоположения заказчика(к примеру заказчик из Европы, пользуется командой из Индии или Китая). Nearshore аутсорсинг предполагает обращение к более приближенным географически командам разработчиков или IT-специалистов, когда разница в часовых поясах едва превышает 1-2 часа. Какой из этих двух вариантов будет наиболее привлекательным для абстрактного клиента IT-аутсорсера, постараемся выяснить в рамках этого материала.

Ближе — дальше — лучше

Чтобы оценить разницу между Offshore и Nearshore IT-аутсорсингом, достаточно вспомнить, какие ограничения накладываются на взаимодействие с командой сторонних специалистов, если выполняющая контрактные работы компания расположена вдали от места вашего пребывания. Перечислим ключевые факторы, влияющие на качественное взаимодействие с IT-специалистами, работающими по принципу аутсорсинга:

  • стоимость услуг;
  • нацеленность на результат;
  • доступность;
  • менталитет разработчиков и менеджеров;

В основном, заказчики ориентируются на совокупность упомянутых показателей — цену услуги IT-аутсорсинга, вне зависимости от его вида — Offshore, Nearshore или Onshore, а также квалификацию персонала разработчиков, их географическую и коммуникационную доступность, и ментальную совместимость. Под последним подразумевается способность персонала заказчика найти взаимопонимание и общий язык с работниками IT-аутсорсера, что часто становится причиной отказов от сотрудничества с удаленными исполнителями. Тем не менее, в сегменте разработки программного обеспечения самым популярным является именно Offshore IT-аутсорсинг, когда исполнителями становятся программисты из Индии, Китая, Африки или Латинской Америки, ведь стоимость их услуг существенно ниже, чем у более близких с географической точки зрения компаний-аутсорсеров.

Nearshore против Offshore

Однако стоит обращать внимание и на другие факторы, влияющие на успешность осуществляемого проекта, отданного IT-аутсорсеру. Имеется в виду доступность команды разработчиков для постоянного контроля над их деятельностью — в этой ситуации Nearshore IT-аутсорсинг выигрывает за счет способности заказчика потратить минимальное время на дорогу к компании-аутсорсеру. В большинстве случаев европейские компании предпочитают отдать право реализации проекта по созданию ПО именно «местным» фирмам, что обуславливает популярность Nearshore IT-аутсорсинга в Европе. Если нуждающееся в разработке ПО коммерческое предприятие сталкивается с высокой стоимостью услуг расположенных поблизости исполнителей, то предпочтение будет отдано более доступным в ценовом плане разработчикам, находящимся вдали от офиса заказчика.

Для чего требуется быстрая и удобная возможность коммуникации с командой разработчиков, реализующих серьезный проект? В первую очередь, для осуществления постоянного контроля за их работой, чтобы IT-аутсорсер четко следовал графику выполнения мероприятий, а также был заинтересован в хороших результатах. Кроме того, весьма часто требуется непосредственное присутствие заказчика при решении каких-либо спорных вопросов, когда представителю предприятия-заказчика понадобится отправиться в офис сторонней компании. Если говорить о работе в формате Offshore IT-аутсорсинга, то добираться до исполнителей придется очень долго, а сама поездка ощутимо отразится на бюджете фирмы.

Не менее важным фактором является механизм взаимодействия заказчика и исполнителей, когда большая разница в часовых поясах весьма негативно сказывается на конечном результате. В этом отношении при выборе между Offshore и Nearshore IT-аутсорсингом руководство предпочтет остановиться на втором варианте, так как незначительная разница во времени практически не повлияет на формат взаимодействия — контролировать работу исполнителей удастся в течение своего рабочего дня, то есть так называемого суточного «лага», когда Offshore-аутсорсер начинает работу в ночное время, заказчика попросту не будет.

Надеемся, что вышеизложенный материал поможет сделать правильный выбор при определении способа работы — путем Offshore или Nearshore IT-аутсорсинга. Вполне вероятно, что в ряде случаев наиболее комфортной покажется работа с Onshore IT-аутсорсером, решение о чем каждому предприятию, нуждающегося в услугах сторонних компаний, стоит принимать самостоятельно.

Какие средства для проектирования ПО обычно используются

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

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

Процесс проектирования ПО

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

  • произвести анализ ключевых требований;
  • разработать архитектуру задуманного ПО;
  • создать устройство ключевых компонент будущей программы;
  • нарисовать и скомпоновать макет пользовательских интерфейсов.

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

Популярные средства для проектирования ПО

Приведем список наиболее популярных средств, применяемых для проектирования программного обеспечения как отечественными, так и западными командами разработчиков. К таковым относятся:

  • BPMN;
  • построение блок-схем;
  • создание ER-диаграмм;
  • UML-диаграммы;
  • разработка макетов и математических моделей.

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

Наиболее часто при использовании модели BPMN применяются следующие пакеты:

  • Sybase Power Designer;
  • Eclipse;
  • Vision 2003 + BPMN;
  • AcuaLogic BPMN.

И для создания блок-схем, наглядно формирующих структуру будущего приложения или программы, а также построения ER-диаграмм используется пакет Vision 2003, который можно назвать наиболее универсальным инструментом проектировщика программного обеспечения. Для разработки ER-диаграмм также применяются ERWin и упомянутый выше пакет Sybase Power Designer. Этот же программный пакет актуален для построения более сложных и действенных UML-диаграмм, являющихся, возможно, самым эффективным средством для проектирования программного обеспечения.

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

Для чего создается программное обеспечение по принципу OpenSource

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

С чем «едят» OpenSource

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

Так зачем и для чего создается OpenSource программное обеспечение. Чтобы ответить на этот вопрос, достаточно обратиться к наиболее известным представителям «армии открытого кода». Ими являются постепенно набирающая популярность, в том числе и в России, операционная система Linux, к созданию которой «приложили руку» сотни, а может и тысячи программистов со всего мира. Другим известным продуктом является интернет-браузер Mozilla Firefox, код которого разработчики предоставляют по первому требованию желающих. Основываясь на этой информации, можно попытаться охарактеризовать, для чего программисты вообще создают программные продукты с открытым кодом.

OpenSource — зачем и почему

Итак, программное обеспечение с открытым кодом, то есть разработанное по принципу OpenSource, создается по следующим причинам:

  • недостаточность человеческих ресурсов;
  • популяризация компании-разработчика;
  • потребность в создании «народного продукта».

Второй по счету причиной, которая привела к «народности» операционной системы Linux, стало отсутствие достаточного количества программистов, готовых работать над усовершенствованием ПО. Первой, если верить заявлению основателя Linux Линусу Торвальдсу, стала потребность в разработке по-настоящему «народной» ОС, доступной любому пользователю стационарного или мобильного компьютера. Несмотря на «вложенные» в программу человеческие ресурсы, добиться конкуренции со всемирно известной ОС Windows Linux все же не удалось.

Следующей по востребованности причиной создания OpenSource программного обеспечения является, по мнению экспертов, потребность в популяризации молодой команды разработчиков, планирующих покорить рынок. Если удается выпустить действительно стоящий продукт, востребованный среди многочисленных потребителей, последующие программы или приложения молодой команды программистов будут очень оптимистично восприняты пользователями, даже если они будут распространяться по платному принципу. Именно так обычно и происходит в современном мире больших денег. Ну и, наконец, последней в списке причин находится попытка создания «народного продукта», актуального для конкретной или сразу нескольких сфер деятельности человека. Среди успешных проектов, где целью являлось именно это, назвать сегодня можно разве что упомянутые ОС Linux и браузер Mozilla Firefox, количество «клонов» которого сегодня попросту «зашкаливает»,

Есть еще одна причина для разработки ПО с открытым кодом — попытка объединить талантливых программистов под крылом какой-нибудь общественной организации, но это тема отдельного материала.

Распространенные виды лицензий на программное обеспечение

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

Бесплатно — не всегда даром

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

  • Freeware;
  • DemoWare;
  • Trial или TrialWare;
  • ShareWare;
  • AdWare.

Разберем их более подробно. Первый тип лицензии является самым удобным для конечного пользователя — надпись «Freeware’ означает возможность применения программного продукта без каких-либо ограничений. При этом весь риск за вероятные последствия от использования такого ПО на пользовательском оборудовании ложится на плечи скачавшего программу человека. Принцип DemoWare означает, что результат деятельности разработчиков имеет целью продемонстрировать потенциальные возможности полноценной программы будущему покупателю, то есть такое ПО весьма серьезно ограничено в функционале. Распространяются подобные продукты исключительно в демонстрационных целях, весьма похожих на еще один вид лицензии на ПО — ShareWare. Этот тип лицензирования имеет условно-бесплатный принцип распространения программных решений, обеспечивающий потребителям возможность использования части доступных функций с рядом ограничений. К последним могут относиться как недоступность ряда функций, так и ограниченное число запусков приложения или программы, что вынуждает впоследствии приобретать за деньги полностью рабочий продукт.

Аналогичным с упомянутым ShareWare видом лицензии на программное обеспечение является TrialWare, чаще всего носящий укороченное название — Trial. Наличие подобной надписи в описании программного продукта говорит о похожих ограничениях в использовании — либо путем установления ограниченного количества доступных запусков приложения, либо с помощью лимитирования срока, в течение которого пользователь сможет ею пользоваться. Так называемый «триальный» период может длиться как несколько дней, так и один и более месяцев. AdWare, как следует из расшифровки этого сокращения, предполагает бесплатную эксплуатацию ПО, расплачиваться за что придется необходимостью просматривать рекламные блоки, интегрированные в приложение. Такой вариант лицензирования наиболее популярен для игр для смартфонов и планшетов, распространяемых по бесплатному принципу через интернет-магазины приложений.

Это был перечень наиболее востребованных на рынке и популярных среди разработчиков видов лицензий, используемых при распространении программного обеспечения среди потребителей. Подробно описывать другие существующие варианты лицензирования — например, DonationWare, PostCardWare, а также Ad-SupportedWare и BeerWare, когда создателю ПО пользователь обязан при встрече налить стаканчик пива, вряд ли стоит. Большинство из них являются фактически «умершими», и крайне редко встречаются в современном мире. Разницу составляют только хорошо известные Linux-пользователям бесплатные виды лицензий вроде GNU GPL и OpenSource ПО, о существовании которых использующие операционную систему Windows потребители узнают только от своих знакомых, пересевших на ОС Linux.