2008-10-16

Если б я был султан.

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

Я понимаю, такие ситуации встречаются очень редко, 95% програмистов и тестировщиков выполняют задачу качественно :). Но я не понимаю откуда беруться последние 5%.

Сразу определю -
1) я говорю об адекватных, не глупых а часто и умных людях. Людях которые хорошо учились в институте, которые нормально общаются вне работы.
2) такие ситуации наблюдал не я один, а разговаривал с лидами в нескольких компаниях.
3) так как большинство задач понимаются правильно другими людьми то перенести проблему на постановку задачи не получается - другие 95% же делают нормально.

Это было описание проблемы, а вот решения ее, я к сожалению не знаю. Если знаете - скажите.
Зато есть теория которую проверить в полной мере не удалось пока :)
Возможно, главной проблемой подобных людей является то, что они понимают задачу с какой-то собственной точки зрения. И совсем не думают - а нахрена они это делают? Какая цель этой програмы, как она может помочь пользователю? И если б я был пользователем этой програмы , как бы я ее запускал и какие кнопки нажимал? Пользовался ли я бы вобще этой программой? Если нет, почему?
То есть, человек должен научится абстрагироваться от собственного стула и представить что он - его клиент, пользователь программы, наконец шеф который ставит задачу. И просто подумать - что Я (то есть "клиент") могу хотеть раз ставлю такую задачу?

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

Скажу чесно , я этим способом постановки себя на чьето место пользуюсь постоянно и ничуть не жалею. И мои клиенты надеюсь не жалеют :) А клиенты это и пользователи, и начальники, и подчиненные, все с кем я прямо или косвенно сталкиваюсь.

2008-09-30

На случай надейся, а сам не лажай.

В коментах к прошлой статье "Реквием по мечте" подняли тему об удаче, везении и невезении. Настолько обширная тема что я решил свое отношение к ней вывести в отдельный пост.

Начальная информация:

Определение удачи с википедии.
Удача — позитивное событие, возникшее в результате случайного, непредсказуемого или не учитываемого стечения обстоятельств. На википедии текста больше.
Неудача - тоже самое но наоборот :).
Дальше, у каждого события есть своя вероятность. Вероятность зависит от каких то параметров. На одни вы влияете, на другие нет.

И вот какие выводы я делаю с этой информации:

Вывод 1. Моя задача - определить события которые для меня желательны, и на которые я могу влиять, и увеличить вероятность исполнения данных событий. Конечно, соответственно уменьшить вероятности для нежелательных событий. Как результат, я буду очень удачлив :).

Вывод 2. Те события на вероятность которых, я считаю, что я не могу влиять, про них не думаю и на них не надеюсь. Они могут произойти, а могут и не произойти. Если от меня их выполнение не зависит - чего мне по этому поводу вобще париться. Типа появится прадедушка милиардер или папа станет президентом, или еще какая туфта.

Приведу пример использования. В детстве\молодости некоторые парни упрямо не знакомятся с девушками, ждут пока какаято девушка сама сделает первый шаг, сама влюбится и так далее. И вот смотрим - как можно к такой ситуации применить мои выводы. Как минимум, если сидеть дома и ни с кем не общаться, никакая девушка вобще не узнает про него, не увидит даже. Это понятно. Также никто не узнает ничего про молодого человека, если он будет в обществе вести себя так, как будто его здесь нету. И даже если одна девушка увидит и обратит внимание, не факт что именно она ему понравится и у них чтото получится. Намного выгоднее, чтобы девушек с которыми он знакомится и общается было несколько. Чтобы человек мог выбрать ту, с которой наиболее комфортно. Ну и ей чтобы в его обществе было хорошо. Как итог, человек вместо того чтоб тупо сидеть и ждать случая, просто делает несколько шагов которые этот успех к нему приблизят. Причем многие делают это неосознано. А кто не делает неосознано - нужно просто осознать и потом делать :). То есть, на случай надейся, но и сам не лажай.

