Бизнис

Product Ownership: Architecting Beyond the MVP for Lasting Impact

Сопственост на производот: Архитектирање надвор од MVP за трајно влијание

MVP е инструмент за учење, а не целна линија. Неговата задача е да провери дали некој проблем е доволно важен за луѓето да го променат своето однесување. Тоа е вредна работа, но е само почеток на сопственоста над производот.

Тешкиот дел започнува кога експериментот ќе успее. Една функционалност добива корисници, пристигнуваат барања за поддршка, се појавуваат гранични случаи, а едноставен работен тек станува дел од нечија секојдневна работа. Во тој момент, прашањето повеќе не е „Можеме ли да го испорачаме ова?“ Станува „Можеме ли одговорно да го одржуваме ова корисно?“

Таа промена ја одделува испораката на функционалности од сопственоста над производот. Техничките лидери што ја разбираат не ги сметаат архитектурата, доверливоста, документацијата и тимската комуникација за одложувања. Тие ги сметаат за услови што му овозможуваат на производот да создава трајна вредност.

Сопственоста значи да ги носите последиците понатаму

Примамливо е сопственоста да се дефинира како одговорност за ставка од списокот на задачи сè додека не стигне во продукција. Таа дефиниција е премногу тесна. Вистинскиот опсег на сопственикот на производот вклучува што се случува по објавувањето: дали корисниците ја разбираат промената, дали таа се однесува добро во несовршени услови, дали тимот може да ја поддржува и дали идната работа останува возможна.

Разгледајте нов тек за увоз на сметки. MVP може да прифати датотека, да провери неколку полиња и да создаде записи. Тоа може да биде доволно за да се потврди побарувачката. Но, за трајна верзија е потребно повеќе размислување: Што се случува кога корисник ќе ја постави истата датотека двапати? Како се соопштуваат делумните неуспеси? Може ли да ги исправи грешките без да почнува одново? Постои ли ревизиска трага? Дали увозот го преоптоварува системот во периоди на голема активност?

Ниту едно од овие прашања не е гламурозно. Сите се прашања за производот.

Затоа, сопственоста бара поширока дефиниција за завршеност. Споен и распореден код е настан. Функционалност на која корисниците можат да ѝ веруваат, да ја разберат и од која можат да се опорават е исход.

Архитектурирајте за промена, не за замислен обем

„Архитектурирајте надвор од MVP“ не значи да изградите сложена платформа пред да има докази дека е потребна. Прекумерното инженерство сè уште е облик на избегнување. Целта е следната одговорна промена да биде доволно евтина за тимот да може да продолжи да учи.

Добрата рана архитектура создава јасни граници околу неизвесноста. Ако плаќањата подоцна можат да поддржат повеќе провајдери, изолирајте го однесувањето специфично за провајдерот зад мал интерфејс. Ако некој работен тек може да стане асинхрон, избегнувајте да ширите претпоставки за непосредно завршување низ секој екран и услуга. Ако некој доменски концепт е централен, дајте му доследно име и модел наместо секоја функционалност да измислува сопствена верзија.

Практичен тест е да прашате: ако оваа претпоставка се промени за шест месеци, каде ќе треба да уредуваме? Ако одговорот е „секаде“, MVP има насобрано иден данок.

Користете намерни споеви

Споевите се места каде што системот може да се промени без да бара препишување. Не мора да бидат сложени апстракции. Често се едноставно дисциплинирани граници:

  • Одвојте ги деловните правила од механизмите за испорака. Правилото за цени не треба директно да зависи од HTTP обработувач или барање до база на податоци.
  • Чувајте ги надворешните интеграции на работ. API-јата на добавувачите, услугите за е-пошта и давателите на складирање откажуваат поинаку од вашиот сопствен код и треба лесно да се заменат или изолираат.
  • Направете ги транзициите на состојби експлицитни. Барање што е на чекање, одобрено, одбиено или откажано не треба да биде претставено со расфрлани булови ознаки.
  • Запишувајте значајни оперативни настани. Дневниците и метриките треба да помогнат да се одговори што се случило со дејството на корисникот, а не само да потврдат дека серверот примил сообраќај.

Овој пристап не ја предвидува иднината. Му дава простор на тимот да одговори кога иднината ќе пристигне.

Доверливоста е дел од корисничкото искуство

Корисниците ретко опишуваат проблем со производот како архитектонски проблем. Велат дека извештај исчезнал, страница постојано се вртела или е-пошта за потврда никогаш не пристигнала. Деталите на имплементацијата им се невидливи, но доверливоста одредува дали доволно му веруваат на производот за да се вратат.

