Obchodování pro programátory

Když jsem psal o svých fuckupech tak jsem si uvědomil, že valná většina z nich byla způsobena mojí neschopností se na problém podívat pohledem obchodníka a zákazníka.

Vidět svět očima někoho jiného není snadný úkol. Chce to čas a přechod z úrovně vědomí 1 na úroveň 2 podle kategorizace výborného článku Religion for the Nonreligious:

V kostce: Být schopen rozklíčovat role, motivace, hodnoty, důvody druhých a přiznat jim hodnotu.

U mě k vcítění se do obchodníka rozhodně pomohly moje projekty, několik let práce na technické podpoře a nově sezení s obchodníky v jedné místnosti. Přechod nebyl pozvolný, jsem schopen vysledovat různé příznaky rozprostřené do mnoha let. Ostuda ale je, za jak dlouho mi to docvaklo.

Startovní pozice

Programátor, který se začal zabývat myšlenkou že je načase vydělat nějaké peníze, je vržen do firemního prostředí a velmi brzy si vytvoří názor na obchodníky i zákazníky.

Obchodník je metrosexuál, jehož jedinou prací je o sebe pečovat. Nemá ponětí co prodává a jeho hlavní činností je natáhnout programátora i zákazníka. Má rozhodně lepší auto než vy, mnohem větší výplatu, v obleku nevypadá jako tučnák a má spoustu známých. Je vše, co vy nejste.

Pokud mu na prezentaci váš program spadne tak na vás řve. Jindy zase požaduje dodělání funkcí o jejichž významu pochybujete. Nerozumíte si a hledíte na sebe se vzájemným despektem. On by totiž nedokázal naprogramovat ani řádek kódu! Zatímco vy byste kdykoliv překonali jeho prodeje levou zadní.

Alternativně existují firmy, kde se programátor a obchodník vůbec nebaví nebo se dokonce neznají. Pak se pro vás stane tato profese dokonale mystickou a začnete si vytvářet vlastní mytologii.

Zákazník je další takový případ. Váš geniální program používá úplně špatně, takže si za chyby může sám. Když už nějakou chybu nahlásí, tak to udělá úplně debilně a v nehorší možný čas. Navíc kolikrát má požadavky, které nejsou slučitelné s našim frameworkem!

Rozčiluje vás jeho samotná existence. Kdyby si tak šlo programovat bez něj!

A zase: ve spoustě firem nemají programátoři ponětí kdo jsou jejich zákazníci a k čemu vlastně jejich software používají.

Prvotní příčina obchodu (a vůbec všeho)

Začněme náš problém rozmotávat od opačného konce, než na jakém je programátor. Tedy od prvotní příčiny obchodu a tou je:

Zákazník je ochoten zaplatit za vyřešení problému, který má.

To je pravý důvod existence softwarových firem, oddělení vývoje a v konečném důsledku pozice programátora. Čím lépe zákazníkův problém vyřešíte a čím je vaše schopnost problém vyřešit unikátnější, tím více vám (firmě) zákazník zaplatí.

Kromě vyřešení problému zajímá zákazníka pár dalších věcí:

  • Cena,

  • jak moc často mu bude software padat,

  • jak rychle mu pomůžete/poradíte pokud se ocitne v úzkých,

  • jestli se se softwarem pracuje snadno a rychle,

  • jak moc velký problém je něco upravit nebo přidat,

  • jestli vyřizujete jeho požadavky s úsměvem a patřičnou úctou.

A to je tak zhruba všechno. Opravdu.

Vyřešit zákazníkovi problém a nepřidat nové je tedy zlatý grál programování. Dál nemusíte hledat. Tohle je ultimátní cíl vašeho pachtění. Žádný vyšší už není. Tomuto cíli musí být podřízeno vše ostatní.

Váš boj

Zákazníka rozhodně nezajímá:

  • Že máte 100% pokrytí unit testy,

  • že jste software napsali nějakém hype jazyce/knihovně/frameworku,

  • jaké byly vaše záměry když jste software psali,

  • že chcete aby bylo se softwarem speciálně zacházeno,

  • že něco nejde kvůli nějakému technickému či metodologickému omezení,

  • že máte nějaké super funkce které nepotřebuje,

  • že mu můžete vyřešit problém který nemá,

  • že se má přizpůsobit logice software,

  • že programujete podle nejnovější hype metodologie,

  • že jste zdědili technický dluh po předchůdci,

Všechny tyto věci klidně řešte. Ale vězte, že zákazník o nich neví a ani by jej nezajímaly. Toto je váš boj, vaše zodpovědnost. Tak nechoďte brečet na rameno zákazníkovi ani vedení firmy.

Pokud máte pocit, že je něco potřeba dělat, tak to prostě dělejte. Chcete unittesty? Fajn, tak je pište. Chcete něco refaktorovat? Fajn, tak po malých kouscích a průběžně.

Nechtějte extra čas (= peníze), pokud máte speciální požadavky pak je zahrňte už do časového odhadu. A pokud jsou pro vás opravdu důležité tak o nich odmítněte vyjednávat. Ale vězte, že to může být důvod proč obchod neklapne…