Таких примеров можно привести очень много и в разных областях - бизнес, карьера, учеба, работа, и т.п. Но я просто приведу пару ссылок которые я отрыл на тему:

Две статьи (первая и вторая часть) на тему Везения и Невезения. Обширно рассписано с множеством примеров. Кому тема интересна - советую почитать.
http://www.zanin.ru/ru/chel/181
http://www.zanin.ru/ru/chel/182

И несколько афоризмов на дессерт :)
  • Тот, кто дожидается удачи, никогда не знает, будет ли он сегодня ужинать. (Бенджамин Франклин)
  • Удача — это постоянная готовность использовать шанс. (Фрэнк Доуби)
  • Человек, которому повезло, — это человек, который делал то, что другие только собирались сделать.(Жюль Ренар)
  • Везение - это просто результат очень тщательной подготовки (Неизвестный)
  • Звезды благоволят лишь тем, кто не теряет времени на созерцание неба. (Михаил Мамчич)
  • Людям, решившим действовать, обыкновенно бывают удачи; напротив, они редко удаются людям, которые только и занимаются тем, что взвешивают и медлят.(Геродот)
  • Слабые люди верят в удачу, сильные — в причину и следствие. (Ралф Эмерсон)
А еще советую посмотреть фильм "21", там есть пару метких высказываний про удачу и даже задачка на уроке математики на эту тему. Иногда эта задачка попадается на собеседованиях :)

2008-09-26

Реквием по мечте.

Поделюсь одной мыслью, к которой я пришел только год или два назад и которая еще даже не до конца закрепилась в моем сознании. Но уже в процесе.

Если вас с детства не приучили к дисциплине , такой как - распорядок дня, нормальное питание, занятие физическими нагрузками. Если в школе и институте не научили контролировать свое внимание и концентрацию. Если вы ужасно ленивы и не можете во время проснуться или во время пойти спать. Не можете себя заставить сделать запланированое на день или на любой срок. Очень часто вам лень думать. Не сдерживаете обещания данные даже самому себе. И при этом вы не гений или человек обладающий исключительными способностями или ресурсами (не сын олигарха). То вы не сможете ничего достичь в этой жизни. Даже если вы относитльно способны, или даже умны.

Без обид, делаю вывод в первую очередь на собственном примере и некоторых людей вокруг. Считаю что такой человек маловероятно достигнет чего то в любой области, такого чтобы это обьективно измерялось. И этот человек не использует свой потенциал. Вероятнее всего в будущем запрется в своем мирке - например с семьей, кругу таких же неудачников, своими развлечениями и хобби и все. На всю жизнь. Нет, ну в целом это очень хорошо, когда человек довольствуется малым и при этом счастлив, я тоже пытаюсь так жить. Но также думаю что он будет намного счастливее если будет к чему то еще стремиться. Чего то добиваться. Возможно прорываться. Будет видеть перед собой какуюто перспективу. По крайней мене для меня это и есть ощущение счастья.

И если вы не дисцилинированы и не поменяетесь, вас ожидает следующее:
  • у вас рано или позно возникнут проблемы с здоровьем (скажется отсутствие распорядка дня, плохое питание, плохие привычки)
  • про успехи в бизнесе можно забыть, бизнес это в первую очередь тяжелая работа, и если вы не сможете работать "тяжело", ничего у вас не получится. Можете разве что быть пиявкой на чужих ресурсах и инвестициях.
  • карьера ваша будет строиться случайным образом и врядли вы сможете играть более менее ключевую роль в любой компании. Кому нужны люди которые не надежны и не могут контролировать даже сами себя.
  • понятно что в спорте у вас ничего не выйдет, вы не сможете просто заставить себя заниматься в те дни когда у вас плохое настроение или просто лень. А спорт это постоянная работа и тренировки.
  • самое опасное - вас погубят вредные привычки, типа алкоголь, курение, лень и т.п. Ведь вы привыкли давать себе много свободы и ни в чем не ограничивать. Врядли вы сможете ограничить себя в этом.
