love5an: (R)
[personal profile] love5an
Давно ничего не писал. Набросаю тут важные вещи, которые за долгие годы работы в этом вашем айти, четко сформировались в голове. Чтобы самому не забыть, в том числе.

Итак, "сегодня мы многое поняли":

1. Никогда не доверяйте хайпам, они приходят и уходят, а разброд и шатание после них чинить вам же.

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

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

4. При любой возможности, уточняйте любую мелочь, неточность и неясность в техзадании. Любую.

5. Не прикасайтесь к проектам без техзадания и четкого видения проекта. Никогда. Сами же окажетесь виноваты в провале.

6. Выбирайте работодателей. Не соглашайтесь на первую попавшуюся работу только потому, что у вас финансовые проблемы. Всегда интересуйтесь, на кого вы на самом деле работаете, в частности, интересуйтесь статистикой успешных проектов заказчика, а также мнением предыдущих работников/контракторов. Это очень важно.

7. Скрам не работает. Как и вообще, весь этот Agile. Не стоит тратить время на все эти митинги и прочий бред, если вы, конечно, не скрам-евангелист, и не зарабатываете этим бабки(позор на весь ваш род, в таком случае).

8. При первых же проблемах с деньгами, бесцеремонно уходите, если, конечно же, это не ваш личный стартап(доля в проекте). Никогда не слушайте пламенных речей и обещаний, особенно в случае с заказчиками и работодателями из бСССР.

9. За каждую задачу и группу задач, должен быть кто-то ответственнен. Сделайте так чтобы, каждый разработчик был за что-то ответственнен. Нет личной ответственности - провал проекта гарантирован.

10. Все сроки проваливаются. Умножайте оценки не в 2 раза, а в 5-10.

11. По часам оценивать задачи смысла нет. Только по дням, а иногда, по неделям.

12. Программист не может продуктивно работать больше 4-5 часов в день. В принципе.

13. У NoSQL очень ограниченная область применения. Применим он только там, где данные можно потерять.

14. Микросервисы не работают. Просто не работают. "Не пытайтесь повторить это дома". Зато, отлично работает грамотная модульность в сервисах. Грамотно продуманные интерфейсы и DI, если у вас ООП.

15. Под REST все понимают не то, что нужно. Впрочем, это не так плохо, потому как "настоящий" REST мало где применим.

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

17. Никогда не допускайте веб-разработчиков до работы с СУБД. В принципе, никогда не допускайте до СУБД разработчиков на следующих платформах и языках: Ruby, Python, ASP.NET, PHP, Node.js, и подобных им. Никогда. Пусть используют ваше API.

18. Всегда делайте stateless API. Да, с вебсокетами и прочим дуплексом, это тоже возможно, правда.

19. Всегда заранее планируйте возможность горизонтального масштабирования серверной части. Заранее выберите Message Broker, например RabbitMq. Заранее подумайте об общем хранилище сессий веб-приложений, например о Redis, и так далее. Вообще, всегда планируйте это, если пишете не лендинг.

20. Одна из главных проблем разработки программного обеспечения - инвалидация кеша. Не кешируйте там, где огромная польза кеширования не очевидна, потом пожалеете. Лучше воткните под СУБД коробку побольше.

21. Не держите систему на собственных серверах, особенно в РФ. Используйте облачные сервисы, в частности, AWS. Не жалейте на них денег.

22. В конечном счете, проблемы с производительностью всегда идут от I/O и СУБД.

23. UI это всегда боль. Терпите, или уходите в Backend.

24. Отдельный DBA, с возможностью давать линейкой по рукам, в том числе и вам самим - это очень хорошо.

25. Отдельный DevOps - тоже.

26. Не так страшна винда, как её малюют. Во многих отношениях - очень даже хороша.

27. Мало кто знает, как правильно использовать индексы РСУБД. Но еще меньше кто знает, насколько сложно их использовать правильно, и часто ли имеет смысл это делать.

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

29. Генераторы и конструкторы UI - отличная вещь. Если вам наплевать на внешний вид.

30. Пишите документацию по ходу разработки. Будет полезна в том числе вам самим. Комменты в коде не пишите, их никто не читает.

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

32. Наличие большого коммьюнити и большого количества opensource библиотек у платформы/языка сильно переоценено. Не касаясь качества, как коммьюнити, так и библиотек, возможности кастомизации и прикручивания библиотек под свою задачу, а это всегда проблемные вопросы, скажу что большую часть кода вам все-равно придется писать самому, на выбранной платформе и языке программирования, а здесь - возможности и выразительность этой платформы и языка - играют огромную роль. Если касаться вопросов поиска сотрудников, то поверьте, любого грамотного человека можно обучить любой платформе, хоть тому же Лиспу или Хаскелю. А с неграмотными работать просто не стоит, как я выше сказал. И, да, я по-прежнему считаю, что Лисп это круто.

33. Вообще, фундаментальные принципы и идеи - знать и понимать гораздо важнее, чем какие-то мелочи и конкретику. Выучите лисп, в конце-концов!

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

35. Не мучайте соискателей на собеседовании. Лучшие два вопроса это "работать будешь?" и "сколько хочешь денег?". Впрочем, всегда интересуйтесь их бэкграундом и взглядами на жизнь и IT.

36. Нет, математика, за исключением арифметики, вам в IT не пригодится. Алгоритмику и прочий CS я за математику не считаю, но впрочем, и оно вам мало где пригодится.

37. Пить вредно.

-- Ваш Капитан Очевидность.
From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

love5an: (Default)
Dmitry Ignatiev

December 2016

S M T W T F S
    123
45678910
11121314 151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 23rd, 2017 03:51 am
Powered by Dreamwidth Studios