+
Вход

Въведи своя e-mail и парола за вход, ако вече имаш създаден профил в DEV.BG/Jobs

Забравена парола?
+
Създай своя профил в DEV.BG/Jobs

За да потвърдите, че не сте робот, моля отговорете на въпроса, като попълните празното поле:

100-5 =

+
Забравена парола

Въведи своя e-mail и ще ти изпратим твоята парола

Добрият инженер знае ,,как“. А трябва ли да знае и ,,защо“?

© Текстът е предоставен от Sirma
Как бизнес контекстът помага на инженерите да вземат по-добри технически решения

Да напишеш работещ код е едно. Да разбереш дали решаваш правилния проблем – съвсем друго.

Днес AI може да предложи решение, да генерира код, да открие грешка или да ускори рефакторирането. Но все още някой трябва да реши какво всъщност си струва да бъде разработено.

Една задача може да бъде изпълнена безупречно от техническа гледна точка и въпреки това резултатът да не е най-доброто решение за продукта, клиента или хората, които ще го използват. Причината невинаги е в липсата на технически знания. Понякога липсва контекстът зад задачата.

Какъв проблем всъщност решаваме? Кой стои от другата страна? Защо това изискване съществува? Как техническото решение ще се отрази на останалата част от системата?

Тези въпроси излизат извън конкретния ticket. Но когато самото създаване на код става по-бързо, именно те все по-често отличават инженера, който изпълнява, от този, който допринася за правилното решение.


Кодът не съществува във вакуум

Зад почти всяко техническо задание стои бизнес причина. Понякога тя е ясна. Друг път е скрита зад кратко описание, натрупани решения и изисквания, променяни във времето.

Ако инженерът вижда само задачата, естественият въпрос е: ,,Как да го направя?“.

Когато разбира по-голямата картина, се появяват и други:

Защо го правим? Какъв проблем решаваме? Има ли по-добър начин? Какво друго може да бъде засегнато? Как ще разберем, че решението е успешно?

Именно тук техническата експертиза започва да носи по-голяма стойност.

Това е особено важно при работа по системи в различни индустрии. Подход, който е напълно приемлив в един проект, може да бъде неподходящ в друг заради изискванията към сигурността, надеждността, регулациите, натоварването или начина, по който хората използват продукта.

В Sirma това е част от реалността на екипите, които работят по решения за финанси, здравеопазване, транспорт, логистика и други бизнес области. Познаването на технологията е само едната страна на експертизата. Другата е разбирането на проблема, който стои зад нея.

Днес те питаме…

Коя е най-важната социална придобивка за теб на работното място?
Loading ... Loading …
AI може да ускори решението. Но разбира ли проблема?

AI инструментът може да генерира функционалност по зададени изисквания. Ако самите изисквания са непълни или адресират грешния проблем, ще получим по-бързо решение – но не непременно по-добро.

Представете си задача за създаване на модул за автоматично генериране на отчети. Технически тя е ясна и AI може значително да ускори разработката. След допълнително уточняване обаче се оказва, че потребителите не се нуждаят от още един отчет. Реалният им проблем е, че научават твърде късно за определено отклонение в данните. По-доброто решение може да бъде не нов модул, а промяна в начина, по който системата следи отклоненията и уведомява потребителя. И двете решения могат да работят технически. Само едното обаче решава реалния проблем.

AI може да помогне при реализацията, но няма автоматично да разпознае липсващия контекст. Ако му зададем грешната задача, той просто може да ни помогне да я изпълним по-бързо.

Explore more

Виж
LangChain обявите
Събрани на едно място
Right Arrow
Виж
Databricks обявите
Събрани на едно място
Right Arrow
Виж
Hadoop обявите
Събрани на едно място
Right Arrow
Виж
.NET Core обявите
Събрани на едно място
Right Arrow
,,Работи“ невинаги означава ,,решава проблема“

