Як скласти технічне завдання для програміста

Технічне завдання - дорожня карта будь-якого фахівця, особливо програмістів. Ви можете нескінченно довго розповідати про те, що сайт повинен бути красивим, швидким або адаптивним, але якщо це не буде зафіксовано в ТЗ, то фахівець нічого не зможе втілити в життя. Багато програмістів користуються некоректними технічними завданнями, щоб не виконувати доопрацювання, затягувати терміни тощо. Розповідаємо, як скласти технічне завдання для програміста, щоб отримати якісний продукт і попередити хитрощі з боку фахівця.

Коли потрібне чітке технічне завдання

До послуг програмістів доводиться вдаватися в декількох випадках:

  • сайт існує у формі ідеї, потрібна розробка з нуля;
  • потрібно доопрацювати або розширити наявний майданчик. Наприклад, додати онлайн-калькулятори, створити блог, реалізувати аналізатор статистики;
  • потрібні доопрацювання після виконаної розробки. Такий сценарій можливий, якщо ви замовили послугу у недосвідченого програміста, який не зміг довести розпочате до кінця.

До початку співпраці з фахівцем потрібно перевірити його портфоліо, відгуки замовників і рівень професіоналізму. Проводяться технічні консультації, чесний фахівець не обіцяє зробити «за тиждень на 60% дешевше, ніж в агентстві». Пошук починається з вакансії, розглянемо етапи її складання.

Складання вакансії для програміста

При формуванні опису вакансії необхідно максимально звузити коло пошуку. Конкретизуйте резюме: «Потрібен програміст для додавання функції А на готовий сайт на движку WordPress». Програмісти відразу зрозуміють, чи зможуть вони виконати подібне завдання, враховуючи свої професійні компетенції. Однак такі формулювання дають поверхневе бачення обсягу робіт, після вибору виконавця замовник повинен надати йому технічне завдання:

  • терміни на виконання (узгоджуються з виконавцем), ситуації, за яких дедлайн можна зрушити без репутаційних і комерційних втрат;
  • варіанти оплати та способи переказу коштів. Наприклад, електронними грошима після прийому готової роботи. У ТЗ можна зафіксувати моменти з авансом, хоча незнайомим фахівцям, особливо при дистанційному співробітництві, передоплату краще не давати;
  • правки і штрафні санкції, наприклад, за прострочення дедлайну;
  • деталізований опис результату роботи;
  • технічну інформацію, умови тестування.

Багато пунктів - типові, їх включають в усі договори підряду. Друга половина списку належить саме до розробки, тому їй потрібно приділити особливу увагу.

Як оформити ТЗ і сформулювати цілі

Результат

Для попередження розбіжностей клієнт повинен уточнити, що хоче отримати в результаті. Наприклад, мета - створення сервісу з перевірки орфографії. Сформулюйте і в стовпчик запишіть вимоги:

  • оформлення поля для вставлення тексту;
  • перевірка в режимі реального часу;
  • виділення помилок, коментарі до них;
  • ліміти на обсяг тексту, кількість перевірок без реєстрації;
  • способи оплати додаткового обсягу або перевірок;
  • наявність вимірювання грамотності у відсотках, зірках, балах;
  • можливість зберегти/завантажити текст.

Здається, що довгий список - це надто скрупульозно, проте такі ТЗ програмісти цінують. Їм не потрібно придумувати все самостійно, а потім вносити мільйон правок через те, що замовник бачить сервіс по-іншому. Чим точніше все описано, тим краще.

Технічна інформація

Замовник зобов'язаний надати технічну інформацію, необхідну для виконання поставленого завдання. Це легко реалізувати, якщо сайт створений на популярному движку: достатньо вказати назву движку і перелік плагінів, з якими новий продукт буде взаємодіяти.

Якщо сайт самописний, то все складніше. У цьому випадку потрібно надати дані про мову, щоб програміст підготував сам продукт. Після цього ви самі додасте його на сайт, якщо вмієте це робити: все досить складно, на фініші можна отримати криво працюючу програму.

Ідентифікація ресурсів - перший крок на шляху підготовки до злому. Наприклад, хакер отримав дані про те, що портал функціонує під управлінням IIS 7 під управлінням Windows Server 2008. У перспективі він почне шукати вразливості, характерні для цих продуктів, використовуючи спеціальні бази. Якщо пошук не увінчається успіхом, то шахрай почне шукати лазівки самостійно. У результаті для власника сайту ситуація може розгортатися плачевно.

Якщо ви хочете відразу додати сервіс на сайт, можна надати дані про базу даних, використовуваних файлах, бібліотеках, функціях і мові. Можна дати інформацію про функції, які використовувати не можна, щоб уникнути конфлікту.

Вигляд коду

Різні програмісти використовують індивідуальний підхід до написання коду. Тут все як з текстами: кожен автор має свій стиль, він не є поганим або хорошим, він індивідуальний. Багато програмістів відверто не люблять чужі коди, що уповільнюють виконання поставлених завдань. У деяких випадках - роблять проекти нездійсненними, тому від роботи доводиться відмовлятися. Краще скласти стандарти для оформлення коду, особливо якщо в проекті беруть участь кілька осіб. Стандарт формується за аналогією з редакційною політикою, але дозволяє отримати програму, яку при необхідності швидко виправить або масштабує інший програміст. Створення стандартів краще довірити першому програмісту: він задасть «стиль», його будуть дотримуватися наступні фахівці.

Тестування

До підключення нового продукту потрібно провести пошук лазівок в коді, вони можуть бути як навмисними, так і отриманими через неуважність, недосвідченість. Якщо проблем немає - можна виконувати підключення, тестування, відкриття доступу для звичайних юзерів.

Насамкінець

Складання ТЗ - основа отримання якісного, безпечного, функціонального продукту. Воно попереджає непорозуміння, помилки, подальші проблеми. Технічне завдання - страховка для кожної сторони угоди: програміст знає свої обов'язки і завдання, клієнт - упевнений у термінах і має «візуальний образ», за яким перевірятиме готову роботу. ТЗ попереджає зміну вектора розробки на різних етапах, формуючи гармонійне середовище для комфортної співпраці.

© 2008 - 2023 Webdesign Odessa
Создание - Раскрутка - Поддержка