За секое важно дејство, тимовите треба да ја разгледаат патеката на неуспех исто толку внимателно како и патеката на успех. Што ако барањето истече откако серверот ја завршил работата? Што ако задача во заднина се изврши двапати? Што ако зависност е привремено недостапна? Што ако корисник освежи во погрешен момент?

На пример, барање за плаќање или обезбедување што може повторно да се проба треба да има стратегија за идемпотентност. Повторувањето на истото дејство на корисникот не смее незабележливо да создаде две наплати, две претплати или две сметки. Едноставен клуч за идемпотентност може да ја направи намерата експлицитна:

POST /orders
Idempotency-Key: 8f2c1d4e-unique-per-checkout

Точната имплементација ќе се разликува, но принципот за производот е стабилен: корисникот треба да може да се опорави од неизвесност без страв дека уште еден клик ќе ги влоши работите.

Доверливата испорака значи и избор на разумни стандардни поставки: јасни статусни пораки, безбедни повторувања каде што е соодветно, ограничени временски рокови и известувања поврзани со неуспеси видливи за корисниците. Контролна табла полна со инфраструктурни метрики е корисна, но не треба да биде единствениот сигнал. Ако завршените увози одеднаш паднат на нула, тоа често е поитно од техничка метрика што сè уште изгледа здрава.

Направете ја оддалечената сопственост видлива

Оддалечените тимови не можат да се потпираат на случајно слушање контекст. Одлуките што остануваат во приватни повици или краткотрајни нишки за разговор стануваат невидливи зависности. Тогаш луѓето носат разумни одлуки врз основа на нецелосни информации, а производот полека ја губи кохерентноста.

Техничкото лидерство во дистрибуиран тим делумно е практика на правење на намерата разбирлива. Краток запис за одлука може да објасни зошто тимот засега избрал синхрона обработка, кои ограничувања влијаеле врз тој избор и кои сигнали би оправдале повторно разгледување. Добро напишано барање за повлекување може да го наведе корисничкото однесување што се менува, разгледаните ризици и како да се тестира патеката за враќање назад.

Ова не бара тежок процес. Бара доволно споделен контекст за некој во друга временска зона да донесе добра одлука без да чека дозвола.

Претворете ја испораката во циклус на учење

По значајно објавување, разгледувајте повеќе од здравјето на распоредувањето. Прашајте дали се случило наменетото однесување, што корисниците тешко разбрале, какви шеми на поддршка се појавиле и кои претпоставки се промениле. Потоа претворете го тоа учење во видливо следно дејство.

  1. Наведете го исходот што објавувањето требаше да го подобри.
  2. Идентификувајте ги сигналите што би укажале на успех, збунетост или штета.
  3. По објавувањето, разгледајте ги тие сигнали од перспективите на производот, дизајнот и инженерството.
  4. Одлучете дали да ја доработите, проширите, паузирате или отстраните функционалноста.

Овој циклус ги штити тимовите од изедначување на активноста со напредокот. Исто така, им дава на развивачите поцелосен поглед на нивната работа: не само како е изградена функционалноста, туку и дали нечие работење е подобрено.

Градете производи што можат повторно да заслужат доверба

Трајното влијание ретко се создава само со драматично лансирање. Се создава преку многу помали дејства на грижа: справување со незгоден граничен случај, поедноставување на збунувачки работен тек, документирање одлука, подобрување на патеката за опоравување и отстранување сложеност што повеќе не им служи на корисниците.

Тоа е подлабокото ветување на сопственоста над производот. Од техничките професионалци бара да размислуваат надвор од MVP без да ја изгубат дисциплината на учење на MVP. Градете само она што доказите го поддржуваат, но градете го така што следната лекција да не бара почнување одново.

Најсилните производи не се само испорачани. За нив се грижи. Нивните тимови постојано прашуваат што им треба на корисниците сега, што системот може безбедно да поддржи и што треба да се промени пред денешната кратенка да стане утрешно ограничување. Така корисниот софтвер станува трајна работа.

Портрет на автор на блогот

Mihajlo

Јас сум Михајло - развивач поттикнат од љубопитност, дисциплина и постојаната желба да создадам нешто значајно. Споделувам увиди, упатства и бесплатни услуги за да им помогнам на другите да ја поедностават својата работа и да растат во постојано развивачкиот свет на софтверот и вештачката интелигенција.