среда, 7 июля 2010 г.

Эпилог "ИТ форум"

После проведения ИТ форума в Махачкале, я все планировал написать эпилог к этому мероприятию. Наконец выбралось свободное время.
Как был проведен форум и его результаты четко обозначены на веб форуме:
http://www.itforum05.ru/forum/viewtopic.php?f=2&t=2&start=20
Начнем с того, что:
1. Форум видимо был организован не для того что бы обсуждать ИТ отрасль и перспективы её развития. А для :
a. Галочки. Что было всем понятно сразу, но все таки хочется ведь верить в лучшее.
b. Для того, что бы обсудить как красиво на бабки выделенные федеральным центром, грамотно их потратив, оснастить республику передовыми технологиями. При этом забыли, правда, о том, что с передовыми технологиями ещё нужно и уметь работать.
2. Я все таки надеялся, что мы будем обсуждать как поднять ИТ отрасль в Дагестане. Поэтому подготовил 2 доклада на эту тему.
a. Проблемы подготовки ИТ кадров. Возможные пути решения.
b. Анализ текущего состояния ИТ отрасли в республике. Предложения по развитию. Его решили отложить, т.к. времени не хватало для всех.
c. Третий доклад под самое начало форума меня попросили подготовить на тему документооборота, при этом я также постарался максимально держать нейтральную позицию.
3. На форуме кроме, моих докладов все остальные были, типа:
a. Чистой воды реклама от поставщиков ПО и оборудования, в основном это естественно российские и зарубежные компании.
b. Отчет гос. органов о проделанной работе. т.е. куда потрачены миллионы бюджетных денег.
c. Третья категория, это аспиранты и студенты, которые также для галочки должны выступить хоть с чем-нибудь. Что то принципиально нового, они конечно же не принесли.
d. Единственный доклад, который был технического плана, это был доклад Тупика Виталия (имя точно не помню). Доклад на тему объемный текст. Понять его доклад было не легко. Для этого пришлось после доклада ещё долго беседовать с ним.
e. Забыл доклад Алибека также носил информационный характер и не касался ни рекламы, ни какого «лизательного» характера. А также доклад Абдуллаева Рашида о первом дагестанском Open Source проекте. Он тоже носил информационный характер.
4. Не то что бы я в п. 3 похвастался своими докладами, но цитирую парня из веб форума: «4) Форум был больше похож на ярмарку-выставку. Обратили внимание? Каждый старался продемонстрировать свой продукт. Проблемы отрасли кто нибудь затрагивал? Кроме парня (забыл как зовут) из Беволекса, который предлагал на девочек манить в республику специалистов:)». http://www.itforum05.ru/forum/viewtopic.php?f=2&t=2&start=10#p74
5. Минусы форума:
a. При проведении пленарного заседания, закрыли вход в библиотеку. При этом половина докладчиков, достаточно серьезные и важные люди, которые вышли покурить, остались на улице. Вход в библиотеку был закрыт 2.5 часа. Что серьезно уронило в глазах общественности все мероприятие. Хочется что бы «власть имущие» снизошли до народа, и все-таки разговаривали с нами «находясь на земле».
b. Минусы я уже обозначил также в п. 1 и 2. Если проводить ИТ форум, то он должен был либо чисто технический, и обсуждать строго технические проблемы. И там, на чисто должны отсутствовать «всякие там». Если речь идет об экономической стороне вопроса, т.е. о подъеме ИТ отрасли в Дагестане, то тут должны конечно же присутствовать топ менеджеры ведущих компаний республики и страны, академическое сообщество и правительство. Но у нас правительство совершенно не видит, что ИТ отрасль может поднять экономику, дать рабочие места и сделать свой вклад в ВВП.
c. Про банкет после форума все упорно молчали. Он не был обозначен в программе. Видимо боялись, что мест на всех не хватит, и на банкет хлынет всякая шпана. В итоге ресторан был пустой. Половина столов пустовала. Многие, видя пустоту, звонили знакомым и вытягивали пацанов посидеть на халяву, не пропадать же добру.
d. Отличным показателем, отношения правительства к бизнесу было помещение, в котором проводилась секция «ИТ бизнес». Секция «ИТ в гос. органах» проводилась в отличном, кондиционируемом помещении, где место каждого участника было оснащено микрофоном. Секция «ИТ в образовании» было оснащено, тоже неплохо. Кондиционер и микрофон для докладчика. Секция «ИТ в бизнесе» проводилась вообще на открытом пространстве, это и залом назвать трудно. Отсутствие микрофона осложняло выступление. А неимоверная жара, практически подгоняла участников быстрей закончить и убежать. Видимо организаторы так хотели угодить правительству (надо было чиновников в этом зале посадить), что забыли малый и средний бизнес это локомотив экономики любой передовой страны. Именно бизнесу, обязаны США и Европа тем достижениям, которые у них сейчас есть. Потому что именно стремление человека, жить лучше заставляет его работать и давать работу другим. И этом стремление надо поощрять.
6. Плюсы форума:
a. Пообщались со старыми друзьями, с которыми ранее не было повода встретиться. Хотя, честно говоря, после обеда все рассосались. Остались, только докладчики, которые слушали сами себя.
b. Посидели в ресторане, выпили конъяку и поели шашлыку.
c. Пропиарились :)

