Как мы ломали систему учета времени
Отправлено myx в Ср, 2008-05-21 18:49
Идея давно витала в воздухе, но за нее надо было взяться. Последней каплей стало совпадение во времени и пространстве двух факторов. Впрочем, надо сначала рассказать предысторию.
Для нас, представителей дешевой оффшорной рабочей силы, в банке существует система учета рабочего времени. Придя на работу, сотрудник должен зайти на соответствующую веб-страничку под своим логином/паролем и нажать на кнопочку "я пришел". В конце рабочего дня еще раз нажать на нее же: "я ушел". Разница во времени между этими двумя моментами заносится в базу данных, и впоследствии на основании этих данных банку выставляется счет за каждого из нас.
О том, что это надо делать, мне сообщили на втором месяце моего пребывания в Лондоне, но это так, мелочи :-) И к письму прилагалась просьба информировать обо всех случаях когда я забыл нажать кнопку, дабы наверху могли это поправить.
Так вот. Первым фактором послужило то, что мне сделали замечание, что я слишком часто забываю нажать на кнопочку, и что, мол, я один такой. Вот в это я, извините, не поверю никогда в жизни - мне слишком хорошо известна роль человеческого фактора в автоматизированных системах. Я скорее поверю в то, что я единственный, кто сообщает о том, что забыл нажать, и не ленится написать письмо об этом. А вторым фактором был приезд в Лондон barateli (aka dimachertov), который искренне и всей душой ненавидит эту систему и считает, что она глупа и порочна.
За обедом мы обсудили сложившуюся ситуацию и решили, что так дальше нельзя и с этим надо что-то делать. Надо написать скрипт, который будет отмечаться за нас. И нам хорошо - меньше забот, и начальству хорошо - меньше ошибок в отчетности. Даже странно, что до сих пор никто этого не сделал - в конторе полно программистов. Неужели задача настолько сложна?
(Оказалось, что задача и правда не из простых, но мы ее решили)
А мораль тут, кстати, довольно неожиданная. Мы с barateli на собственной шкуре ощутили эффективность "парного программирования" - методики из арсенала Extreme Programming. Никто из нас по отдельности не решил бы эту задачу: я без него уперся бы в какой-то один безнадежный подход, а он без меня не довел бы до логического завершения ни одну из своих идей. А в паре мы идеально дополняли друг друга: он беспрестанно генерировал идеи, а я либо сходу отфильтровывал совсем уж безумные, либо цеплялся за них и реализовывал. Он, в свою очередь, не давал мне закопаться в ненужные детали, не имеющие на данный момент практического значения.
Вот так мы и провели этот вечер: сидя за одним компом, с горящими глазами обсуждая возможность или невозможность того или иного подхода (порой чуть ли не на спор!), и в четыре руки переписывая код снова и снова, придавая ему все более и более причудливые формы. И в итоге родился подход, который пробил-таки брешь в системе защиты. Конечно, от прототипа, демонстрирующего техническую возможность нажать на кнопку из JS-скрипта, до работающей программы еще предстояло потрудиться, но главное было сделано.
В этот день я впервые за долгое время возвращался с работы довольный. А спустя еще пару вечеров я написал первую тестовую версию программы, которая отметила мой приход на работу ровно в 9:00, несмотря на то, что на самом деле я с утра был на встрече, проходившей в другом здании, и к компьютеру пришел только в без четверти 10.
P.S. Сегодня пришло в голову, что если, следуя маджентовской традиции, придумывать для проекта имя из греческой мифологии, то лучше, чем Prometheus, не найти :-) И не надо сарказма, я прекрасно помню, чем кончил Прометей!
Для нас, представителей дешевой оффшорной рабочей силы, в банке существует система учета рабочего времени. Придя на работу, сотрудник должен зайти на соответствующую веб-страничку под своим логином/паролем и нажать на кнопочку "я пришел". В конце рабочего дня еще раз нажать на нее же: "я ушел". Разница во времени между этими двумя моментами заносится в базу данных, и впоследствии на основании этих данных банку выставляется счет за каждого из нас.
О том, что это надо делать, мне сообщили на втором месяце моего пребывания в Лондоне, но это так, мелочи :-) И к письму прилагалась просьба информировать обо всех случаях когда я забыл нажать кнопку, дабы наверху могли это поправить.
Так вот. Первым фактором послужило то, что мне сделали замечание, что я слишком часто забываю нажать на кнопочку, и что, мол, я один такой. Вот в это я, извините, не поверю никогда в жизни - мне слишком хорошо известна роль человеческого фактора в автоматизированных системах. Я скорее поверю в то, что я единственный, кто сообщает о том, что забыл нажать, и не ленится написать письмо об этом. А вторым фактором был приезд в Лондон barateli (aka dimachertov), который искренне и всей душой ненавидит эту систему и считает, что она глупа и порочна.
За обедом мы обсудили сложившуюся ситуацию и решили, что так дальше нельзя и с этим надо что-то делать. Надо написать скрипт, который будет отмечаться за нас. И нам хорошо - меньше забот, и начальству хорошо - меньше ошибок в отчетности. Даже странно, что до сих пор никто этого не сделал - в конторе полно программистов. Неужели задача настолько сложна?
(Оказалось, что задача и правда не из простых, но мы ее решили)
А мораль тут, кстати, довольно неожиданная. Мы с barateli на собственной шкуре ощутили эффективность "парного программирования" - методики из арсенала Extreme Programming. Никто из нас по отдельности не решил бы эту задачу: я без него уперся бы в какой-то один безнадежный подход, а он без меня не довел бы до логического завершения ни одну из своих идей. А в паре мы идеально дополняли друг друга: он беспрестанно генерировал идеи, а я либо сходу отфильтровывал совсем уж безумные, либо цеплялся за них и реализовывал. Он, в свою очередь, не давал мне закопаться в ненужные детали, не имеющие на данный момент практического значения.
Вот так мы и провели этот вечер: сидя за одним компом, с горящими глазами обсуждая возможность или невозможность того или иного подхода (порой чуть ли не на спор!), и в четыре руки переписывая код снова и снова, придавая ему все более и более причудливые формы. И в итоге родился подход, который пробил-таки брешь в системе защиты. Конечно, от прототипа, демонстрирующего техническую возможность нажать на кнопку из JS-скрипта, до работающей программы еще предстояло потрудиться, но главное было сделано.
В этот день я впервые за долгое время возвращался с работы довольный. А спустя еще пару вечеров я написал первую тестовую версию программы, которая отметила мой приход на работу ровно в 9:00, несмотря на то, что на самом деле я с утра был на встрече, проходившей в другом здании, и к компьютеру пришел только в без четверти 10.
P.S. Сегодня пришло в голову, что если, следуя маджентовской традиции, придумывать для проекта имя из греческой мифологии, то лучше, чем Prometheus, не найти :-) И не надо сарказма, я прекрасно помню, чем кончил Прометей!
Current Music:
Ozzy Osbourne - S.I.N.
Tags:
job, prank, technology
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Комментарии
Николай Лигастаев
Пн, 2011-08-08 17:11
Link
Re: Как мы ломали систему учета времени
В фаере тоже работает.
myx
Пн, 2011-08-08 17:12
Link
Re: Как мы ломали систему учета времени
И это таки тоже не показатель :)