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

06.09.2023

Профессиональная разработка программного обеспечения
не имеет ничего общего с решением задачи в лоб.

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

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

Условие задачи, которую мы решаем находится тут.

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

Далее приведём список шагов профессиональной разработки ПО:
1. Анализ задания и предметной области.
2. Проектирование данных (доменной модели задачи).
3. Проектирование и дизайн внешнего интерфейса.
4. Написание acceptance тестов (TDD).
5. Реализация бизнес процесса (алгоритма расчёта премии).
6. Рефакторинг кода.

1. Анализ задания и предметной области.

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

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

Поэтому первое с чего стоит начинать работу над решением бизнес задачи
— это анализ задания и предметной области.

Ниже перечислим некоторые вопросы на которые вам нужно дать ответ
(оформите вопросы и ваши ответы на них в свободной форме в виде
текстового документа и приложите его в качестве решения):

1.1. О какой предметной области идёт речь в описании задачи?

1.2. О каком виде страхования идёт речь в описании задачи?

1.3. Какие специфические бизнес термины применяются
в описании бизнес задачи?

Попробуйте выписать из описания задачи все специфические бизнес термины (на eng), перевести их на русский и дать им краткое определение если это необходимо (напишите сами или найдите в интернете).

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

В дальнейшем, при написании кода вы сможете использовать эти термины в названиях переменных, методов, классов и так далее. Тем самым делая ваш код (ваше IT решение) более приближённым к реальной бизнес задаче.

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

В готовом решении вы сможете проследить где вы применили
специфические бизнес термины из приведённого выше списка.

Облегчит ли их применение чтение и понимание кода?
Где еще в коде вы можете применить бизнес термины из списка? Возможно вы что-то упустили? Если вы замените специфические бизнес термины другими названиями сделает ли это код более простым
в понимании?

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

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

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

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

Приведите конкретный пример в котором опишите входные данные, шаги
бизнес алгоритма (распишите их подробно) и ожидаемый результат.

1.6. Какие технические требования (ограничения, пожелания) выдвинуты к реализации?

Перечислите их и дайте им пояснение простым языком (в свободной форме). Если вы в чём-то сомневаетесь — задайте уточняющие вопросы!

1.7. На что просят обратить ваше внимание в задании?

Попробуйте проанализровать задачу и напишите ваши ответы на вопросы (1.1 — 1.7) в свободной форме в комментариях.

В следующей статье из этой серии мы приведём наши ответы на вопросы указанные выше и вы сможете сравнить их со своими. Не пропустите продолжение!

 

БЕСПЛАТНАЯ ОНЛАЙН ЛЕКЦИЯ ПО JAVA

ОСНОВЫ ПРОГРАММИРОВАНИЯ

УЖЕ 19 ИЮНЯ 2024 года в 19:00