Проблемы подготовки ИТ кадров в Дагестане

Сегодня все говорят о том, что для привлечения инвесторов в республику, я буду говорить о инвесторах в высокотехнологичный бизнес, необходим хороший инвестиционный климат. Но инвестиционный климат это не только, наличие стабильности в государстве, налоговые льготы, отсутствие коррупции. Это ещё и наличие сильных и грамотных специалистов. При чем специалистов недорогих. А наличие большого количества специалистов подразумевает наличие хорошей научно-технической школы. Чего к сожалению сегодня в Дагестане нет.
Что нужно нам ИТ бизнесу. Нам нужны готовые работники, которых быстро можно было бы включить в производственный процесс. И которые при этом будут дешево стоить.
К сожалению ни один студент, приходящий к нам сегодня, не имеет возможности сразу приступить к работе. Проходит не один месяц прежде, чем работник начинает более или менее писать нормальный код, и только через год-полтора мы можем говорить о нем как о специалисте. В нашей компании имеется свой механизм подготовки молодых специалистов. Так называемая программа стажеров. В двух словах расскажу о ней. Стажер, поступающий в компанию, заключает договор на стажировку в нашей компании сроком до 2 лет. После чего прикрепляется к специалисту, под надзором которого выполняет, задачи не коммерческого характера. После 3-х месяцев стажировки стажера подключают, к небольшим задачам из коммерческих проектов. Заработная плата стажера, которую в нашей компании мы называем стипендией, растет в течение всего срока стажировки, которая увеличивается от тысячи рублей до 12 тыс. Но и этот вариант подготовки специалистов нас мало устраивает, на этапе стажировки слабых стажеров мы отсеваем, чаще всего они сами уходят, не справляясь с нагрузкой. Но и эта схема подготовки специалистов на является оптимальной. Нами была подготовлена программа курсов для подготовки кадров, однако внезапно ударивший кризис заставил нас временно отложить решение кадровых проблем в компании на задний план. Суть программы заключалась в том, что бы провести подготовительные курсы студентов и выпускников, которые желали работать в нашей компании, прежде чем они начнут работать, и провести дополнительный отсев ещё на этапе курсов. Какие проблемы я хотел бы сегодня выделить.
Проблемы
1. Низкая квалификация и слабая подготовка
a. Студенты не учавствуют в OpenSource и коммерческих проектах.
b. Участие в образовательном процессе практиков ИТ сектора, бизнесменов и разработчиков.
2. Нам нужны конкретно узкопрофилированные специалисты.
3. Высокие требования выпусников ИТ сферы.
Начнем с того, что мы имеем вообще как таковую очень низкую подготовку студентов дагестанских ВУЗов. На мой взгляд, корень проблемы низкой подготовки в первую очередь находится не в ВУЗах, а ещё в школе. И проблему подготовки молодежи необходимо решать ещё в школах. В первую очередь именно школа задет базовые знания, необходимые для дальнейшего обучения в ВУЗах. Уровень знаний выпусников сельских школ, существенно отличается городских. Далее выпусник поступает в ВУЗ, где начинает получать фундаментальное академическое образование. Здесь надо отметить, что студенты наших ВУЗов очень пассивно обучаются. Т.е. в первую очередь у них у самих наблюдается слабое стремление, интерес к ИТ сфере. Многие студенты поступают на данные факультеты по совете родителей и знакомых, под предлогом высокой востребованности ИТ специалистов. Это первая ошибка, которую совершают сами студенты. Т.к. абитуриент выбирая данную специальность должен хорошо все обдумать и понимать какая работа в будущем его ждет. Например, посетить предприятия ИТ сфере, посмотреть как работают ИТ специалисты и в чем заключается эта работа. Дело в том, что мы очень часто сталкиваемся с ситуацией когда студенты-стажеры работающие в компании просто не выдерживают нагрузок. Многие предполагают, что работа специалиста ИТ сферы, является очень легкой и представляет из себя сидеть за компьютером играть, лазить по интернету, и вообще представляют себе Интернет как сеть развлечений. Хотя для настоящего ИТ специалиста Интернет это сеть знаний. Второе проявление пассивности, это практически отсутствие какого либо интереса и желание ещё со студенческой скамьи принимать участие в серьезных проектах. У нас сегодня выпусник любого ВУЗа представляет из себя программиста, который чаще всего вообще никогда ничего не разрабатывал, кроме как решение лабораторных работ, написание курсовых, который чаще всего представляют из себя, либо копии прошлогодних курсовых либо, либо просто готовые курсовые скаченные из интернета. При мне у нас на курсе из 50 студентов писали самостоятельно около 10-15. Причем самое, что нехорошее, что студентам, даже грамотным и старательным неинтересно заниматься курсовыми которые предлагают преподаватели. Из чего следует вывод преподаватель должен заинтересовать студента работой. Предложить такую тематику, которая будет интересна. Кроме того, совершенно в ВУЗах отсутствует работа преподавателей с группами студентов, например крупные разработки где участвовали бы студенты разных курсов вместе с преподавателями. Прекрасным примером данной групповой работы является нижегородская компания МЕРА. Данная компания организована несколькими преподавателями Нижегородского политеха, в результате 15 летней работы группы преподавателей и студентов выросла передовая компания, на данный момент имеющая в штате полторы тыс. человек.
Решением проблемы, я вижу, что преподаватели должны обеспечить студентов интересными и сложными задачами, создавать больше собственных проектов, и давать студентам от 3-го курса и выше задачи не такие как, например, там написать телефонный справочник, который нормальный программист должен сделать в течение одного часа, а давать более сложные и более интересные задачи. Есть отличная практика на Западе, это течении OpenSource (Открытые исходники), это ситуация когда разработчики энтузиасты разрабатывают программные продукты бесплатно совершенно. Сегодня в Дагестане не разрабатывается ни один продукт в рамках OpenSource.
Ещё один момент это ситуация когда преподаватели вместо того, что бы читать курс по какой либо проблемной области, читают просто сертифицированные курсы по тем или иным коммерческим продуктам. Это категорически недопустимо, специалист должен уметь решать поставленные задачи с помощью различных программных продуктов, а не получать знания по конкретным продуктам. Многие компании такие как 1С и майкрософт используют данный ход как проталкивание своих продуктов. Почему сегодня у нас в ВУЗах не преподают программирование в ОС Linux которая не является коммерческой, а преподают с использованием технологий компании Майкрософт. Студент не должен получать знания однобоко. Он должен уметь оценивать продукты с различных сторон.
Хотел отметить другой момент присущий нашим ВУЗам. В этом году прошла ИТ олимпиада в ДГИНХ. В результате олимпиады, по сетевым технологиям 1 место было отдано студенту ДГИНХ, 2 и 3 места получили гости из Чечни. Практически все остальные студенты показали, очень низкий уровень знаний. Я уверен, что показатели были бы другие, если бы присутствовали студенты из ДГУ. Необходимо признать, что все таки матфак ДГУ выпускает на сегодняшний день наилучших ИТ специалистов. Отдельно отмечу, что я был приятно удивлен хорошим техническим оснащением ДГИНХ. Однако даже при хорошем техническом оснащении, квалификация выпускников ДГИНХ оставляет желать лучшего. В чем же причина? Думаете слабые преподаватели? На самом деле, причина в следующем. Наилучшие выпускники дагестанских школ стараются поступить куда нибудь в Москву, Питер, после идет ДГУ, политех, и только потом по рейтингу ВУЗов в глазах учеников идет нархоз. Поэтому хотелось бы дать такой совет ректорам ВУЗов, если вы хотите поднять рейтинг, то в первую очередь проводите более тщательный отбор абитуриентов. Старайтесь отсеять слабых, и сильным предоставляйте всевозможные льготы, заманивайте к себе в ВУЗ любыми путями, потому что чем больше будет в вашем ВУЗе грамотных и сильных студентов, тем выше будет его рейтинг. Ну и напоследок о преподавателях. Конечно же в глазах ИТ бизнеса преподаватель ИТ сферы это прежде всего практик. Т.е. человек который не просто окончил ВУЗ, аспирантуру и потом продолжил научную карьеру, это человек который активно принимает участие в различных инновационных проектах, работает в коммерческих структурах или же пусть это будут различные НИИ, но только не голый теоретик с полным отсутствием опыта. Покажите мне сегодня преподавателя в ВУЗе программиста, который участвовал в крупном проекте масштаба, например 10 человек команды, ну и хотя бы несколько инсталляций. Потом мы говорим о отсутствии специалистов не умеющих работать в команде. К сожалению сегодня, в ВУЗах даже грамотные выпускники этих же Вузов не остаются преподавать. Они все идут работать в коммерческие структуры, а руководство ВУЗов не прикладывают усилий, что бы это сильные грамотные специалисты, с опытом работы в практической сфере, хотя бы пару раз в неделю читали лекции. У меня много таких примеров по крайней мере с политехом. Я уже промолчу, о том что на Западе принято приглашать специалистов из других городов, например Москвы, Санкт-Петербурга, для обмена опытом и чтения лекций. Думаю бюджеты наших ВУЗов, этого не вытянут, что является предметом для огромного сожаления.
Как преодолеть естественный разрыв между академическим образованием и требованиями, предъявляемыми на конкретном рабочем месте? Ведь нам нужны не только программисты но и аналитики, тестировщики, проектные менеджеры. Разумеется, тут нужен поиск оптимального сотрудничества между вузами и отраслевыми компаниями. Как это лучше делать ? это тема отдельного разговора. В любом случае представители бизнеса должны предусмотреть в своем бюджете финансовые и кадровые ресурсы на "доводку" студентов (производственная практика, стажировка, курсы и т. д.) до своего корпоративного уровня, что мы и делаем.
Теперь другой момент. Который хотелось бы отметить. У нас есть отрасли, например телекоммуникационные, где нет необходимости обучать человека 5 лет, что бы сделать из него специалиста. Что бы быть, например, стать системным администратором, или инженером АТС, пусконаладчиком различного телекоммуникационного оборудования достаточно пройти 3-хлетнее обучение в колледже. По данным из американских источников не более 20% программистов США имеют степень магистра и выше. Все остальные — это бакалавры, выпускники двухгодичных курсов и средних школ. У нас же типичный программист сегодня имеет как минимум высшее образование, если не в области программирования, то в технических или точных науках. Мне кажется, что именно эта ситуация является основой возникновения тезиса о высоком уровней отечественных разработчиков: все же подготовку обладателя диплома МГУ было бы логичнее сравнивать квалификацией выпускником Гарварда, а не одного из сотен американских колледжей первой ступени.
20-30 лет назад в программистских коллективах даже ведущих ИТ организаций 30-50% научно-технического персонала составляли специалисты со средним и незаконченным высшим образованием . Однако сегодня отечественная компьютерная индустрия фактически перешла от многоступенчатой системы пополнения кадрами (школа-техникумы-вузы -аспирантура) к однозвенной. Обсуждение комплекса проблем, вызванных такой ситуацией (а также причин ее появления) выходит за рамки данной доклада.
У нашего же типичного программиста сегодня как минимум есть высшее образование, если не в области программирования, то в технических или точных науках. Это не только неэффективно с общегосударственной точки зрения, но и создает серьезные проблемы работы с кадрами на уровне компаний (возникают противоречия между амбициями выпускника "престижного" вуза и предлагаемой ему работы).
Вот насчет амбиций к заработной плате, остановлюсь отдельно. Это не конечно же не проблема подготовки специалистов в ВУЗах, это общая проблема присутствующая в нашей республике.
Очень сильно мешает развитию ИТ бизнеса в республике наше благосостояние в кавычках. Поясню !!! Развитие оптоволоконных систем в республике, внедрение компьютеров и различного программного обеспечения ещё не является развитием ИТ бизнеса. Развитие ИТ бизнеса это когда в нашей республике будут компании разработчики предоставляющие услуги не только на внутреннем рынке и продающие услуги в другие регионы России, а в идеале в другие страны. Развитие ИТ бизнеса, это когда о Махачкале будут говорить как о передовом научно-техническом центре всего Северного Кавказа. Что мы имеем сегодня, Дагестан чей ВВП составляет всего лишь 100 долларов на человека, имеет 80% дотационного бюджета и зарплата в 10-20 тыс. на ИТ специалиста. И этот бюджет красиво распределяется нашими чиновниками и в результате все дотационные деньги попадают в обращение. Люди строят дома, покупают машины, зарплаты растут. В том числе и у ИТ специалистов, и чем больше они растут, тем менее конкурентоспособны мы становимся на мировом рынке. Мало того, что мы имеем низкоквалифицированных специалистов на которые бизнес должен ещё потратить деньги и доучить их, так ещё и эти специалисты просят большие ЗП. Конечно если компания, является просто торговой компанией поставляющей компьютеры, или например телекоммуникационная компания, то она имеет возможность платить высокие зарплаты, даже если специалист является посредственным. Например, что бы собирать компьютеры или устанавливать ОС большого ума не надо. Сложнее, когда мы компания разработчик, имеем студентов, которые не в состоянии реально писать коммерческий код, который возможно продать. Мы не можем платить зарплату специалисту когда он не конкурентоспособен. Мы часто говорим о себе о дагестанцах высокопарными словами. Однако сегодня 1С специалист в Махачкале просит за свои услуги 500 рублей в час. Грамотный программист из Индии, Белоруссии или например Эстонии просит 300 рублей в час. А посредственного, можно купить и за 150 рублей в час. В итоге, конкурентоспособность наших специалистов является нулевой. Т.е. здесь в Махачкале, за счет дефицита специалистов стоимость услуг посредственного программиста 500 рублей в час. А в Индии они стоят 150 рублей в час. Обратите внимание, один из факторов бешенного экономического роста Китая это дешевая рабочая сила. У нас она сегодня дорогая.
Приведу ещё один пример в 2006 году, компания Беволекс вела переговоры с одним из лидеров мирового рынка разработки заказного программного обеспечения, компанией СтарСофт. Тема переговоров «Открытие в Махачкале центра по разработке ПО». Филиала компании СтарСофт. Я лично тогда заполнял анкету. Один из вопросов в анкете был количество выпускаемых ИТ специалистов ВУЗами республики. Хотя наши ВУЗы в совокупности я думаю, выпускают около 500 ИТ специалистов, наверное около 200 специалистов по разработке ПО, то я себе отдаю отчет в том, что на работу я максимум могу принять 5-10 человек из всех 200. Остальные максимум на что способны, это устанавливать принтеры, работать с различными программами, но никак не созидать и разрабатывать. Другой вопрос звучал так. За какой промежуток мы можем нарастить штат разработчиков до 100 человек, до 200 человек. На этот вопрос я ответил, что понадобится года 2-3. На самом деле, боюсь, что и 2 и 3 года слишком малый срок, что бы собрать здесь такую команду хороших специалистов. Не забывайте, что всех выпускников ещё надо доучивать, что бы они могли работать. Конечно же, сделка сорвалась, мировые лидеры предпочитают развивать центры в таких городах как Москва, Санкт-Петербург, Нижний Новгород, Таганрог. Причина заключается в следующем: наши выпускники и специалисты, слишком амбициозны: хотя сразу и много денег. Конечно на фоне того, когда молодежь видит как некоторые слои общества, прорвавшись к бюджетным деньгам, активно занимаются перекладыванием денег в свой карман, то желание работать пропадает.
В итоге своего доклада ещё раз, напомню о каких проблемах сегодня мы, ИТ бизнес, говорим:
1. Низкая квалификация.
2. Отсутствие узконаправленных специалистов.
3. Отсутствие колледжей по подготовке ИТ специалистов.
4. Высокие требования специалистов.

