Частые ошибки при заказе приложения или сайта

Денис Гордиенко, руководитель Bright Mobile, об ошибках заказчиков при запуске своего первого сайта или приложения.

В закладки

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

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

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

Процесс создания можно разбить на этапы. Каждому этапу свойственны свои ошибки.

1. Проектирование

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

На этапе проектирования самая частая ошибка — желание запустить все и сразу. Описать в проектировании все фишки, весь функционал и начать разработку по нему.

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

Я каждый раз рекомендую, разрабатывать приложение версионно. Заложить в первую версию 15 ‑ 20 экранов, выпустить, собрать обратную связь от пользователей. И уже на основе полученной информации, думать о том, что делать во второй версии.

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

2 этап — Прототипы

Прототипы — это схематическое изображение экранов приложения.

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

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

3 этап — Дизайн

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

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

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

4 этап — Верстка

Верстка — это перевод картинок дизайна в программный код экранов или страниц, которые ещё не связаны друг с другом единой логикой работы.

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

5 этап — Серверная часть

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

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

Если все-таки решили проконтролировать этот момент, стоит посмотреть ТЗ для разработчика на соответствие с проектированием. Например, экран авторизации. Если в ТЗ указана авторизация по номеру телефона, то в документации для программиста должна быть описана реализация функции отправки смс на телефон, приёма ответа, отправки повторного кода и т.д.

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

6 этап — Реализация мобильного приложения, сайта.

На выходе после этого этапа имеем готовое мобильное приложение или сайт, которые можно посмотреть на тестовом контенте.

На этапе реализации приложения всегда появляются доработки. Это нормально, в ходе работы над проектом рождаются новые идеи. В лучшем случае проект запускается за 1‑2 месяца при скоростной разработке. В обычном режиме — 3‑4 мес. Всё это время основатель живёт идеей и придумывает что-то новое.

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

7 этап — Создание панели администратора

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

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

Мы чаще всего этот этап делаем после серверной части. С одной стороны клиент уже может заносить тестовые данные, с другой — может через панель администратора проверить работоспособность сервера хоть в каком-то объёме.

8 этап — Тестирование и отладка

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

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

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

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

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

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

Заключение

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

Надеюсь эта заметка позволит недопустить факапа во многих проектах.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Денис Гордиенко", "author_type": "self", "tags": [], "comments": 3, "likes": 9, "favorites": 64, "is_advertisement": false, "subsite_label": "life", "id": 98053, "is_wide": false, "is_ugc": true, "date": "Thu, 26 Dec 2019 16:25:39 +0300", "is_special": false }
Создать объявление на vc.ru
Сервисы
Куда уходят клиенты конструкторов сайтов
Чаще всего мигрируют с Wix на Tilda, клиенты «Платформы LP» переходят на Creatium, а «Битрикс 24» и Tilda обмениваются…
0
{ "id": 98053, "author_id": 127886, "diff_limit": 1000, "urls": {"diff":"\/comments\/98053\/get","add":"\/comments\/98053\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/98053"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }
3 комментария
Популярные
По порядку
1

Главное это то, что все написанное автором ,нельзя получить в Bright mobile) как говориться на словах он Лев Толстой, а на деле х... простой.

Ответить
0

Отличная статья!

Давно искал разработчиков ЦРМ для моего проекта "Ресторан бесплатной еды".
А тут - готовое "Техническое задание" с маркетплейсом поваров-надомников!
Беру!
Заверните в подарочную упаковку!
(напишу вечером разработчику в личку)

Ответить
0

Лучше внимательно прочитайте все комментарии:

https://vc.ru/94868?comment=1542820

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }