Jak ze začátečníka vychovat dobrého programátora
Rád se obklopuji schopnými lidmi, nejlépe schopnějšími než já, abych se od nich mohl něco přiučit. Než pracovat s někým průměrným, tak to raději do týmu začátečníka, kterého ještě nestačili nikde zprznit. Nemluvě o těch špatných, každý jeden takový totiž vytvoří dvě nová pracovní místa ročně.
Nechci psát o tom, jak začátečníky naučit psát kód. Jděte jim svým přístupem k softwarovému inženýrství přikladem! Člověka z praxe těžko, pokud již není zvyklý, namotivujte psát testy, rozhraní a javadocy. Pokud máte nějaký osvědčený způsob, tak si rád nechám poradit, vynecháme-li ovšem lámání v kole, což je spíš vnější než vnitřní motivace.
Kdo se moc ptá…
Pokud pracujete se začátečníky, jistě jste řešili problém, jak docílit toho, aby se neptali málo nebo naopak příliš. Ptají-li se málo, můžou se zbytečně zaseknout, i když pravda nanejvýš na jeden den. Máte přeci denní scrum (standup) mítinky, na kterých by se na to přišlo, ne? Absence denních scrum mítinků vede ke dvěma extrémům, totální ignorance nebo jim naopak neustále stojíte za prdelí s otázkou: „Jak jsi na tom?“
Ptají-li nováčci se příliš, může to být i důsledek toho, že nechtějí přijmout zodpovědnost za svá rozhodnutí (či jim atmosféra ve firmě/týmu znemožňujě). Líbí se mi technika Rubber duck debuging, přesto otázky vítám a tuze k nim podněcuji. Na druhou stranu na ně obvykle reaguje protiotázkou: „Jak bys to udělal ty?“ Většinou totiž už nějaký nápad mají, ale ostýchají se s ním přijít. Když ne, tak příště už mojí otázku stejně čekají a s nějakým nápadem sami přijdou. I kdybyste si nakrásně mysleli, že navrhované řešení je blbost, tak to samozřejmě nesmíte takto podat. Ukažte na slabé místo otázkou: „A co se stane když…?“. Nechte je na řešení přijít. Oproti direktivnímu přístupu vás to v počátku bude možná stát víc času, ale výchova k samostatnosti se vám nakonec vyplatí.
Dejte jim důvod
Při code review buďte důslední a vracejte k přepracování do té doby, než budete úplně spokojení. Ovšem musíte své názory patřičně zdůvodnit, tím rozhodně nemyslím argument à la: „Tak to bude, protože jsem to řekl já, a basta!“ Respektujte a budete respektováni!
Vox populi
Jak zapracováváte nováčky vy? A přijímate je vůbec?