субота, 8 червня 2013 р.

Про програмістів для не програмістів. Основи.

Кілька тижнів тому мене вітали з 10-річчям на фірмі. Якщо додати до цього часу роботу, що була перед СофтСервом, то мій досвід роботи буде десь років 12, якраз час для того щоб написати книжку і йти на пенсію спробувати якось зрозуміти і розповісти іншим чим же ми, програмісти і їм подібні, займаємося, а особливо, чим ці програмісти займаються в Україні. Як кажуть мудрі люди, для того щоб зрозуміти складні речі, варто простими словами розказати їх своїй мамі чи хто там вже під боком є. Це допомагає самому зрозуміти що й до чого.

Отже почнемо. Хоч моя діяльність напряму не є програмуванням, але офіційно я "провідний інженер-програміст", так що для простоти будемо вживати цей термін (програміст) для обговорення нашої раси. Якщо вам більш знайомий термін "комп'ютерщик", мушу вас розчарувати - ми на таке назвисько можемо образитись, і так пасує називати адміністраторів в ігрових клубах маленьких смт, які ще часом можуть комп'ютер до купи зібрати, чи там віндовс пререставити. Тобто таке узагальнення подібне до віднесення завгоспа школи до педагогічного колективу. Якщо ви досі думаєте що ті компутерщики діляться на тих що вміють підключати принтер, не вміють, і їх начальників, то вам просто мусово читати далі. Якщо ж ви з галузі IT (а шанс цього дуже високий), то нового для вас буде не так і багато.



Що ж ми робимо. Уявимо собі життя без комп'ютерів, там де це ще можливо. Так от наша робота полягає в тому щоб зробити життя людей з комп'ютерами легшим ніж життя без них. Але люди істоти дуже інерційні, і зазвичай їм здається що стало тяжче. Є багато прикладів того як бухгалтери виносили комп'ютери з офісів і навмисне їх ламали, чи як водії трамваїв скаржилися на погане самопочуття через введення системи відстежування руху через GPS (яку, як в тому анекдоті, навіть включити не встигли). Так от, наша місія зробити дійсно життя людей кращим ніж до того. а програмісти, власне, пишуть програми на мовах, які розуміють тільки вони і комп'ютери, і таким чином роблять їх розумнішими.

Чи ще багато нам лишилося. Здавалося б, всі програми вже написані, чи майже написані, і вже тих програмістів стільки не треба. Так от ні.
1. Досі ще багато програм є досить не ефективними. Так, ексель є чудовим інструментом яким можна робити практично все наприклад у банку. Але з цього починається і проблема, купа помилок, складнющі таблиці, які перетворюються в хаос.
2. Вимоги до програм постійно змінюються (як от постійно якісь нові закони виходять і програмістам є робота в банках і держустановах, чи от нові методи лікування виходять і треба щоб їх можна було автоматизувати в медичних програмах).
3. І найголовніше, технології активно розвиваються незалежно від нас. Навіть у нас вже багато простого народу має смартфони і знає що таке андроїд, а ще 5 років тому не знали. Нові телевізори вже мають доступ в інтернет і програми виконуються на телевізорах. Відповідно, програмісти вже пишуть програми для телевізорів і смартфонів. А тим хто не чув, про окуляри марки гугол чи розумні годинники марки "яблуко", варто зачекати 2-3 роки і ви побачите своїх сусідів в окулярах з маленьким комп'ютером всередині. Ну а якщо вже зачепили тему технологій, то ми потроху наближаємося до ери матриці так званого "інтернету речей", в якому до інтернету буде під'єднаний не тільки комп'ютер, телефон, а і диван, праска, холодильник, кіт і собака. Хоча по Українських селах в більшості і через 20 років інтернет навряд чи з'явиться, так що то таке.

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

Як щодо України. Оскільки в Україні, Росії і інших білорусіях і татарстанах під час "перестройки", інформаційні технології застрягли на місці, а в Америці і бабці Європі рухалися вперед, лідером по рівню технологій на сьогодні є все таки США. А оскільки в нас ще досі свій бізнес вести є питанням ризикованим в силу корупції, змін влади та іншого, то більшість компаній, що розробляють програмне забезпечення так чи інакше працюють на закордонних замовників. Є звичайно частка і місцевих замовників, і вона зростає - останнім часом приходилось трохи працювати з нашими банками, операторами зв'язку, а часом і металургійні заводи проскакують.

Так от, компанії які розробляють програми можна поділити на такі основні групи:
1. Ті, що створюють програми (продукти) і продають їх. Ворд, фотошоп, фаєрфокс - це приклади. Таких компаній в Україні одиниці, в Росії десятки (серед відомих - Касперський), а в США- десятки тисяч (якщо не сотні).
2. Ті, що мають програмістів для підтримки своєї діяльності. Приклад - якийсь великий банк чи лікарня, де є свої програмісти
3. Ті, що продають і впроваджують продукти від перших до других. Називаються системними інтеграторами.
4. Ті, що допомагають першим і другим, в основному робочою силою, розумом, досвідом. Знаходяться на віддалі від клієнта. Звуться аутсорсинг компаніями (outsourcing) або ще аутсорсерами (останнє слово поступово теж стає образливим). Ми тут.
5. Ті, що розказують всім з попередніх категорій, як жити щоб було щастя. Називаються консультантами. Ми тут теж.
6. Є програмісти, що живуть самі по собі, на роботу не ходять, працюють з дому, самі і шукають клієнтів. Звуться вони фрілансерами (freelancer).

Власне в категорії 4 в нас є багато компаній, а в одній із них я і працюю в дослідницько-інноваційному відділі (research and development), а займаюсь трохи і консалтингом і власне програмуванням (більше дослідницьким). Приклади того що ми робимо в R&D - інноваційні мобільні медичні карти хворих (уявіть хоч на хвилинку що замість зошитів і трафаретів інформація про пацієнта буде доступна з телефону чи планшету), розпізнавання об'єктів і аномалій (програма, що автоматично розпізнає чи є перелом на рентгенівському знімку, або програма, що по фотографії полиці в супермаркеті на телефоні дозволяє подивитися деталі по кожному з продуктів). Ще ми знаємо, як ваша інформація з фейсбуку чи вконтактє може бути використана банком при поданні заявки на кредит. Ще, тут я трохи писав про інтернет речей (англійською). І звичайно ж, найближчим часом будемо програмувати окуляри, годинники і телевізори. Хотілося б писати ще, але так як за рекламу мені не платять і нових людей ми поки що призупинили набирати, на цьому поки що зупинюсь.

3 коментарі:

  1. Треба цю статтю собі в букмарки затягнути :)

    ВідповістиВидалити
  2. Я бабці трохи інакше розказував. Але звіси взяв трохт нових ідей, як би то іншим пояснити.
    Дякую!

    ВідповістиВидалити