Víte, co se mi na podnikání dneska líbí? To, že máte možnost poskládat si všechno ve firmě po libosti, nemusíte se dusit s něčím, co potřebujete a přitom dělat nechcete. Jsme komponentní firma.
Když se po revoluci dával na podnikání můj otec, musel si všechno, první a poslední, zařídit sám. Akorát ten záznamník k telefonu mu dělala matka, která seděla doma a přijímala vzkazy, pro které si pak táta z budky na rohu volal. Dokonalý časy, táta tomu říkal „mobil s retranslací“.
Když jsem vyprávěl o tom, jak jsme si zařídili call-centrum, pár lidí brblalo, že to je pěkně drahá věc. Jenže není. Dneska si můžete zařídit profesionální službu za rozumné peníze. Samozřejmě musíte trochu umět s kalkulačkou, abyste věděli, zda se vám profi služba rentuje, jenže my, když jsme se rozhodli, že potřebujeme provolat několik tisícovek kontaktů, tak na to za prvé musíme mít návod, co těm lidem budeme říkat a za druhé lidi na telefonu, kteří to zařídí. Jenže copak si budu ve firmě budovat místnost, kam nacpu desítku študáků a ústřednu? To se mi nechce. Jednoduše chvíli googluju na webu a za chvíli najdu pár firem, které dělají call-centra. Řeknete si, jak se mají představovat, jaký mají mít viditelný číslo, vytvoříte návod, co mají dělat. A jak zaplatíte. Zda za čas, za kus, za zásek… to je na vás a na vybalancování vaší touze po kontrole, důvěře a zvýšené ceny, když platíte rovnou za akci.
Snažíme se používat komponenty. Někdy se tomu říká outsourcing, jenže tohle slovo se tak zprofanovalo, že radši používám to slůvko komponenty, které jsme si přinesli z komponentního programování. I vývoj je u nás komponenentní. Výsledkem každého programování musí být samostatně použitelná komponenta, která je u nás v repository zdokumentovaná a připravená k použití, takže když se u nás dělá zakázka, skládají se komponenty na hromadu, propojují se přes vstup/výstup. A tenhle přístup se snažíme používat i kdekoliv jinde, nejenom v programování. Snažíme se sehnat komponentu, která nám umožní docílit patřičného výsledku a neřešit věc ve vlastní režii. Je milé, že to jde.
Už jsem taky mluvil o tom, že máme něco, čemu říkáme trojdušní systém.
Každá komponenta u nás má tři nutné součásti.
Nejdříve prvotní Analýzu, tedy to, jak má vypadat a co má dělat. Co má být výsledek. Definuje se, jak má výsledek vypadat. Například taková komponenta export nabídky shopu pro Zboží má za výsledek XML feed, ve kterém jsou všechny položky z eshopu vystavené pro slíznutí Zbožím. K analýze nám připadá i obchodní uplatnění takové komponenty, tedy například to, že nás stojí vývoj 5 menday (MD), k čemuž si umíme přiřadit cenu a jak četně je poptávána.
Druhou součástí komponenty je definovaný Průběh, kdy si říkáme, kdo kdy co udělá nejenom při tvorbě komponenty, ale při jakémkoliv dalším použití. Víme, kdo se o komponentu stará, aby nezastarala, kdo má právo rozhodnout, zda se smí prodávat dále a za kolik, jaké jsou možné modifikace v ceně či za cenu a jak se věc implementuje klinetovi. Při dodávce si prostě komponentu i s Průběhem stáhne programátor z repozitory a naváže na ni věci, které na ni potřebuje navázat. Pokud komponentu dává na námi podporované systémy, má ji vřazenou do systému za minutu, stiskne tlačítko a fakturační systém ví, že vše proběhlo, jak mělo.
Třetí součástí je Test. U každé komponenty je definovaný výsledek z Analýzy a ten může Test otestovat. Ověříme, zda výsledek se dostaví dle očekávání. V případě programu se u nás opravdu programuje i kód, který otestuje, zda komponenta odevzdává výsledek. V případě banálního exportu pro Zboží prostě testovací kód komponenty ověří, zda výsledný XML soubor je validní, obsahuje počet zboží tolik, kolik je v eshopu a má strukturu požadovanou seznamákama plus se provede za definovaný čas.
Vypadá to možná absurdně, jestli sami prgáte v péhápků „velký šopy“, ale tohle nám maximálně šetří čas. Většina programování nakonec totiž je vytváření mnohokrát vytvořeného. U nás se nikdy neprogramoval unikátní systém řízení jaderné elektrárny, ale zato musíme jako Baťa cvičky sekat propojení na karetní systémy třeba. A k tomu potřebujeme, aby vše proběhlo rychle, hladce, bez chyb. Každá komponenta se sama zkontroluje, nehledají se zbytečné chyby a pokud jo, rychle se najdou, protože z výsledku testů vidíme, v které komponentě to bude. Je to něco, jako diagnostika v autoservisu – připojíte auto na diagnostiku a hned víte, kde je základní problém, ten pak řešíte.
Co zákazníky hodně sejří, je bezradnost vás jako dodavatele. Když vidí, že vůbec netušíte, kde jste chybu udělali. Pravda je, že kucí kodeři, kteří k nám nastupují, jsou vyvalení, když jim repository odmítne kód s tím, že není definovaná testovací rutina, ačkoliv to mají na každým školení a jejich šéf jim to zdůraznil několikrát. Nechápou, proč se plýtvá jejich „drahý myšlenkový čas“ na to, aby se vymyslelo a nakódovalo testování.
Ale pak, když vždycky viděj, jak u klienta jen zavoláme komponenty s testovacím výstupem a za minutu víme, že bug je v tom, že někdo nechal bránu nastavenou na švédské koruny, zatímco komponenta předpokládá česky, to je strašně milý překvapení.
Trochu se nám ve firmě navíc rozbujely kontesty, kdy se analytici předhánějí s kodery, kdo líp vymyslí testování. Poněkud jsme to podpořili, protože nám nějakou chvíli lidi reptali, proč se má dělat testování tímhle způsobem. Že prej stačí, aby si nějakej elév sedl za browser a proklikal to, jestli „to“ funguje. Jenže co je to „to“. Takhle to nešlo. Nejde.
A tak jsme nejdříve vlastní lidi buzerovali, pak jsme začali povzbuzovat soutěživost. Aby je bavilo si hrát s testama.
Co jsme tím ztratili? Zhruba polovinu času kodérů, teda zhruba tolik, co stejně bezúčelně proflákají. Naopak jsme získali spokojenější klienty, kteří mají dojem, že tak trochu víme, co děláme. A taky klidnější průběh zakázky, protože poměrně přesně víme, kdy doděláme, co děláme a kdy vyřešíme chyby, co jsme si tam zavlekli.
Zkuste to taky. Zjistíte, že zákazník je příjemně šokován tím, že produkt, který mu odevzdáváte, je otestovaný a funkční. Původně očekával, že mu na reklamačku odpovíte, že je to chyba jeho zadání, najednou zjistí, že není, co reklamovat. Bude se mu míň třást ruka při podpisu finální faktury do účtárny. A to je to, o co gou pro nás.
Takže, buďte komponentní. Využívejte komponenty, které jsou dostupné. A vybudujte si vlastní trojdušní systém, abyste kontrolovali, jak efektivně je používáte.
Ve výsledku zjistíte, že kontrola kvality je důležitá, ale musíte ji vymyslet tak, aby přínos z ní nebyl menší, než náklady na ni. Aby chaotické odstraňování chyb nebylo levnější, než lpění na výstupní kontrole. A to není lehký. Snad se s tím potýkáme dobře.
PS: Proč tomu říkáme trojdušní systém? Protože u nás ve firmě nad každou tou částí bdí jeden dobrý Duch: Spolubydlič nad Analýzou, Kemal nad Provedením a já nad Testem, protože tahle naše část je základ práce našeho oddělení. No a my jsme ti Duchové, co to tu mají na starosti. Proto trojdušní systém. Ale přiznávám, že jsme to vymysleli totálně nakalený, když náš velkej klient (totálně nadrátovanej) chtěl vědět, jak tomu našemu systému říkáme – to se zrovna dozvěděl, že firmu řídíme metodou Karban :)
Je propastný rozdíl mezi starou školou programátorů, ke kerý sa hrdě počítám, a mezi moderními rychlokvaškami. Voni sice uměj něco z moderních programovacích technik, ale chyběj jim dvě základní vlastnosti programátora: svědomitost a trpělivost. Všimněte si, kolik chyb je v novejch programech, i třeba ve Twitteru, aniž by se autoři namáhaji je odstranit, Za našich časů bylo prostě profesní ctí, že se chyby promptně odstraňovaly.
Bývávály. Proto se musí v Analýze popsat i ten vstup / výstup a tak, jak se popíše, má fungovat a to se testuje. Když už nastane chyba, minimálně vidíte, v které komponentě je a pak alespoň víte, komu dát za uši, zda programátorovi, nebo tomu, kdo dělal analýzu a navrhl špatný test nebo začlenění do API. A u nás se vám to pak projeví na výplatě :)
Everything is fast to the point that school software engineers should consistently learn and refresh their insight to keep pace with the improvement of present-day innovation, programming, and so on. Assignments Help
Obecne:
Komponentni pristup ma vyhodu v tom, ze staci otestovat/nahradit jen jednu cast a ne vse. Ale nevyhoda by teoreticky mela byt, ze se muze vyskytnout problem pri komunikaci jednotlivych komponent, nebyly s tim problemy?
Call-centrum je vhodné investici, pokud máte velkou klientskou základnu a chcete mít plný zákazníků, včetně poprodejní servis.
We need to pay competent teachers enough so they have a real choice between teaching and working as computer programmers in the business world. Teaching needs to be an option for the top 25% of students graduating from college, not for "those who can, do; those who can't, teach." As an essay typer reports, competence in the field taught should be the first requirement for teachers, because without that competence, knowing how to plan lessons and give tests is useless. A person competent in the field is likely to have an enthusiasm that is catching.
Learning a second or third language should start in the early grades, even pre-school; math and computer science are similar to a language. By the time a student takes "computer science" as a course, the student should have a concept of what computer language is and how it differs from knowing how to use an I-pod, etc.
Knowing to to type is not the same as being able to build a typewriter! (That's an analogy those of us age 70+ can understand).
Everything is so fast that school programmers must continuously learn and update their knowledge in order to keep pace with the development of modern technology, software, etc. The work is rather promising, good programmers will always be in demand in large companies and corporations, which is why it is necessary to make great efforts to keep up with innovations and updates. According to paper writer reports, to do this, you need to think quickly, to know several foreign languages, to read relevant articles and literature, to attend scientific conferences and not to be afraid try to do something new.
English is based on a simple alphabet and it is fairly quick and easy to learn compared to other languages.English is not only useful – it gives you a lot of satisfaction here https://123helpme.org/articles/write-my-interview-paper/ . Making progress feels great. You will enjoy learning English, if you remember that every hour you spend gets you closer to perfection.
Access mapquest directions on your smartphone or tablet for convenient, on-the-go navigation. The user-friendly mobile interface ensures you have all the tools you need for effective route planning and real-time guidance.
Update: Přesunul jsem se na vlastní blog Startupič.cz…
Založil jsem firmu, která vyrostla na vývoji opensource. Spojili jsme se s americkou firmou a teď řídím naše aktivity na dvou kontinentech. Jak se jmenuje, prozradím, až si rozmyslím, jestli to chci. A na fotce nejsem já, ale můj pokerový idol v provedení manga.
A psát si sem chci o tom, jak jsme firmu roz-startup-ičovali, třeba to někoho inspiruje.
Přečteno 136 807×
Přečteno 56 889×
Přečteno 48 285×
Přečteno 45 742×
Přečteno 32 888×