Блог разработчиков

Most Решений

Основи розробки ПЗ: добре сформульована мета

akhavr
Опубликовано 13.12.2006 в Разработка, Статьи, Учеба

(гостевая статья, прислал Андрей Хаврюченко)

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

В цьому можна пересвідчитись не тільки перевіривши живу статистику успішності програмних проектів (половина проектів або відміняється або вилазить за первісні межі), але й просто поспілкувавшись з сусідами по кімнаті, співробітниками, студентами.

Я веду курс з розробки програмного забезпечення і тільки половина моїх студентів на першій, установчій, лекції дає правильну відповідь на питання

З чого Ви почнете проект з розробки ПЗ?

І це навіть в найпростішій моделі проекту: один замовник - один розробник…

Ну добре, мої студенти - не зірки МІТ-у або КалТеху, але половина!?..

Проект з розробки ПЗ - це проект. За визначенням
Вікіпедії та PMI це означає, що:

  • у нього є початок
  • у нього є кінець і
  • він пов’язаний зі створеннямcreation of чогось

Іншими словами, у кожного програмного проекта є мета.

То чому ми не використовуємо методи психології, які публічні і давно доступні, як допомогу в цьому процесі досягнення мети?

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

Між досягненям і недосягненням мети є, м’яко кажучи, помітна різниця. І якщо мене цікавить як виконати мій проект, натуральним є питання

Які необхідні компоненти цілі, що можна досягти?

Та це ж елементарно! “Not a rocket science”, пустити гугл шукати “well formed goal” (добре сформульовану мету). На момент написання англійського варіанту цієї статті, гугл видає статтю Вікіпедії”Well formed outcome” третьою.

Основними критеріями добре сформульованої мети є:

  1. Позитивність. Це означає що будь-який проект, метою якого є, скажімо, “недопуск спаму і вірусів на комп’ютер” є одразу приреченим на невдачу. Ніхто просто не в стані досягти небуття чого-небуть точно так же як і довести негативне твердження. Для перевірки, доведіть що ви не п’єте коньяк вранці.
  2. Конкретність. Це найважливіша властивість хорошої мети в програмному проекті. Знайте що Ви побачите, почуєте, відчуєте коли досягнете мети (наприклад певна функція ПЗ буде працювати корректно). Будьте настільки конкретними, наскільки Ви можете. І навіть більше. Використовуйте всі сенсорні системи для визначення вашої мети. Неконкретність - перша причина зриву в досягненні цілі.
  3. Бути можливою і досяжною. Можна вважати, що практично будь-яка (корисна) мета - досяжна. Та на практиці цей критерій насамперед означає, що Ви, той хто прагне досягти цієї мети, вважаєте її можливою та досяжною. Прямо тут і зараз. Цей критерій пов’язаним з наступним:
  4. Наявність всіх ресурсів. Майте комп’ютре, майте інтернет-з’єднання, майте електрику та волю для виконання проекту, знайте та умійте те, що треба, якісно спілкуйтесь з Замовником, і т.д., і т.п. Майже будь-що можна вважати ресурсом (включаючи перелік цих критеріїв), що Вам доступен або не доступен. З мого досвіду, недостатні ресурси - друга за частотою причина недосягнення мети.
  5. Добре окреслений часовий проміжок. Ні, пане Замовнику це має бути готово на вчора не являється добре окресленим часовим проміжком.
  6. Екологічність. Ви, хто працює над досягненням результату, знайте чого він буде коштувати і що за собою потягне. Так, отримати мілліон внаслідок грабунку банку може бути добре сформульованою метою. Але тільки якщо Ви приймаєте ціни та наслідки такої поведінки. Я - ні.

Весь механізм досягнення добре сформульованих цілей забезпечується самою природою. Мозок людини, від кори до спинного мозку налаштований на досягнення цілей. Вся еволюція від бактерії через трилобітів до homo sapiens - це процес успішного досягнення цілей. Ті, хто не досягав мети - зходив з дистанції. Його з’їдали. Так що буквально кожна людина (я не знаю нелюдських розробників ПЗ, якщо вам такі відомі - дайте знати) має всередені виключно потужний механізм досягнення будь-якої мети.

Для мене, програмний проект - це кампанія по перекладу. Розробник перекладає ідеї Замовника на машинну мову. Критерії, окреслені вище - всього навсього інструкції для перекладу нечітких намірів в щось що наша підсвідомість розуміє і звична до виконання.

То чому б реально не зробити перший крок для досягнення мети - добре її визначити?