Да впринципе, попрощайтесь с любой вашей более менее нестандартной мечтой - вам ее не достичь. Если вы не поймете простого факта - "свободная" жизнь без самоконтроля и дисциплины это также свобода от успеха и достижений. Если вы хотите именно такой свободы - дело ваше.

Информация основана на личном опыте и я очень жалею что не понял этого лет 10 назад. Хоть у меня сейчас не все так плачевно, понемногу я приучаю себя к дисплине и развиваюсь. Но насколько было бы легче если б я в институте не взял за собственный девиз правило - "я живу так, как я хочу". И не решил делать только то, что "хочу" , с отказом делать то, что "нужно". Такой подход меня просто конкретно затормозил в развитии.
Вобщем, надеюсь мой опыт комуто поможет. :)

2008-09-23

Говорить ли цену первым?

Сегодня прочитал статью у Виктора Ронина о том, что при торговле, тот кто первый называет цену тот в худшем положении. Подобную формулировку я встречал в многих статьях по ведению переговоров, и почему-то интуитивно ей постоянно противлюсь. Даже для фрилансеров о которых пишут в коментах у Виктора не совсем согласен но моя статья не об етом. Моя статья о том насколько ето правило используемо при долгосрочном сотрудничестве, на примере обычного найма на работу. Можно даже назвать заметки о собеседованиях № 3. :)
Допустим, приходит человек на собеседование в фирму на позицию среднестатистического программиста. Его собеседуют специалисты, он собеседует компанию, все вроде уже ясно и приходит время решить финансовый вопрос. И вот тут ситуация - если человек первый озвучит суму или рамки, которые ему интересны - будет ли он в проигрышной ситуации?

Давайте проанализируем. Я думаю, что редкая компания может реально оценить человека за короткое время собеседования. Так как оценка состоит из многих параметров, которые в основном выходят на свет после 1-2-3 месяцев работы. Такие как ответственность, дисциплина, коммуникация, практичность, и т.п. - про все эти вещи после собеседования обычно можно только догадываться по психологическому портрету и интуитивно. Но есть риск ошибиться, и не маленький. И обычно этот риск будет заложен в первое предложение.

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

Как итог человеку предложат ЗП ниже среднего по рынку. И главное, программисты, в большинстве своем не торговцы. Только процентов 10 (цифра из потолка) из них любят торговаться и выжимать максимум с другой стороны. И те 10% уже сейчас или скоро будут консультантами или бизнесменами.
Как итог программисту может даже и нравилась компания - но он получает предложение ниже его ожиданий. Он разочарован компанией, он потерял время, ему влом торговаться, потому что на другом собеседовании был HR порасторопней, и он выпытал у него, сколько бы он хотел бы. И предложил ему именно эту суму.

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

Пример, конечно, надуманный, наверняка многие идут в ту компанию, которая нравится и на ту ЗП которая нравится - но разве вы не говорите цену первыми?

Да и компании - если четко знают что у них позиции на такую-то зарплату (хотя это бывает редко) - обычно прямо и говорят свою зарплату. И я считаю это не плохо, а приносит только позитивный результат - экономия времени обеим сторонам.

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

Кстати, при условии, что компания нормальная и что человек ценен - для него в любой момент не составит труда передоговорится о другой цифре, если она действительно соответствует рынку и ситуации.
Крайние случаи - специалист узкого профиля, лид-девелопер, топ-менеджмент , и тп. не рассматривал - так как статья превратится в реферат :).
И повторюсь - считаю данная стратегия для долгосрочного сотрудничества, а не при работе на проект. Для проекта, читайте пост Виктора Ронина и коменты. :)

PS. (кстати бесплатная идея где брать темы для блога – читаете чужой блог, он вас наталкивает на мысль и пишете пост себе).

2008-09-09

Мои закладки. Выпуск №1.

Украду идею у Макса Крайнова и начну делиться интересными ссылками, которые иногда почитываю. Конечно, трафика мой мелкий блог им не даст, но «с миру по нитке» как говорится :).