Особенности национального бизнеса в Дагестане.

Сегодня я хочу поговорить об особенностях национального бизнеса.
Что из себя представляет дагестанский бизнес или бизнес по-дагестански? Самый лакомый кусок, как известно, является госзаказ. Давайте задумаемся, почему именно госзаказ.
1. Потому что при госзаказе, работа выполняется за бюджетные средства, которые легче получить в большем объеме. Например, если при строительстве дома, заказчик который платит из своего кармана будет стараться всегда заплатить поменьше, то чиновник, контролирующий бюджетные средства с большей легкостью расстается с ними, особенно если ему за это ещё и вознаграждение будет.
2. Потому что при госзаказе, контроль выполнения качества работ намного ниже, чем в ситуации, когда человек покупает в свой собственный дом что либо.
3. Потому объем рынка нормального, наверное, намного меньше, чем рынка госзаказов. Рынок госзаказов это возможность быстро купить квартиру, машину. Главное «урвать» хороший заказ.
Я решил классифицировать наше бизнес-сообщество. Что оно сегодня из себя представляет, какие «касты»?
В главе пирамиды сидят чиновники, которых можно разделить на 2 категории. Первая группа это чиновник, контролирующий финансовые потоки, т.е. решает, кому можно отдать заказ. Вторая это чиновники «сидящие на зарплате», но мечтающие перейти в группу номер 1, потому что там золотое дно. Далее идут предприниматели и бизнесмены. Которые тоже разделяются на 2 категории: «бизнесмены» и бизнесмены. «Бизнесмены» это волки, бегающие вокруг площади, рыскающие в поисках путей подхода к тому или иному чиновнику, дабы «урвать» очередной госзаказ. Именно волки, потому что все что происходит, напоминает мне именно стаю голодных волков, которые ждут очередного куска мяса. Бизнесмены это лица, которые занимаются более или менее реальным бизнесом, перепродают все что возможно, и производят все что можно. Каждый бизнесмен, мечтает стать «бизнесменом», «хапнуть» госзаказ и вылезти в люди. Забыл ещё про одну категорию «бизнесчиновник», это те которые заработали достаточно денег, что бы купить себе место в группе номер 1. И иметь возможность с корня управлять распределением заказов, переправляя их «своим» фирмам.
Эта в принципе небольшая классификация наглядно показывает, что само общество нашей республики предрасполагает к тому, что бы даже молодое ещё не испорченное поколение, начало потихонечку «гнить».
Мне есть ещё много что сказать, но не буду утомлять читателя.

