Чому ви не заробляєте 4000$

26.07.2010 - 13:27 | Категорія: Загальне

Досить болюча тема. Всі хто працює в аутсорсі рано чи пізно задумуються над тим чому вони отримують наприклад 800$, 1600$, або навіть 2400$, а не наприклад 4000$. Остання цифра це приблизна зарплата програміста початківця-стажера в США. В рік виходить приблизно 50,000$.

Метою цього допису є спроба подивитись «у зеркало» та зрозуміти чому дійсно ми отримуємо такі суми тут. Найлегшим підходом до цього питання буде просто знайти відмінності між ними та нами. Описані речі є моїми суб’єктивними думками, тому бажаючі запрошуються до дискусії.

Відмінності я спробував по-сортувати по важливості.
1. Англійська мова.
За весь мій час роботи в ІТ я ні разу не зустрічав людини з fluent рівнем англійської мови. Людей з advanced рівнем можу порахувати на пальцях рук. Переважна більшість це різні градації intermediate рівня. Можливо ви скажете: «а вони нас і так розуміють!». І тут ви дуже глибоко помиляєтесь. Їм треба сильно напружуватись щоб зрозуміти про що ми говоримо, так як ми не говоримо “їхніми” словами. Це створює великий дискомфорт. Більше того в переважної більшості відсутні знання літературної мови. Тобто коли після роботи ви йдете випити пива з замовником, більшість може говорити тільки про проект. Язик розв’язується” аж коли всі трошки охмеліли, причому не через то що у вас підвищується рівень знань англійської, а через то що замовник «спускається» до вашого рівня.

2. Культурні відмінності.
Ніхто навіть не цікавиться ними. А вони є, і вони суттєві. Культурні відмінності впливають на то як ми мислимо і як ми сприймаємо інформацію. Наприклад, для американців є прийнятним коли керівництву заперечують. У нашій культурі це не є дуже типовим. Або наприклад для американців не є дуже прийнятною темою обговорювати своє приватне життя («як довго ви одружені?», «чи спілкуєтесь з батьками чоловіка?»). З цих двох прикладів друге просто створить певний дискомфорт під час роботи з вами, а от перше буде нести загрозу проекту. Так як цілком можлива ситуація коли ви завалите проект через то що погодились зробити роботу за 2 тижні в той час як вона вимагала 4 тижні. Ви скажете: «та він сам казав 2 тижні!». Так казав, але це була його думка, а вам робити, і то що ви не заперечили і не обґрунтували чому саме 4 тижні це вже ваша провина.
Таких відмінностей насправді дуже багато, можна написати невеличку брошуру по найбільш важливішим, проте всі є дуже важливими.

3. Технічний рівень.
Давайте подивимось правді в лице. Насправді у нас низький технічний рівень. Середньо-статистично, звичайно. Типово опускати наших програмістів на рівень нижче, щоб співставити з американськими. Тобто наші «сініори» насправді є американськими «мідами» і т.д. Чому так? На мою думку це є наслідком перегрітості місцевого ринку, коли щоб отримати більші гроші треба було іти на вищу посаду.
Люди часто не знають як використовувати інструменти. Наприклад дуже легко знайти джавіста який не знає Лінукс (під «знає» мається на увазі комфортна робота в терміналі), хоча більшість розгортань відбуваються саме на Лінуксах, або дотнетчика який самостійно не налаштує IIS для роботи в інтернеті (безпека, потоки, пули і т.д.) Ті хто це вміють вважаються справжніми «гуру» хоча насправді це стандартні вимоги і нічого особливого в них немає. Замість поглиблення знань у цих сферах люди кажуть стандартні відговорки: «а мені це не треба», «от є сініор, він нехай і робить», «це адміни робити мають», «ніде не сказано що я це маю знати», «я з тим не працював» і т.д.