Obchodník

Zdá se to neuvěřitelné, ale motivací dobrého obchodníka je pomoc zákazníkovi. Primárně tedy nejde o peníze, ale navázání vztahu, získání opodstatněné důvěry a nakonec uskutečnění prodeje. Dobrý obchodník se o zákazníka zajímá i po zaplacení. Mimo jiné i proto, že spokojený zákazník může firmě přinést další peníze - ať už formou dobré reference nebo doplňkových služeb.

Pokud váš obchodník lže, slibuje zákazníkovi nemožné a pak problém hodí na vás, tak si najděte jiného obchodníka, nebo rovnou zaměstnavatele. Ve skutečnosti je obchodů se zákeřným obchodníkem relativně málo, typické je to jen ve státní správě a korporátech.

Protože není běžné že se programátor setkává se zákazníkem, je obchodník skvělý zdroj informací o problémech zákazníků. A to dokonce i v případě, že se zákazníkem komunikuje i project/product manager nebo konzultant. Obchodník se totiž se zákazníky setkává i ve fázi obchodní příležitosti. A pokud se nepodaří uzavřít obchod, tak se k nikomu dalšímu informace o příčinách nezdaru obvykle nedonesou.

Od obchodníka rozhodně chcete získat maximum informací:

  • Jaké funkce náš software prodávají,

  • jaké funkce nám chybí,

  • jaké jiné problémy má zákazník,

  • jaké funkce má konkurence,

  • proč si náš software zákazník nevybral,

  • z jakého pohledu zákazník vnímá různé aspekty svých problémů,

  • informace z business domain (co se v zákazníkově oboru řeší, jaké termíny se používají).

Vy naopak můžete obchodníkovi pomoct se správným způsobem prodeje vašeho výtvoru. Pokud budete vědět jak pracuje, jaké používá materiály, argumenty. Musíte se ale začít aktivně zajímat. Uvidíte, že časem pochopíte jeden druhého a váš vztah se zlepší.

(Ne)snadný život obchodníka

Programátorovi se často zdá, že obchodník vede naprosto sluníčkový život za který je pak štědře odměněn. Tak si to pojďmě rozebrat z několika pohledů.

V článku o svých fuckupech popisuji situaci, kdy jsem se po dvou letech vývoje informačního systému pro videopujčovny nechal odradit prvním (a tedy jediným) neúspěšným telefonátem. Pro obchodníka je odmítnutí denním chlebem. Kdysi jsme počítali statistiku kolegy a vyšlo nám:

  • Zavolá do 100 firem (cold call - ve firmě neznají jej ani produkt),

  • v deseti z nich se mu podaří domluvit schůzku,

  • v jedné z nich se mu podaří prodat.

Obchodník, který nechce vyhořet a zároveň nechce volat úplně naslepo (musí si udělat přípravu) zvládne tak 5 nových firem denně. Pokud se dostane na schůzku, může to znamenat hodiny v autě a hodiny prezentace. Pokud obchoduje přes internet tak hodiny na videohovoru - který se trhá, vypadává, zákazníkovi jde rozumět každé druhé slovo.

Proto u obchodníka padne vniveč většina vydané energie. A třeba jen 1 % tvoří hodnotu jeho práce. Srovnejte s programátorem. Část kódu vícekrát přepíše, část se dříve či později vyhodí. Ale stejně bych řekl, že se minimálně 50 % energie transformuje do užitečné hodnoty.

Rád řídím. Ale při představě že na silnicích trávím víc než hodinu času týdně se orosím. Kdysi jsem jezdil jednou za 14 dní z Brna do Prahy. A ty dny jsem upřímně nesnášel. Obchodníkovi se občas stane, že se mu nepodaří domluvit více schůzek ve vzdálené lokaci. A pak jede například z Brna do Plzně na hodinovou schůzku. Produktivní hodina na 6 hodin řízení po D1. Dokážete si to představit? A dokážete si představit, že vám ten zákazník zavolá 30 minut před schůzkou že dnes nemůže? Tou dobou už samozřejmě sedíte v kavárně blízko jeho firmy…

Je to na vás

Z toho všeho plyne, že je potřeba věci vnímat v širším kontextu. Tuhle práci nikdo neudělá za vás. Buď se nestaráte a žijete v bublině. A nebo se staráte a vaše rozhledy se výrazně rozšíří. A pochopení zákazníka i obchodníka je nejlepší cesta jak začít psát opravdu dobrý a užitečný software.

Tags:  česky  podnikání  startup 
Last blog articles:
Disable startup logs of Tomcat in Eclipse
Obchodování pro programátory
Mým fuckupům
Ubuntu: Login loop
Leaving LinkedIn

Tags:
Java Ubuntu česky Gradle personal Software-architecture Eclipse DIY children React DisplayLink AI Spring JavaScript AspectJ startup podnikání neuron Tomcat SSH LXC JavaFX Immutables Gnome3 GIT FatJar Edison technologies science procrastination pokusy linux lambda kvas ellipsis destilace chemie alkohol VisualVM Upstart Selenium REST PrimeFaces Log4j Jooq Jackson JSF Debug DI CSS

Last tweets: