Monthly Archives: March 2011

Упаковщики и картографы

Один товарищ рассказал, что у психологов есть классификацию людей на упаковщиков и картографов.

Картографы – это люди, которые запоминают информацию как она есть, другими словами “рисуют карту” знаний в голове.
Упаковщики – пытаются понять основные принципы и представить информацию как можно компактнее.

Видимо ко мне дошли слова, использованные авторами в книге “Программистский камень”, и мной они были интерпретированы далеко не так, как авторами, скорее даже с точностью до наоборот.
И еще ссылка по теме Mappers Vs Packers, где тоже видно, что моя интерпретация слов перевернута с ног на голову.

А собственно к разработке ПО это имеет следующее отношение.
“Персиками” могут быть только упаковщики.
Те, кто распространяют “быдлокодинг”, гарантированно картографы.

Почему? Картографы не задумываются, как скажем новые требования согласуются с тем, что уже существует – главное, чтобы тестер принял. И собственно не сильно заботит о том, что потом что-то где-то отвалится. Основной принцип – “задавить кодом”.
Ни о каком системном мышлении говорить не приходится.

Почему упаковщикам сложно работать с картографами?
Если к картографам попал упаковщик, то он захочет разобраться в системе, в ее логике, как система соогласуется с предметной областью. А логики нет, историю нужно знать, почему та или иная штука появилась. И логические принципы не работают, нужно просто тупо все запоминать, а это противоречит тому, как привык думать упаковщик. В такой ситуации в лучшем случае он будет мало эффективным, в худшем ему от работы будет крышу срывать и он уйдет.

Более того, упаковщику сложно даже объяснить будет, почему у него плохая производительность. Что, будет говорить что упаковать не может?

А что делать, если аврал и некогда все приводить в порядок? Пишем как попало во время аврала, а потом рефакторим. Но на практике это требует определенной культуры планирования. И при подходе “некогда пилу точить, пилить надо”, упаковщики не нужны.

Хотя и с картографами система не выдержит, рано или поздно одеяло станет коротким и меры по его “удлинению” будут уж больно дОроги.

Недостатки у упаковщиков могут быть в том, что они, гонясь за лаконичностью, могут забыть о принципе 80-20 и улететь в космос в гонке за идеальностью.

Почему персиками могут быть только упаковщики?
Потому что они стремятся к тому, чтобы система следовала некой логике, принципам, в следствии этого будет и меньше кода, в котором нужно разбираться, и меньше заплаток.
А меньше кода – меньше возможностей ошибиться. О дубликации кода я даже не буду говорить.
В общем то это следствие лени – меньше кода, меньше надо чего-то там запоминать что как работает.

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

И напоследок я бы выделил еще категорию “школьники”. Это те, кто учатся и еще очень мало зная выискивают свои какие-то мудреные принцыми. Они в общем то тоже упаковывают, но упаковка получается сильно кривой. Хорошим пример, это когда человек прочитал какую-то новую книгу и потом под ее впечатлением сует принципы взятые из нее куда не попадя. Благо, если перерастают этот период.