4. Орієнтованість на бізнес
Багато з розробників не цікавляться що саме вони роблять. Вони отримують задачу, реалізують, тестують… і все. Не так і багато людей дійсно цікавляться яка бізнес складова стоїть за задачею. Результатом цього є не правильно визначені пріоритети. Наприклад інтенсивно тестують ті частини проекту які можна з багами випустити, а от критичні навіть юніт тестами не покривають.
Відсутність орієнтованості на бізнес породжує невірну інтерпретацію задач. Думаю всі бачили смішний малюнок про те що б було якби розробники робили гойдалку на дереві. Можливо воно і смішно, а от коли в житті це бачиш сміятись не дуже хочеться.

5. Культура праці
Під культурою праці мається на увазі не наш технічний рівень, а то як ми себе поводимо на роботі.
Типова поведінка: запізнюватись на мітінги, не вчасно подавати звіти, «забувати» про важливі речі, «губити» листи, самому «визначати» пріоритет завдань, відповідати на листи не в той же день коли він був отриманий і т.д.
Ще більш страшнішим є майже повна відсутність знань про процеси. Мало хто може дати правильну відповідь на питання «яка різниця між водоспадними та ітеративними процесами?», не кажучи вже про знання самих процесів.
Причому це не поодинокі випадки.
«Нам і так добре» скажуть розробники. Звичайно, але от нормально брати участь в командах де +30 чоловік ви не зможете, бо такі проекти без хорошої культури праці в принципі не можна зробити.

6. Використання інструментів
Можливо не найважливіший пункт, але один із найкритичніший.
Більшість просто не вміє користуватись інструментами. Ефективне використання Вікі, Екселя, PowerPoint є рідкістю. Є люди які не можуть назвати хоча б 3 редактори UML для Windows, не кажучи вже про роботу з під Лінукса. Можна знайти джавістів які не вміють користуватись Мавеном. Так само можна знайти дотнетчиків які не користувались ніколи Решарпером.
Мало хто на пам’ять знає комбінації клавіш стандартних рефакторингів з середовищ. Ефективна робота з колективними інструментами типу Exchange є рідкістю. Мало хто знає динамічні мови для полегшення рутинних щоденних задач.
Якщо порівняти з американцями, можливо кількісно число навиків є меншим, але кожен з них вони дійсно знають.

Звичайно є і ніші речі, однак на мою думку найважливішими є саме ці.
Ваші думки?

Крос пост з Розробки.

Відео з Lviv Startup Club 9.0 “Електронна комерція”

23.07.2010 - 08:20 | Теґи: , | Категорія: Загальне

На Розробці опублікували нове відео з стартап конференції Lviv Startup Club 9.0 “Електронна комерція”.
Дуже цікава тема враховуючи ріст кількості інтернет магазинів та якість їхніх послуг.
наприклад особисто я користувався SoftKey.

Відео – Lviv Outsourcing Forum “Де знайти нових клієнтів?”

13.04.2010 - 06:35 | Теґи: , | Категорія: Загальне

Опублікував на Розробці відео з нещодавнього Lviv Outsourcing Forum “Де знайти нових клієнтів?”.
Відео є в цій темі.
Якість середня, проте чітко чути.

Lviv Outsourcing Forum

23.03.2010 - 20:07 | Теґи: , | Категорія: Загальне

Цієї суботи, 27 березня, буде на мою думку одна із найзнаковіших подій року в львівському ІТ – Lviv Outsourcing Forum “Де знайти нових клієнтів?”.

Що це таке? За формат взято Львів Стартап Клуб і накладено на львіські ІТ аутсорсінг фірми. Список учаників досить вражаючий, майже вся верхівка львівського ІТ. Як і з Стартап клубом половина користі у самих доповідях, а половина у спілкуванні під час кофібрейків.

Планую обовязково взяти участь.

Особистий розвиток

02.03.2010 - 21:35 | Теґи: , | Категорія: Загальне

Починають постати все більш цікавіші статті на Розробці. Останні стосуються особистого розвитку:

Які повинні бути якості в хорошого програміста?
Мій досвід проведення презентацій
Станьте успішним програмістом

Цікаво, правда? ;)

Про Getting Things Done (GTD) українською!

24.02.2010 - 18:09 | Теґи: | Категорія: Загальне

Нещодавно на Розробці опублікували розширений опис підходу до тайм-менеджменту – Getting Things Done (GTD). Це здається перша публікація українською мовою про цей підхід. Робимо каву і сідаємо читати!

Орієнтованість на ціль

04.02.2010 - 20:51 | Теґи: | Категорія: Загальне

Відкрию спільноту дописом на дуже болючу тему – Орієнтація на ціль або результат, англійською result/goal orientation.

Сьогодні натрапив на дуже цікаву культурологічну статтю. Звичайно все описане є дуже прикрим та сумним.

Я спробую подивитись в корінь проблеми.

Якщо людина орієнтована на ціль, по мірі досягнення цілі вона може виявляти та усувати всі перепони які є на шляху. Якщо людина не орієнтована на ціль – перепони будуть накопичуватись та ускладнювати ще більше досягнення цілі.

Наприклад програміст орієнтований на ціль, якщо він повторює певні команди декілька раз, мабуть напише скрипт який буде їх виконувати за нього. Програміст який не орієнтований на ціль, мабуть і далі продовжить виконувати ті команди без автоматизації.
Таким чином перший буде виконувати поставлені задачі швидше та по ходу виконання буде отримувати більше досвіду. Другий програміст буде просто прогресувати вперед темпами нижчими чим перший.

Такий підхід застосовується і у житті. Людина яка орієнтована на ціль, міняє світ навколо неї у краще сторону.

Спробуйте застосуйте цей підхід у вашому повсякденному житті. Вже у перші години ви виявите багато речей які ви вважали буденними, але які насправді сповільнюють вас. Їхнє усунення пришвидшить та зробить вас набагато ефективнішими.

Думки?

Допис відповідь

31.01.2010 - 19:13 | Категорія: Загальне

Це допис відповідь на допис hellveen-а

2 hellveen

буду строгим :)

1. Ви плутаєте функціональність та локалізацію. Вами славлений твітер по сьогоднішній день не підтримує тегів кирилицею. Також для нього Ірландія з 4 мільйонами людей є країною, а Україна з 46-а не є країною.

2. Ви дуже сильно помиляєтесь якщо думаєте що маючи ідею вас чекатиме успіх. Це щось типу цього:

1. Have a great idea
2. …
3. PROFIT!!!

А ось що відбувається між 1 і 3 якось не дуже очевидно чи важливо? :)
Є така річ як Product Development, про яку в книжках не прочитаєш. Досвід з цього можна або здобути самому, або перейняти в інших. Перейняти нема в кого бо майже всі розумні та старші 30+ виїхали :)
Залишається єдиний варіант – здобути самому.
Так от, в Product Development власне програмування – це найменш важливіша складова. І то що люди пробують запускати ідеї які були успішні в інших місцях, навіть якщо вони дійсно клони – це дуже добре, так як вони отримають неоцінимий досвід. Навіть якщо проект не буде успішний досвід все одно залишиться і ті люди зможуть вже братись за щось більш серйозніше чи оригінальніше.
Час покаже хто виживе, а хто відійде.

3. І взагалі про клони. А ви в курсі що всі машини це є клони машини Форд? :)
Ні одна з них немає абсолютно нічого унікального, крім коліру та форми корпуса та внутрішнього оформлення? Внутрішні частини відрізняються тільки якістю та деякими незначними технічними деталями. Ми ж чомусь не кажемо яка відстійна Тойота тому що вона є клоном Форда? :)
Плюс саме порівняння є не дуже доречним. Контент сайти суттєво відрізняються від сервісних сайтів. Їх порівнювати це те саме що порівнювати машини та принтери. І то і то є “присроєм”, але призначення є суттєво різними.
Гугл є чистої води клоном АльтаВісти чи ще там якоїсь пошукової системи. Один в один. Він просто переміг через невеличку деталь в підході до рангування результатів. Але це клон клоном, навіть не другий і не десятий :)
Контент сайти по своїй суті є клонами один одного, і так має бути, тому що унікальне в них не сам сайт, а контент.

4. Підручник з ведення бізнесу каже що називати потенційних клієнтів ідіотами і не патріотами, а їхні проекти жалюгідними з дуже великою ймовірністю призведе до їхньої втрати, причому можливо вони і не повернуться. :)

5. Про twit.com.ua. Ну навіть якщо вони назвали себе “першими”, можна просто їм на пошту вислати зауваження про не коректність? :) Між іншим Твіт є якраз хорошим прикладом, так як це не є ні блог ні ще щось, а власне сайт сервіс. Такі речі складніше запускати, підтримувати та просувати чим наприклад блоги на wordpress.

6. Про контент. Була згадка про Хабру. Так от, там 75% якщо не цілих 90% – це, використовуючи “дух” оригінального допису – крадений контент, більш м’якша форма – “використаний” :) Я у 99% випадках читаю все на оригіналі, і коли у перше побачив Хабру міг прямо вказувати звідки взяли ту чи іншу інформацію. Але нічого, чомусь ніхто клоном який краде контен з інших сайтів Хабру не називають? :) Плюс чомусь там немає інформації наприклад про події у Львові? Цікаво чому ж? :) Може просто мешканцям МКАД-у та “заМКАДдя” не дуже цікаво і вони ніколи не будуть плюсувати інфу якихось друзів грузин яких вони мочили не так давно? :)
А також може для великої частини українська для них психологічно неприйнятна?

Критика дійсно корисна коли вона конструктивна. Просто так по-поливати брудом думаю нічого доброго не зробить.

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

P.S. Цей ваш пост дійсно антипатріотичний, і наступний ваш пост не сприймається як заклик до конструктивних дій по покращенню ситуації у владі.

Вибір Flex фреймворка

26.01.2010 - 10:58 | Теґи: | Категорія: Загальне

Хоча великі проекти на Флексі можна пробувати робити і без фреймворка, його присутність може суттєво полегшити життя.

Так як сам у Флексі є не дуже довго, повстала проблема пошуку та вибору хорошого фреймворка для Флекса.

Результатом дослідження цього питання є наступна підбірка статей у порядку користності:


Choosing a Flex framework

The State of Flex RIA Development Ecosystem
FrameworkQuest 2008

Так виглядає що головними фреймворками на даний момент є:
* Mate
* Cairngorm
* PureMVC
* Swiz

Після розгладяу, на даний момент я зупинився на Mate.

Крос пост з Розробки.

Головні події у світі Java – 2009 Q4

24.01.2010 - 17:46 | Теґи: | Категорія: Загальне

Останній квартал був особливо багатий на події.
Найголовніші з них:

Вийшла IntelliJ IDEA 9
Головні зміни:
* Підтримка Java EE 6
* Покращення роботи Maven
* Розробка під Android
* Розробка під Flex
* Відлагодження JavaScript в FireFox
* Підтримка PHP, Scala
* Ще більше рефакторингів, оптимізацій та пришвидшень

Вийщов Spring 3.0
Головні зміни:
* Java 5 тепер обов’язкова
* Spring Expression Language
* Ширша підтримка анотацій, наприклад @Configuration, @Bean та @DependsOn
* Декларативна валідація через JSR 303
* Ґрунтовна підтримка REST в Spring MVC
* Підтримка Java EE 6
* Підтримка JSR 330
* Використання анотацій для форматування

Вийшла Google Collections 1.0

Формалізувались Java EE 6. Зміни варті окремого допису.

Вийшов NetBeans 6.8.
Головні зміни:
* Підтримка Java EE 6
* Підтримка JavaServer Faces 2.0
* Краща підтримка Maven
* Підтримка PHP 5.3
* Підтримка Rails 2.3.4 з диспатчерами, JRuby 1.4, відлагодження Ruby 1.9, та RSpec 1.2.7

Крос пост з Розробки.