Бизнес контекстът не е информация ,,за всеки случай“. Той позволява на техническите специалисти да поставят под въпрос първоначалното изискване, когато виждат по-проста, по-надеждна или по-устойчива алтернатива.

Така въпросът ,,Кажете ми какво да разработя“ се превръща в: ,,Нека разберем какво трябва да се промени и да намерим най-подходящия начин да го постигнем.“

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

Той може да види, че дадено изискване ще увеличи сложността, ще създаде нова зависимост, ще натрупа технически дълг или ще повлияе върху производителността и поддръжката.

Без този разговор екипът може да разработи точно поисканото. Но не непременно това, което е било необходимо.

Пет въпроса преди първия ред код

Не всяка задача изисква дълго проучване. Но пет кратки въпроса могат да предотвратят разработването на правилното решение за грешния проблем.

1. Какъв проблем трябва да изчезне?

Не каква функционалност е поискана, а какво трябва да се промени след нейното внедряване.

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

2. За кого го решаваме?

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

3. Как ще разберем, че работи?

Завършената разработка не е непременно успешен резултат.

Добре е предварително да е ясно какво трябва да се подобри: време за изпълнение, брой грешки, надеждност, сигурност, разход, потребителско поведение или друг измерим резултат.

4. Какво друго може да бъде засегнато?

Всяка промяна има зависимости. Новата функционалност може да повлияе върху производителността, сигурността, данните, интеграциите или бъдещата поддръжка.

Това, че решението работи изолирано, не означава, че работи добре като част от цялата система.

5. Какъв компромис правим?

По-бързо внедряване или по-лесна поддръжка? Повече функционалности или по-малко сложност? Удобство или по-строги правила за сигурност?

В инженерната работа рядко има решение без цена. Важното е компромисът да бъде осъзнат, а не открит след внедряването.

Тези въпроси не забавят разработката. Често спестяват времето, което иначе би отишло за ненужна функционалност, преработка или поддръжка на излишна сложност.

Да разбираш бизнеса не означава да спреш да бъдеш инженер

От разработчика не се очаква да стане специалист по продажби, маркетинг или финанси. Не е необходимо да познава всеки детайл от бизнеса на клиента.

Трябва обаче да разбира достатъчно, за да оценява последствията от техническите си решения.

Това му позволява да каже:

,,Можем да постигнем същия резултат с по-малка промяна.“

,,Този подход ще увеличи сложността в друга част на системата.“

,,Решението ще работи сега, но може да създаде проблем при по-голямо натоварване.“

,,Преди да започнем, трябва да уточним как ще измерим успеха.“

Това не е излизане от инженерната роля. Това е по-зряло упражняване на самата роля.

В Sirma инженерната работа не приключва с техническото изпълнение на задачата. Различните проекти и бизнес области изискват от специалистите да разбират контекста, да оценяват компромисите и да участват в избора на решение. Така те развиват не само експертизата си в конкретна технология, но и умения, които стават все по-важни в ерата на AI – критично мислене, решаване на сложни проблеми, преценка на риска и способност да задават точните въпроси.

За да бъде възможно това, контекстът трябва да бъде достъпен. Не можем да очакваме инженерите да разбират по-голямата картина, ако виждат само следващата задача. Екипът и организацията също носят отговорност да осигурят необходимата информация, да споделят знания и да създадат пространство за въпроси и техническо несъгласие.

Колкото по-бързо пишем код, толкова по-важно е защо го пишем

AI променя начина, по който се създава софтуер, но не премахва необходимостта от инженерна преценка.

Напротив. Когато реализацията се ускорява, по-ценни стават способностите, които трудно могат да бъдат сведени до prompt или правилен синтаксис: разбиране на проблема, оценка на риска, избор между компромиси и задаване на точните въпроси.

AI може да предложи как да бъде изградено нещо. Инженерът все още трябва да прецени дали това е правилното нещо, което да бъде изградено. Защото добрият инженер не е човекът, който има отговор за всичко. По-често е този, който знае какъв въпрос да зададе, преди да започне да търси отговора.