пятница, 4 марта 2011 г.

О пользе и вреде специализации для разработчиков

There are a lot of developers who prefer to specialize in a specific technology. At first glance, that seems like a smart move. As long as there is a lot of market interest in your specialized skills, you can benefit financially in ways that exceed the typical compensation for people who work with the same technology, but aren't as specialized in it as you are. And you can use the internet to your advantage to make a name for yourself when it comes to that particular technology, which could satisfy your desire for recognition and/or further increases your ability to monetize your specialty.

Многие разработчики предпочитают специализироваться на конкретной технологии. И на первый взгляд это выглядит очень разумно. Пока рынок заинтересован в ваших специализированных навыках, ваше вознаграждение будет превосходить зарплаты тех людей, которые работают с той же технологией, но, не настолько специализированы в ней, как вы. Вы можете использовать Интернет в своих целях, чтобы прославить себя в конкретной технологии ради признания вас как специалиста и увеличения возможности получать доход от вашей специальности в дальнейшем.

But there are some serious downsides to that particular approach. First of all, in the world of software development, there are always other technologies and approaches on the come-up. Not all of those will make it into mainstream development circles, but some of them will. And when they do, it's always worth checking them out, for a variety of reasons. They might make your job significantly easier. They might reduce the cost of software development of the projects you're going to be working on. They might just be a lot more fun than what you're currently doing. They might just be a fad and it's quite possible that nobody will even speak of them 2 years from now. Who knows? You certainly won't, if you ignore them. You don't need to jump head-first into every new technology or approach that becomes popular, but there's certainly no harm in taking a peek either. You'll at least learn something from it.

Но, у этого подхода есть и свои недостатки. Во-первых, в мире разработки программного обеспечения, всегда существуют альтернативные технологии, готовые для того, чтобы стать основными. Конечно же, не все из них станут мейнстримом, но некоторые из них – да. И когда это случиться, всегда лучше всего опробовать их, по разным причинам. Они могут сделать вашу работу значительно легче. Они могут уменьшить затраты на разработку проекта, над которым вы собираетесь работать. Они просто напросто могут быть значительно приятнее тех технологий, с которыми вы сейчас работаете. А возможно, эти новые технологии могут быть лишь сиюминутной модой, и через два года о них никто и не вспомнит. Кто знает? Вы уж точно не вспомните, если будете игнорировать их. Вам не нужно погружаться с головой в любую новую технологию и подход, который становиться популярным, но уж точно не будет никакого вреда, если вы хотя бы ознакомитесь с новой технологией. По крайней мере, вы узнаете что-то новое.

There's also another factor to keep in mind, which is more important than you might realize. If you specialize in technology from commercial vendors, you need to keep the market forces in mind that could influence the vendor. Those market forces might be (or seem) irrelevant to you, but the vendor will not let that influence its decisions and strategies if the vendor itself is competing with other companies on a much larger level than your company or your clients are. And when a vendor changes tactics due to market forces, the technology you've chosen to specialize in might be on the way out, or it might no longer be the hot new thing that you can capitalize on.

Есть еще один фактор, о котором не стоит забывать, вы даже не представляете, насколько он важен. Если вы специализируетесь на платных технологиях, то необходимо всегда обращать внимание на расстановку сил на рынке, которые могут повлиять на поставщика технологии. Эти силы могут не иметь никакого отношения к вам (или казаться не имеющими отношения к вам), но, влияют на решения, принимаемые поставщиком и на его стратегию работы, если поставщик сам конкурирует с компаниями на более высоком уровне, чем даже ваша компания или ваши клиенты. И когда поставщик меняет тактику в связи с влиянием рынка, то ваша технология может быть либо заброшена, либо уже перестать быть той горячей новой штучкой, приносящей вам выгоду.

