← Timeline
Avatar placeholder
tigra
(updated )
Программистская байка на ночь

Однажды в студёную зимнюю пору руководство фирмы, где я тогда работал, прослышав, что я знаком с PHP, саммонило меня к себе в кабинет и дало задание: принять знамя проект из рук покидающего нас программиста и "исправить ошибки". Программиста увольняли, - заказчик был недоволен. Разбираясь с тем, что не так и что нужно сделать так, я поговорил с самим программистом, потом (вместе с другими сотрудниками) провели ряд сессий с представителями заказчика, которые должны были стать пользователями системы.

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

В общем, сделали прототип из HTML и небольшого количества Javascript. Пользователю понравилось. Как оказалось, в терминах сущностей из красивой Entity Relationship Diagram никто из пользователей не думал. Разве что директор - но скорее в аналитических терминах. И никто не рассуждал так: мне надо завести сущность X, в ней Y, в ней Z и т.д.. В операционной деятельности применялся Эксель и мысль шла так: мне надо добавить строчку X Y Z. Сущности и их взаимосвязи были пользователям понятны, но, выполняя конкретную операцию (причём основную в деятельности), они не думали в этих терминах. Да, конечно, под капотом эту строчку следовало разобрать на сущности и посоздавать необходимые. И кое-где не сразу получилось нащупать внутреннее устройство этой структуры и по мере развития системы пришлось кое-что рефакторить.

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

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

To react or comment  View in Web Client
Comments (2)
Avatar placeholder

звучит как байка про пользу аджайла в обнимку с пользователем 🙂

👍1
Avatar placeholder

Близко к тому. Полноценного аджайла там не было, но присутствовал вменяемый requirements engineering и prototyping как инструмент коммуникации.

To react or comment  View in Web Client