воскресенье, 23 мая 2010 г.

JasperReport Кириллица и PDF

Добрый день уважаемые читатели. Хотя для кого он добрый а для кого и нет. Я сегодня весь день провозился c одной проблемой. Впервые пришлось делать отчет для веб приложения Java/Tomcat с использованием JasperReport.
Первая проблема возникла когда ещё в ireport при попытке просмотреть отчет в PDF формате кириллица нормально не отображалась. Проблема достаточно быстро решилась.
В ireport заходите Tools->Options->iReport->Fonts->Install Fonts. Далее инсталлируете ваш TrueTypeFont, т.е. указываете ttf файл и все работает.
Сложнее оказалось когда пришлось из веб приложения пришлось генерировать отчет в формате PDF. Попытки инсталлировать шрифт всеми описанными путями, хотя нормального описания я не нашел, окончились неудачей. При попытке прописать в jasperreports_extension.properties ничего не дало. Временное решение которое я нашел следующее.
В файле jasperreports.properties прописал:
net.sf.jasperreports.export.pdf.font.Constantia.Normal=./fonts/constan/constan.ttf
net.sf.jasperreports.export.pdf.font.Constantia.Bold=./fonts/constan/constanb.ttf
net.sf.jasperreports.export.pdf.font.Constantia.Slanted=./fonts/constan/constani.ttf
net.sf.jasperreports.default.pdf.font.name=Constantia
Минус подобного решения, весь отчет в PDF формате выведен одним шрифтом. Пока другого нормального решения я не нашел. Кто сможет подсказать буду благодарен.