And that is where one of the biggest dangers in specialization lies. If you're specialized in a specific technology, you're personally invested in it. Your current standard of life, your livelihood, depends largely on that specific technology. Sure, you can move on to something else but you will have to get used to less than you're used to, probably both in money and stature for a while. Realistically speaking, odds are high that you are emotionally attached to this technology because of this. When you are confronted with bad news regarding the technology's future, you're likely to exhibit classic denial symptoms. The recent news about the Silverlight strategy shift and specifically the reactions to it, is a beautiful example of this. Silverlight specialists are writing blog posts to convince people of the merits of the technology and how we shouldn't read too much into the recent statements from Microsoft. It's classic denial and it will happen to you too at some point in the future once you form an emotional attachment to any technology for whatever reason.

И это одна из наибольших опасностей, лежащая в специализации. Специализация в конкретной технологии – это ваша личная инвестиция. Ваш текущий уровень жизни, ваши средства к существованию во многом зависят от конкретной технологии. Конечно же, вы можете перейти на что-то другое, но вам будет необходимо привыкать к меньшему, чем то, что у вас уже было, вероятно, на некоторое время, это коснется и денег и вашего роста как специалиста. Откровенно говоря, скорее всего именно поэтому вы так привязаны к текущей технологии. Когда вы столкнетесь с плохими новостями, касающимися будущего вашей технологии, скорее всего у вас появятся первые симптомы отказа принимать эти новости. Недавние новости об изменении стратегии Silverlight, в частности, реакции на это изменение – это чудесный тому пример. Специалисты Silverlight писали блоги и убеждали людей в достоинствах технологии и то, что мы все не должны придавать слишком большого значения последним заявлениям Microsoft. Это классический отказ принять действительность и это произойдет и с вами, если вы, по любой причине, будете эмоционально привязаны к технологии.

The other big danger is that when you focus solely on one specific technology, it tends to cloud your vision. You no longer keep an eye on what seems to be working well for other people. You might have learned to accept certain downsides to your specific technology whereas other developer communities might no longer be confronted with similar downsides altogether. You know what works and you know how to make it work. As such, you might not be looking into ways to continuously improve the way you work any more. It easily leads to a situation where you think you're doing a good job, while in reality you're doing a job in a certain manner because you simply don't know any better.

Следующая опасность заключается в том, что когда вы сосредоточены на одной конкретной технологии, она начинает «замыливать» ваши глаза. Вы уже перестаете следить за тем, с чем работают другие люди. Возможно, вы уже научились и привыкли принимать те недостатки вашей технологии, когда другие разработчики вообще не сталкиваются с подобными проблемами. Вы знаете что работает и как заставить это работать. Таким образом, вы уже не ищете способов, чтобы улучшить стиль вашей работы. Это приводит к ситуации, когда вы думаете, что делаете вашу работу хорошо, хотя, в действительности вы просто не знаете ничего лучшего.

Instead of specializing in a specific technology, you're much better off in the long run if you make sure that your skills are easily transferable to other technologies. Focus on concepts first, and then on specific implementations. You're going to need specific implementations, but a solid understanding of the actual concepts behind them ensures that you can easily transfer your skills and a subset of your experience to other technologies. You'll have to get used to the new technology, but you certainly will be able to make the jump quicker and easier than someone who's focused solely on specific implementations.

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

Keep your ears, your eyes and your mind open. If you notice that a group of people gets excited about something new, then figure out why. If you notice that something appears to be working well for others, then figure out why. If you notice an increasing stream of criticism on the technology you're using, then figure out why. You'll need information like this to make well-founded decisions about your future.

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

Перевод текста: Дмитрий Жарий


Автор текста: Davy Brion – .NET разработчик, блоггер, владелец бизнеса.
Оригинал текста: Developers Shouldn’t Specialize

4 комментария:

  1. Ваш "смешанный вариант" очень интересен. Прочитал сначала на Хабре, а теперь ещё раз тут.
    Хороший способ поднять собственный уровень английского.

    ОтветитьУдалить
  2. Buktor, спасибо Вам за отзыв

    ОтветитьУдалить