Англійський варіант Software Development Basics: Well-Formed Outcome

1 звезда2 звезды3 звезды4 звезды5 звезд (Еще не оценили)
Загрузка ... Загрузка ...

Читать комментарии - 16

Subscribe without commenting

Все комментарии (16) к “Основи розробки ПЗ: добре сформульована мета”

  1. Анонимно говорит:

    Recommended reading about the same: http://www.amazon.com/Discovering-Business-Requirements-Software-Computing/dp/1580537707

  2. ili говорит:

    http://trenings.ru/content/view/360/59/

  3. Скакунов Александр говорит:

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

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

  4. Скакунов Александр говорит:

    Пардон: ссылка, предоставленная ili, устраняет недостаток отсутствия практики. Спасибо!

  5. akhavr говорит:

    Олександр, дійсно, я щойно прокинувся і аж підстрибую від бажання.

    Правда, від бажання випити кави, а не кидатись передавати вам “щось”. Навіть частину :)

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

    Або почекати доки будуть опубліковані подальші статті, що описують весь комплекс базових інструментів розробки: (а) добре сформульовану мету (б) декомпозицію (в) аналіз (той що After Action Review).

    А потім - тільки практика. Ніяки тренінги та посилання не допоможуть при її відсутності.

    Ili, я ж сказав що це добре відома тема :) Тільки чомусь добре відома != широко застосовувана.

  6. Скакунов Александр говорит:

    Всё понятно, буду ждать статьи.

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

  7. akhavr говорит:

    Олександр: зрозумів, просто знай що таке словосполучення має і інші інтерпретації і не факт, що твій співбесідник зрозуміє саме так, як ти хотів :)

    Стосовно “цікава”.. Це м’яко сказано :) Намагаючись з 1998 року спокійно спати доки мої продукти працюють “десь” я не міг не прийти до певного процесу і філософії розробки. В сфері чуттєвого досвіду (побачити, почути, помацати) це в 2003 році вилилось в тренінг з основ розробки ПЗ. Тепер, по досвіду тренінгу - статі.

    Повторювати майже слово-в-слово кожному студенту за майже 4 роки набридає :) Є квола надія що статтями середній рівень розробників хоч трохи підніметься.

    Удачі в розробці!

  8. ili говорит:

    Предлагаю изменить отношение к задаче.
    Пример: (лекция->тренинг) => (известность->примениние)

    //тренинги проводил. опыт есть )
    //лекции тоже )
    http://www.developers.org.ua/archives/motus/2006/10/28/kuda-poyti-uchitsya/#comment-8697

  9. ili говорит:

    http://nkozlov.ru/syntone/syntone20/

  10. akhavr говорит:

    Пропоную, до купи, додати в коментарі ще лінки на загальну психологію людини та тренінг ЕСТ :)

  11. ili говорит:

    уж лучше почитать http://research.rbc.ru/rev_short/24364319.shtml

  12. akhavr говорит:

    Ili: кому краще?

    Рынок бизнес-тренингов в России
    Заказать (купить)
    Автор: DISCOVERY Research Group - 03.07.2006 - 85 стр.

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

    Отже?

  13. akhavr говорит:

    Ili, отримав коментар поштою, але тут його ще не бачу.

    Пропоную в пошту і перенести, бо я знову не бачу кому ти пропонуєш. Відсутній суб’єкт. Переформулюй будь-ласка.

  14. ili говорит:

    Ok.
    Ушло
    2Mods - предлагаю всю личную преписку в dev/nyll …
    2akhavr - ты таки продаешь … вопрос чем платить …

  15. akhavr говорит:

    Ili: і що ти хочеш мені продати? ;)

  16. Микола Дмитренко говорит:

    Не вдаючись до грунтовного аналізу Вашої роботи вбачємо у Вашій особі спеціаліста у сфері планування людської діяльності.

    На нашу Думку ситуацію в Україні може змінити тільки правильно сформулювана президентська Програма Спільних дій.

    Пропонуємо наш проект Програми та “Окреслення шляху” до неї.

    http://kpk.org.ua/2007/05/28/teror_korupcja_rejjderstvo_ta_bagatopartjjnst.html
    В разі зацікавленості матеріал буде надісланий на запит.

    З повагою Микола Дмитренко.

    Запрошуємо до участі в розробці та реалізації національної мети Української Духовної Республіки - Програми дій.

Оставить комментарий

XHTML: допускаются следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Вход на сайт

или

Регистрация

здесь могла бы быть ваша реклама

Новые вакансии

Все вакансии

Подписка RSS

Комментарии