среда, 24 марта 2010 г.

Работа над ошибками

Последний проект который я реализовывал была биллинговая система для служб ЖКХ. Проект вместо запланированных 6 месяцев длился более года. В результате работ я сделал для себя отчет «работа над ошибками».

2-хзвеньевое приложение против 3-хзвеньевого.
Изначально было выбраны 3-хзвеньевая архитектура приложения. Выбор был сделан потому, что считалось что 3 звена дают большую гибкость, а 2 звена такую гибкость не дают. Исходили из того, что требуется ограничивать доступ к данным на уровне строк таблицы. Кроме того, планировалось сделать приложение конфигурируемым (типа 1С), дабы позволить пользователю самостоятельно например добавлять свои отчеты и т. д.
Итого: желаемая конфигурируемость не была достигнута, т. к. сроки жали и времени на эксперименты не оставалось. Заказчику откровенно было наплевать на конфигурируемость, он давил на сроки. А используемые 3 звена добавили программистам работы, т. к. они должны были писать больше кода. Использовался WCF сервис SOAP, через которое клиентское приложение получало данные.
Поэтому дам одни совет никогда не принимайте решение реализовывать 3-звена, если нет на то крайней необходимости.

Большой объем вычислений в коде C#.
Начали писать логику всех расчетов в C#. Когда уже все дописали после первых испытаний поняли, что что то у нас не так. Потому что время обработки 180 тыс. услуг составляло 9 часов. Переписали все в хранимые процедуры получили ускорение до 30 минут. Добавили оптимизации. Получили 2 минуты на обработку. Добавили функционала, получили что расчет длится 40 минут.
Итого: если у вас стоит задача обрабатывать данные в большом объеме переносите логику вычислений в хранимые процедуры, нельзя недооценивать их. Они работают с данными существенно быстрее чем ваш код на php, java, c#. И ещё всегда работайте над оптимизацией кода, как сказал один мой знакомый любой проект надо 3 раза переписать, что бы получить конфетку. Надо только при оценке проекта заложить время на рефакторинг.

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