Собственно, первый выпуск.

Проектирование по контракту. Подход к проектированию, который мне нравится своим минимализмом (если я правильно его понял).

Процесс или результат. Небольшой блогопост о том, что полезно не только стремится к результату, а и любить процесс. Хоть и написана на примере менеджеров по продаже, но может быть отображена на любую область.

Рефакторинг для начинающих- интересная статья от Ярослава Ворожко. Мне очень понравился подход рефакторинга короткими порциями. Ведь часто действительно сложно выделить время на серьезные переделки в проекте.

Контроль над своими мыслями и чувствами. 5 уровней. Полезные советы для саморазвития. Блогоперевод от Юлии. Больше все-таки относится к мыслям, а не чувствам в моем понимании.

И наконец, Макс Крайнов с постом - Инвестиции в здоровье #1. Ноу комментс, прочитать должны все.

Вобщем, на сегодня думаю хватит почитать. :)

2008-09-05

Заметки о собеседованиях. Выпуск №2.

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

Так вот, год-два назад у нас использовали следующее задание.
Дается описание небольшого проекта. Дальше требуется от кандидата прочитать, подумать и спроектировать решение. Результатом должно быть написанное техническое задание для подчиненного программиста.

День назад прочитал на девелоперсах об интересной модификации данного задания - дают описание задачи и просят оценить задачу по времени. Тоже интересный подход, который даже больше охватывает. Заметьте, как много проверяется вещей буквально одной задачей. Мы можем обратить внимание на то:
- как человек подойдет к задаче (проекту) - что начнет делать в первую очередь, а что во вторую.
- какие вопросы будет задавать,
- как спроектирует базу данных
- как спроектирует само приложение, и с использованием каких технологий.
- как учтет возможные технически непонятные или рискованные моменты.
- в каком виде он это преподаст (какие диаграммы, документы он считает нужны в техническом задании, пусть и маленьком).
- как он может оценивать временные затраты на проект.

Как итог - считаю, задача очень хороша. И каждый, кто хочет быть тим-лидером, должен быть готов к подобным заданиям и развивать в себе навыки необходимые для решения реальных задач (и прохождения собеседования :) ) .
Походу, теже навыки необходимы и для фрилансера который сам себе тим-лидер.

Может кто знает еще какие-то интересные задания для собеседований, которые отличаются от стандартных, буду рад коментам и линкам. :)

2008-08-29

Заметки о собеседованиях. Выпуск №1.

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

Итак, Мысль 1. Собеседующие и собеседуемые становятся цивилизованнее.

Примеры:

- Все в курсе что под диктовку рынка представители компаний стали менее напыщенными и все-знающими, а больше заигрывающими и мотивирующими. Практически не используются методы стрессового собеседования, дабы не испугать кандидата. Все согласились что собеседование - стресс, уже само по себе. :)

- Если 5 лет назад человек мог прийти на собеседование и изобразить смертельную обиду если его спросили, как отсортировать результат SQL-запроса, то сейчас люди стали значительное терпимее. И уже никто не обижается на вопрос, что такое абстрактный класс :).

- И если тебя просят рассказать о себе - практически никто не кричит - я ж в резюме написал, прочитайте! Все понимают, что это просто повод начать разговор и определить начальную адекватность человека.

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

- С развитием Интернета любой негативный момент отношений может быть выставлен на все общее обозрение. И в этом никто не заинтересован - и профессионалы, и компании теперь очень аккуратны!


Интересно как рекруитинговые отношения развивались в "цивилизованных" странах и можно ли сказать, что мы идем по их стопам. Но у нас прогресс на лицо, рынок движется (или уже пришел) к нормальным отношениям "компания - соискатель", где обе стороны равны и решают - смогут ли они составить хорошую пару или нет. И обе стороны избегают явных разногласий, которые могут очернить их доброе имя. что добавляет надежности отношениям, и это радует.

Наверняка есть представители с обеих сторон, которые пытаются поиметь другого. Надеюсь как раз эти представители просто найдут друг друга. :)