Не гибкая методология
Используемая нами методология разработка предполагала одну итерацию. Во многом это было связано с 2 вещами:
1)Мой товарищ работающий в компании заказчика предупредил, что у них очень часто все меняется, и что бы обезопасить себя от проблем с заказчиком, я предпочел сразу составить одно большое ТЗ и делать строго по нему не отходя от него.
2)Заказчик плохо представлял себе, что такое итеративная разработка. В его понятии, я заплатил деньги и должен получить конечный продукт. Принеся к нему, часть продукта, заказчик говорил, все это хорошо, но ты принеси мне рабочий продукт.
Итого: Большие проекты должны быть обязательно итеративные. После каждой итерации необходимо:
Корректировать ТЗ
Корректировать бюджет
Корректировать календарный план

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

Отвлечение на другие проекты
Тут все понятно. Нельзя отвлекаться на другие проекты, если у вас жесткий календарный план и сроки.

Плохо написанное ТЗ
Это полностью мой косяк. Взялся писать ТЗ. Написал но плохо. Раскрыты были не все моменты. Т. е. снаружи как бы все понятно, но в реальности много непонятного. В итоге заказчик валит все на меня, мол ТЗ плохо составил. А на вопрос, что он это ТЗ согласовывал и почему упустил много моментов, свою вину отказался принимать.
Мой косяк, что не указал например элементарно, что система пишется на программных продуктах MSSQL сервер. Также в ТЗ встречались такие фразы: «система должна позволять получить отчеты в различных разрезах» или « и другие». Такие непонятные фразу вообще должны отсутствовать. Если нет конкретики, вообще лучше не писать.

Недооценка проекта
Это самая основная ошибка, хотя и пишу о ней в конце. Проект был недооценен. Потому что, до конца не представлял себе всего объема работ, что вытекает из неправильно написанного ТЗ. Кроме того, вроде бы есть простая задача посчитать пеню например. Пеня считается легко, но есть нюансы. Которые вылезают в процессе реализации. Поэтому лучше предварительно при предпроектном обследовании стоит не пожалеть время и посадить разработчика свободного пусть напишет тебе алгоритм расчета пени. Пусть пощупает и скажет тебе сколько времени ему нужно на реализацию. Скорее всего, он скажет 2 часа. А что там его считать. Пример: алгоритм расчета пени, это просто берется сумма долга абонента и начисляет 1/300 ставки рефинансирования центробанка на каждые сутки, просроченной задолженности. Вроде бы все легко, но тут начинаются вопросы. Например: необходимо получить количество дней. А их получение зависит от структуры данных как вы храните информацию об абоненте. Причем, например абонент по закону должен оплатить долг до 10 числе следующего месяца. Т. е. если сегодня 15 марта, то вы должны начислять абоненту пеню на его долг за все предыдущие месяца с 1 марта, а на его долг за февраль пеня начисляется только с 10 марта. Причем пеня получается начисляется посуточно. Теперь представьте ситуацию когда абонент пришел и оплатил часть долга. Т. е. пеня должна уже начисляться не на весь долг на начало месяца, а только на ту часть которую он ещё недоплатил.
Итого: очень многое в таких алгоритмах зависит от того как хранить данные в БД. Что вам доступно просто лежит в поле таблицы и можно взять оттуда и посчитать, а что придется вычислять. Поэтому например алгоритм расчета пени в данной системе займет в разработчика неделю как минимум, а потом с доводкой и оптимизацией ещё пару недель. Так что недели 3 он потратит на этот алгоритм. У нас реализации алгоритма расчета пени менялась около 3 раз. Каждый раз по неделе трудозатрат вот вам и 3 недели. Вот и недооценка, вместо первоначальных «да что там на 2 часа работы».

В принципе все, что я хотел я здесь описал. Если что вспомню ещё добавлю.

вторник, 9 марта 2010 г.

ВРП регионов



http://antonfromperm.wordpress.com/category/data-analysis/

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

пятница, 22 января 2010 г.

Умейте общаться.

http://www.forbesrussia.ru/node/38807
Интересный ролик, о том как надо выступать, что бы произвести впечатление.
Ролик показан на примере успеха презентаций Стива Джобса.