Что такое:: делегирование обязанностей — ikirov.ru
Любому сотруднику, даже самому квалифицированному и трудолюбивому, может понадобиться помощь и поддержка. Не стоит забывать, что коллектив — это одна большая команда, в которой все друг друга должны поддерживать, ведь «один в поле не воин». Если на протяжении долгого времени человек самостоятельно выполняет большой объем работы, он может почувствовать некоторую подавленность. В результате — стресс, потеря трудоспособности и другие неприятные последствия. Чтобы избежать подобных ситуаций, необходимо прибегнуть к такому приему, как делегирование обязанностей.
Возникает вопрос: почему многие руководители избегают делегированяи обязанностей? Не потому, что это не эффективно, а просто потому, что для этого нужно приложить немало усилий. Но ведь результат стоит того: работая в одиночку, невозможно рационально использовать свое время, строить долгосрочные планы, реализовывать множество новых идей. При вовлечении в работу сотрудников, Вы одновременно освобождаете себя от дел и развиваете в своих работниках дополнительные навыки и умения.
Когда необходимо делегирование обязанностей?
Для того, чтобы быть уверенным в действительной необходимости передачи и распределения обязанностей, задайте себе несколько вопросов:
— есть ли в компании сотрудники, владеющие достаточным объемом информации, те, кому можно доверить выполнение важной работы?
— возможна ли передача обязанностей или важно выполнить работу самому?
— смогут ли с помощью Вашего поручения сотрудники развить свои профессиональные навыки и умения?
— велика ли вероятность, что подобная ситуация (с потребностью передачи обязанностей) возникнет еще раз?
— есть ли у Вас достаточное количество времени, чтобы эффективно распределить обязанности?
Постарайтесь максимально объективно ответить на эти поставленные вопросы. Если на большинство из них Вы ответили «да», то делегирование обязанностей действительно необходимо.
Кому делегировать обязанности?
Очень важно обращать внимание на следующие факторы:
— опыт, знания, умения и навыки сотрудников, которые претендуют на Ваше поручение. Располагаете ли Вы временем для обучения сотрудника?
— стиль работы Вашего подчиненного. Какие он ставит перед собой цели и как их достигает? Какова степень независимости этого сотрудника?
— загруженность работника. Найдется ли у него время для Вашего задания? Освободите ли Вы его от других обязанностей?
Если Вы первый раз применяете такой метод, как делегирование обязанностей, наберитесь терпения. Сотрудник может тратить на свою новую работу немало времени, но это вполне объяснимо: Вы — эксперт в этой области, а Ваш сотрудник только учится.
Каким образом происходит делегирование обязанностей?
Чтобы добиться успеха, соблюдайте несколько правил:
1. Озвучивание ожидаемого результата.
2. Четкие рамки и ограничения. Обязательно объясните сотруднику, которому Вы передаете часть своих обязанностей, где находятся границы власти, ответственности. Поясните все непонятные ситуации: как действовать сотруднику в тех или иных обстоятельствах.
3. В зависимости от возможностей, старайтесь вовлекать сотрудников в процесс делегирования. Предоставьте им немного свободы: пусть каждый сам решит, какие задания он сможет выполнить и в какие сроки.
4. Уровень ответственности должен строго соответствовать количеству власти. Ответственность в любом случае ложится на Вас.
5. Сотрудникам нижнего звена тоже поручайте задания. Ведь это люди, которые ежедневно выполняют работу, они хорошо знают все нюансы. Более того, Вы сможете эффективно использовать рабочее пространство, а также развить в сотрудниках умения и навыки.
6. Не забывайте поддерживать работников, отвечайте на их вопросы, все разъясняйте. Общайтесь с сотрудниками и проводите регулярный мониторинг, чтобы убедиться, что делегирования действительно приносит свои результаты.
7. Сосредоточьтесь на результате. Пусть сотрудник сам контролирует свои рабочие процессы, ведь главное — итог.
8. Не допускайте «обратного» делегирования. Даже если возникла какая-то проблема, обязанности не должны вновь возвращаться к Вам — лучше вместе с сотрудником постарайтесь ее решить.
9. Мотивируйте. Обсудите вместе с сотрудниками вопрос о вознаграждениях, перспективах и возможностях.
10. Не забывайте о системе регулярного контроля.
Немного о контроле
Проведите рабочий инструктаж для тех сотрудников, которым Вы передаете обязанности. Выделите время на то, чтобы подробно объяснить работникам, почему Вы выбрали именно их, что Вы от них хотите, в какие сроки, а также расскажите, на что они могут рассчитывать.
Обговорите отчетность на каждом этапе выполнения задания. предупредите сотрудников о том, что о каждой возникшей проблеме необходимо сразу сообщать Вам, чтобы постараться ее вовремя ликвидировать. Постоянно следите за процессом, по необходимости поддерживайте подчиненных, отвейчате на их вопросы.
Очень важно, чтобы Вы принимали только до конца законченную работу — именно так сотрудники научатся работать качественно. После того, как выполненное задание было Вами принято, не забудьте о благодарности и признательности, а также о материальном вознаграждении. Вознаграждение и благодарность тем сотрудникам, которые действительно отлично выполнили всю работу, должно войти у Вас в привычку. Это очень важный шаг на пути строительства уверенного, профессионального и единого коллектива.
Конечно, сначала делегирование обязанностей может показаться Вам абсолютно не нужным процессом, но на самом деле, если все сделать правильно, то объем выполняемой работы может во много раз увеличиться. Обязательно учитывайте множество факторов и нюансов, чтобы делегирование обязанностей позволило Вам решить все задачи и добиться поставленных целей.
Делегирование обязанностей. Делегируй правильно — КУБ2Б
Статья Делегирование обязанностей скорее не является инструкцией по применению. Она является неким призывом к действию, к развитию. Ведь предпринимательство должно исходить от души, должно приносить удовольствие. А не затягивать в каждодневную рутину однообразных дел, отнимающих все время и энергию бизнесмена.
Делегирование обязанностей в современных компаниях является ахиллесовой пятой бизнеса. Оно осуществляется крайне плохо. Поэтому ему нужно, просто необходимо научиться, а это довольно непросто.
В первую очередь отмечу, что задает образец делегирования первый руководитель компании
Я видел много руководителей компаний. От тех, которые сутра и до вечера занимаются операционными, текущими делами, до тех, которые проходя в свой кабинет желали всем «Доброго утра» и больше в течении дня их никто не видел. Хочу отметить, что это были компании разного уровня и масштаба.
Руководители первого типа были очень усердными. Решали много задач. Всегда были в курсе последних событий, но они не росли, было видно, что они уперлись в потолок, через который они не могли пробиться. И не потому что они были плохими специалистами или выбрали не ту нишу в бизнесе, а потому что:
- Они люди
- В сутках 24 часа
И это то, что в первую очередь необходимо осмыслить.
Из этих 24 часов они:- 7 часов тратили на сон
- 1 час в день на утренние и вечерние сборы
- 2 часа в день на прием пищи
- 1 час на дорогу
- 2 часа на любимую социальную сеть, просмотр телевизора, интернет, отдых
Говорят время – это деньги, однако время ценнее денег в несколько раз. Потому что вы сможете заработать деньги если они закончатся, но вы никогда не вернете время, которое было утеряно.
Если в бизнесе вы основное время потратите на действия, которые ввяжут вас в рутину: будете вести бухгалтерию, настраивать рекламу, заниматься созданием сайта, дизайном визиток, то не сможете заняться поиском людей, общением с ними, поиском каналов продаж, стратегическим развитием компании.
Делегирование обязанностей. Две основные ошибки
Ошибка №1
Ликвидируется этап обучения при делегировании обязанностей. Прежде чем вручить бразды сотруднику, его нужно обучить. Называется это должностным обучением. Оно отличается от обучения профессионального. Если у сотрудника в его должности появляется новые функции, следовательно, его необходимо обучить им.
Если у вас в компании есть регламенты, то в них необходимо включить новые функции. Потратить время на отработку с сотрудником новых функций, проверить как он усвоил и т.д.
Ошибка №2
Делегирование обязанностей происходит без указания срока делегирования, как бы отныне и навсегда. И для вас психологически и для сотрудника мотивационно, обязательно нужно проговорить и понимать, что делегирование обязанностей происходит на некоторый срок, после которого следует произвести проверку по заранее выставленным контрольным точкам.
По результатам проверки выносится решение: забрать обратно права или не забирать. Во первых вы оставляете поле для манёвра и не загоняете себя в тупик, если сотрудник не справиться с новыми должностными обязанностями. Во вторых вы заранее психологически готовы взять функции обратно на себя или передать их более сильному специалисту.
Если нет сотрудников, которым можно делегировать обязанности или вы один в вашем бизнесе
Для этого как раз существуют аутсорсинговые компании. Компания КУБ2Б™ оказывает аутсорсинговые услуги для бизнеса, такие как:
Мы берем на себя все рутинные и текущие дела, являемся вашим надежным тылом из множества специалистов, даже если вы один. Позволяем вам заниматься развитием бизнеса, а не тратить время на создание возможности им заниматься.
Навигация по записям
Как делегировать обязанности — Удаленная работа в интернете
Доброго здоровья, уважаемый читатель журнала «Web4job.ru”! В этой статье мы поговорим на тему Как делегировать обязанности, почему делегирование необходимо, какие факторы надо учитывать при делегировании обязанностей, какие задачи делегировать нужно, а какие — нельзя.
Как делегировать обязанности
Содержание статьи:
В жизни многих людей случаются такие ситуации, когда на выполнение возложенных на них обязанностей не хватает сил и возможностей с ними справиться.
Именно поэтому важно знать, как правильно организовать рабочее время, подобрать сотрудников и распределить между ними обязанности.
Важно понимать, что распределение обязанностей — это не способ уйти от ответственности, а форма грамотного разделения труда, позволяющего повысить его эффективность.
Делегирование облегчает работу руководителя, но не снимает с него обязанности за принятие окончательного решения.
В течение рабочего дня можно выполнить определенный объем работы. Если не успевать выполнять всего, что от вас требуется, это может стать причиной стресса, и вы будете испытывать чувство неудовлетворенности из-за того, что подводите людей.
В одиночку невозможно переделать все дела, даже работая круглосуточно.
Поэтому надо научиться поручать свои обязанности другим сотрудникам.
Передача обязанностей — важный навык, которому необходимо учиться.
Делегирование — это организация работы, когда руководитель между подчиненными распределяет конкретные задачи.
И это совершенно необходимо. Делегировать полномочия вынуждает сама жизнь вне зависимости от того, хочет руководитель этого или нет, умеет он это делать или не умеет.
Основная заповедь любого управленца «Подчиняться работе должен не я, а она мне».
Почему делегирование необходимо?
Ежедневный объем работы, которую необходимо выполнить руководителю, всегда превышает его физические и временные возможности. Если часть рутинной работы он поручит другим специалистам, у него останется больше времени для решения более важных дел;
Подчиненный должен понимать, что он обязан справиться с порученной ему работой, и, может быть, выполнить ее даже лучше, чем руководитель.
Хороший менеджер — это не тот, кто делает работу лучше своих подчиненных, а тот, кто руководит так, что подчиненные выполняют задания не хуже его.
Делегировать надо:
- Рутинную работу;
- Решение отдельных несложных вопросов;
Подготовительную работу проекта;- Специализированную работу, т.е. ту, которую специалист выполнит лучше руководителя.
При этом руководствуйтесь таким принципом: «Все, что могут выполнить сотрудники, должны делать они».
Но никогда не подлежат делегированию такие задачи:
- Функции руководителя: постановка задач; контроль за их выполнением; принятие решения по стратегическим вопросам;
- Конфиденциальные задачи;
- Особо важные задачи и задачи высокой степени риска;
- Срочные дела, для объяснения и перепроверки которых нет времени;
- Мотивация сотрудников.
Какие факторы необходимо учитывать при делегировании
Перед тем, как поручить кому-то выполнение задания, надо учесть некоторые факторы:
- Обладает ли претендент необходимым опытом и знаниями для его выполнения;
- Если опыта недостаточно, хватает ли у вас времени для обучения специалиста;
- Загруженность специалиста: достаточно ли у него времени для выполнения нового проекта;
- Можно ли его освободить от текущей работы и передать ее другим специалистам.
Когда вы делегируете часть своих обязанностей, то замечаете, что другой исполнитель тратит на выполнение работы больше времени, чем вы. И это объяснимо: вы в данном направлении являетесь экспертом, а сотрудник — только учится.
Поэтому надо набраться терпения. Если вы правильно выбрали человека для передачи ему обязанностей, то вскоре заметите, что он становится все более компетентным, а, значит, более надежным специалистом.
Искусство управления — это умение достигать нужных результатов силами других людей.
А делегирование полномочий является одним из основных навыков эффективного руководителя.
Как правильно передать полномочия
Чтобы правильно передавать полномочия, надо учитывать несколько правил:
- Уровень задачи должен соответствовать уровню знаний исполнителя. Сложность задачи соотнесите с навыками, способностями и мотивацией человека, которому хотите поручить выполнение задания. Важно понимать, что задача для него не слишком сложная, и он с ней справится;
- Делегируйте полномочия постепенно, человек должен поверить в себя и свои силы. Особенно, если проект серьезный и сложный, процесс делегирования должен быть поэтапным;
- У человека должно быть ощущение полной ответственности за порученное ему дело. Он должен понимать, что обязан выполнить порученную ему работу, кроме него ее не выполнит никто;
- При делегировании полномочий вы должны четко представлять, какой конкретный результат хотите получить. Исполнитель также должен понимать, чего от него ждут. Уточните, как он понял поставленную перед ним задачу;
- Он должен быть заинтересован в выполнении работы. А если он имеет возможность напрямую общаться с руководством, это повышает стремление выполнить задание хорошо;
- Полномочия необходимо делегировать соразмерно уровню ответственности. Если проект большой, сотрудники должны знать, сколько времени на него отводится и к кому обращаться за помощью при возникновении проблем;
- Оставьте исполнителя в покое, он должен понимать, что именно он несет полную ответственность за конечный результат.
Умение делегировать обязанности — это ключевой фактор успеха любого руководителя. Отсутствие этого фактора означает, что вы будете вынуждены всю работу выполнять сами.
Посмотрим видео на тему Как делегировать обязанности
Как правильно поставить задачи подчиненным
Как делегировать полномочия? Что значит делегировать? Делегирование полномочий в фирме
Делегировать-значит развиваться
Заключение
В этой статье мы рассмотрели тему Как делегировать обязанности, зачем это надо, какие задачи нужно делегировать, а какие — нельзя.
Надеюсь, статья оказалась полезной. Если возникли вопросы, можете задать их через форму комментариев под этой статьей.
Также буду признательна, если поделитесь статьей со своими друзьями в социальных сетях.
Понравилось? Поделитесь с друзьями!
Получите высокооплачиваемую интернет-профессию!
Почему так трудно делегировать обязанности?
Одна из основных задач руководителя — перепоручать часть работы другим сотрудникам. Но иногда расставаться со своими задачами бывает очень тяжело.
В ходе исследования, проведенного в 2013 году сотрудниками Стэнфордского университета, 35% руководителей высшего звена признались, что им необходимо лучше делегировать обязанности, а 37% заявили, что уже пытаются совершенствовать это умение. Почему же более трети руководителей считают, что им необходимо отточить этот навык?
Мы опросили нескольких руководителей и владельцев компаний о том, почему делегирование обязанностей представляет такую огромную сложность, и оказалось, что все ответы можно свести к трем основным причинам.
1. Делегирование обязанностей не избавляет от ответственности
Один из руководителей сказал: «Когда приходится перепоручать кому-нибудь работу, всегда остаются сомнения. Да, я смогу разделить с коллегой успех, но мне также придется в какой-то степени взять на себя ответственность в случае неудачи».
Вероятно, самая главная и самая распространенная проблема связана с ответственностью. Перепоручая задачу коллеге, вы перекладываете на него обязательства по ее выполнению. Но если вы — руководитель, то все равно останетесь ответственным за успех или провал задания. О вас будут судить по результатам работы вашей команды. Поэтому решение поручить кому-нибудь другому переговоры или важный проект может оказаться очень рискованным, особенно с учетом пункта 2.
2. Делегирование обязанностей означает потерю контроля
Один из ответов прозвучал так: «Но ведь я сделаю это лучше!»
И это логично. Очень трудно поверить, что кто-то другой способен выполнить работу так же хорошо, как и вы. Страх утратить контроль (а в мыслях многих руководителей это гарантированно ведет к неудаче) мешает переложить часть обязанностей на подчиненных.
Wrike позволяет проконтролировать выполнение поставленной задачи на любом этапе и оперативно выявить сложности с ходом работы. Попробуйте бесплатно »
3. Делегирование обязанностей требует времени и усилий
Один из владельцев компаний объяснил это так: «Я рассматриваю делегирование обязанностей как управленческую задачу. Если я научил сотрудника выполнять работу на том уровне, который меня устраивает, значит, я справился со своей ролью руководителя. Вначале приходится буквально водить подчиненных за руку, но со временем я даю им все больше и больше самостоятельности. И когда я уже оказываюсь не нужен, значит, моя работа завершена».
Делегирование обязанностей связано с необходимостью поддерживать тонкий баланс, особенно при поручении работы новичкам: часто на подготовку сотрудника тратится столько же времени, сколько вы сами могли бы потратить на выполнение задачи. Но более легкого пути не существует. Чтобы ваш подчиненный смог выполнить задание так же хорошо, как и вы, нужно не только объяснить ему цель работы, но и поделиться секретами ее выполнения. Невольно вспоминается пословица: дай человеку рыбу, и он будет сыт один день; научи его ловить рыбу, и он будет сыт всегда.
Как успешно делегировать обязанности?
Чтобы побороть сомнения и опасения, связанные с делегированием обязанностей, вам необходимо заложить основу для будущего успеха. Вот четыре действенных совета.
- Прежде всего четко выделите ту часть работы, которую необходимо передать. Определите, с какими задачами ваши подчиненные наверняка справятся и какие сможете сделать только вы.
- Обсудите цели и желаемые результаты каждого задания, чтобы исполнитель понимал, чего от него ожидают и как его работа вписывается в общую картину.
- Согласуйте срок сдачи и вехи, а также частоту проверок.
- И наконец, убедитесь, что ваши подчиненные готовы обращаться к вам с вопросами, если у них возникнут затруднения.
Wrike — единая среда для совместной работы, в которой все сотрудники работают по согласованному сценарию, имеют простой доступ к задачам, файлам, дискуссиям и документам и могут эффективно общаться по проектам. Попробуйте бесплатно »
Как бы вы ни относились к делегированию обязанностей, избежать его невозможно, если вы хотите сосредоточиться на приоритетных направлениях и одновременно развивать свой бизнес. Просто помните: когда вы перепоручаете работу коллегам, вам необходим налаженный диалог.
Как делегировать полномочия и стать свободным
«Многие предприниматели боятся доверять дела другому человеку и думают, что ни один сотрудник «не сделает так же хорошо, как я» – говорит эксперт в нише бренд-менеджмента Екатерина Глекс.
От этого они погружают себя в рутину, забывают о стратегических задачах и тратят время на попытки разобраться в азах, вместо того, чтобы привлечь специалиста.
Чтобы избежать этого, нужно делегировать полномочия. Как сделать это правильно, нам рассказали руководители и владельцы бизнеса. Но сначала мы разберёмся, что можно, а что нельзя делегировать и зачем это нужно.
Что значить делегировать
Делегирование – это передача рабочих обязанностей другому человеку (чаще – от руководителя к подчинённому). Начальник отдаёт часть задач и наделяет сотрудника новыми полномочиями. Так он уходит от рутины и стимулирует развитие коллектива – теперь работник может проявить себя в том, что ему доверили.
«Не путайте делегирование и постановку заданий» – говорит автор проекта «Князья и Капуста» Алексей Слободянюк. «Если вы просите выполнить какое-то дело, это не значит, что вы делегируете полномочия. Делегировать – это передать право распределять ресурсы и влиять на людей».
Зачем делегировать полномочия
Чтобы отказаться от рутины
Делегировать нужно, чтобы освободить время на важные дела: разработку стратегии бизнеса или поиск кадров.
«Основная задача руководителя – быть «мозгом», а сотрудников – «руками». Объясняйте смысл проектов, указывайте или корректируйте курс. Не допускайте распространённую ошибку, когда владельцы бизнеса начинают вникать и исправлять работу за подчиненными» – отмечает Станислав Коробов, директор по маркетингу агентства детских праздников «МореШоу».
Чтобы наладить бизнес-процессы
«Поставив цель сделать крупную компанию, вы должны научиться делегировать. Владелец автомобильного завода не может сам проектировать и собирать машины на потоке. Эти задачи он распределяет между работниками, налаживая конвейер.
Если владелец делает всё сам, он будет собирать одну машину несколько лет – налаженной системы не выйдет» – сообщает управляющий партнёр юридической компании «ЭНСО» Алексей Головченко.
Чтобы развивать сотрудников
«Эмоциональное или интеллектуальное развитие сотрудников – стимул для них» – говорит Корчемная Лидия директор компании INTESOL Worldwide в России. «Подчинённым нужно понимать, что они могут стать руководителями направления или бизнеса, это мотивирует. Так они учатся самостоятельности и двигаются по карьерной лестнице».
Чтобы проверить качества и навыки сотрудников
Антон Арканников, руководитель сети магазинов-пекарен «Брецель» рассказывает об этом так: «Я сразу делегировал направления бухгалтерии и продаж, а с управляющими было сложнее. Искал резюме на hh.ru, приглашал и смотрел, как человек работает. Без опыта реальных дел в компании сложно понять, сработаетесь вы или нет.
Четырёх управляющих я попросил уйти после двух недель работы. Это тот срок, когда становится ясно, что это за специалист. Никакой тест не покажет лучше».
Что нельзя делегировать?
Стратегию и финансы
«Не доверяйте другим стратегическое планирование» – говорит Антон Арканников. «Только владелец знает, как будет развиваться компания.
В финансах я делегирую часть. Но мы на пути к тому, чтобы в компании появился такой специалист, которому доверим всю информацию о потоках».
Об этом же сообщает Дмитрий Спиридонов, сооснователь и генеральный директор платёжного сервиса CloudPayments: «Для себя я определил, что не буду делегировать управление финансами, потому что несу уголовную и персональную ответственность.
Ещё нельзя делегировать формирование идеологии компании. Привлекайте команду, чтобы придумать её, но конечное решение – за вами».
Подбор кадров
«Подбор сотрудников – та же «воронка продаж» с конверсией» – рассказывает Алексей Максимченков, коммерческий директор ООО «Слава».
«Если нет денег, «выращивайте» специалиста сами. Здесь вы сэкономите, но потратите время. Когда деньги есть, размещайте вакансии. Важно, чтобы кандидат отдал больше энергии на этапе собеседования, например, выполнил 2-3 тестовых задания. Так он будет сильнее ценить работу, если получит её».
Мотивацию для сотрудников
«Покажите как выполнять задачи прежде, чем их делегировать» – сообщает Дмитрий Соколов, коммерческий директор проекта «Совесть».
«Когда мы запускали проект и набирали штат отдела продаж, я лично ходил в «поля» (карта рассрочки выдаётся онлайн и в магазинах-партнёрах). Там я показывал, что говорить, как доносить преимущества карты, объяснял отличия от кредитки. То же самое касается встреч с потенциальными партнёрами или клиентами».
Срочные вопросы и задачи с высокой долей риска
«Не делегируйте бизнес-процессы, в которых важна личность руководителя и его взгляд на положение дел. Принимайте решения сами там, где нужна оперативность: кризисные для бизнеса моменты, важные сделки или вопросы репутации» – рассказывает Владимир Сердюков основатель сервиса для поиска временного персонала LIMA.
Что нужно делегировать?
Текучку
«Передавайте мелкие задачи, с которыми справится любой человек: подготовку документов, расписание вашего рабочего времени, деловых встреч, звонки или согласование сделок» – говорит Екатерина Глекс.
Экспертную работу
Не берите на себя обязанности бухгалтера, маркетолога или разработчика, если у вас нет таких навыков – лучше найдите специалиста. Вы сохраните время и не потратите бюджет на ошибки, пока будете учиться.
Измеримые задачи
«Делегируйте те обязанности, у которых есть измеримые показатели, их можно оценить. Это нужно, чтобы специалист понимал, справляется ли он с делами или нет» – говорит Дмитрий Соколов.
Интересную работу
Нельзя делегировать только бессмысленную и «грязную» работу. Старайтесь находить творческие задачи для команды.
Как правильно делегировать полномочия
1. Оцените коллектив
«Человек, в работе которого было меньшего всего замечаний — самый потенциальный для делегирования» – считает Дмитрий Спиридонов. «Как лидер, вы должны знать сильные и слабые стороны каждого работника.
Взгляните на команду и назначьте задачи тем, у кого есть нужный навык. Это кажется очевидным, но многие лидеры делегируют тому, у кого меньше нагрузки».
2. Подробно объясните задачу
«Включайте инструкции, даже когда процесс кажется вам понятным. Если есть конкретные условия, скажите об этом сотруднику. Желательно, чтобы он пересказал, как понял задачу. Детали или простые инструкции с самого начала помогут уйти от проблем» — говорит Дмитрий Спиридонов.
«Часто результат не соответствует желаемому потому, что вы не обозначили, для чего нужна эта задача. Например, вы просите составлять таблицу с данными, но, если не объяснили, почему они важны, работа будет сделана поверхностно» — дополняет Инна Анисимова, генеральный директор PR Partner.
3. Нагружайте постепенно
Не передавайте все дела сразу. Начните с небольшой цели и предложите совместно разработать план, который поможет её достичь. Установите испытательный срок или дайте тестовое задание сотруднику.
«Усложняйте каждую новую задачу человеку с высокой квалификацией» – советует Алексей Головченко. «Он должен чувствовать, что развивается. Когда сотруднику не интересно, он относится к делам небрежно, ошибается, работает медленнее».
4. Обозначьте сроки
«Если работа зависит не только от сотрудника, но и от других специалистов или обстоятельств, всё равно ставьте дедлайн» – советует Станислав Коробов. «Человек должен отвечать за то, что ему поручили. Не принимайте ответы на сорванный срок вроде: «Ну, это же делаю не я, а наш новенький менеджер Захар».
Вас не должны информировать о том, что может быть решено без вашего участия. Когда появляется вопрос, он должен быть сформулирован так, чтобы вы ответили на него либо «да», либо «нет». Так процессы работают эффективнее, сотрудники становятся самостоятельными, а вы экономите время».
5. Проверяйте работу
«Проверяйте, что задание идёт по плану. Дайте сотруднику три недели, но не ждите весь срок, чтобы увидеть результат. Сделайте выборочный контроль, посмотрите, как двигается работа, убедитесь, что человек не наткнулся на препятствия» — советует Дмитрий Спиридонов.
Дмитрий Соколов дополняет: «Не требуйте ежеминутных отчётов. Человек должен понимать, что вы ждёте в результате, а как рулить процессом – решать ему».
6. Не наказывайте за ошибки
«Учите сотрудников не бояться совершать ошибки» – говорит Дмитрий Спиридонов. «Но если они потерпели неудачу, дайте им конструктивную критику и разберите причины ошибок. Задача руководителя в том, чтобы второй раз человек не наступил на эти же грабли».
7. Развивайте самостоятельность в других
«Когда специалист приходит с вопросом, первое, что я делаю – спрашиваю: «А что ты сам думаешь по этому поводу? Как предлагаешь действовать?» – говорит Дмитрий Соколов.
8. Следите за атмосферой в коллективе
«Сохраняйте комфортную среду в коллективе, где каждый работает без агрессивного соперничества и борьбы» – советует Алексей Головченко.
О том, что вы попросили кого-то взять ваши повседневные обязанности, должна знать вся команда. Это избавит от конфликтов.
9. Мотивируйте правильно
«Говорите с человеком на одном языке – сильное слово влияет. Многим важен корпоративный дух и чувство собственной значимости. Я лично общаюсь с каждым сотрудником раз в месяц, слушаю предложения или жалобы. Большая составляющая мотивации – материальная. Язык денег понимают все» – считает Антон Арканников.
10. Доверяйте
«Давайте сотрудникам свободу, самостоятельность раскрывает специалистов» – советует Станислав Коробов. «Если правильно поставить задачу: ограничить ресурсы, описать конкретный результат, срок и делегировать ответственность – адекватный сотрудник сделает так, как нужно.
Некомпетентный работник затянет сроки, сделает работу для галочки или переложит ответственность на другого».
«Постоянный контроль не даст человеку расти и принимать решения самому. Он просто перестанет проявлять инициативу.
Но не пускайте всё на самотёк. Когда вы хороший управленец, вам не трудно найти меру. Если управление персоналом не ваше сильное качество, делегируйте это специалисту» – дополняет Екатерина Глекс.
11. Отвечайте за результат
Передавая ответственность, вы не снимаете её с себя как с руководителя. Вы тоже отвечаете за провал, если сотрудник сделал ошибку.
Читайте: Управлять временем просто, если знать эти правила и техники тайм-менеджмента
что это такое и как делегировать задачи?
В менеджменте популярна история о Генри Форде, который неожиданно увез все руководство в круиз. По возвращении руководители подразделений, работа в которых остановилась, были уволены. Те, кто сумел организовать слаженный рабочий процесс, повысили. Потому что делегирование – ключевой навык управления. Эта статья расскажет о том, как делегировать рутинные и стимулирующие задачи на работе или дома, поможет пройти через процесс безболезненно и эффективно.
Что такое делегирование?
Делегировать — это слово, которое в переводе с латыни буквально означает «посылать», «отправлять», «передавать». Это распространенное понятие в менеджменте, юриспруденции, политике, биологии. В юриспруденции делегируют полномочия, то есть доверяют кому-либо выполнение сложных задач на основе договора. В политике направляют делегацию (послание или посольство) – представление какого-либо государства или делегата – человека, наделенного полномочиями. В биологии процессами делегирования заведуют гены, когда передают часть функций структурам мозга.
В менеджменте делегирование – это процесс, в котором обязанности или полномочия передаются от руководителя подчиненному или распределяются между подчиненными. Перепоручение рабочих задач – один из базовых навыков в совместной работе, который дает краткосрочные и долгосрочные преимущества перед конкурентами. Вообще умение делегировать – важнейший навык руководителя любого ранга. К сожалению, в большинстве организаций сам принцип делегирования практически отсутствует или слабо выражен.
В быту слово делегирование заменяют на «распределение домашних обязанностей». Но такое стратегическое умение одинаково важно в хозяйстве и в организации. Участников семейной команды нанять или уволить не получится, значит, нужно научиться распознавать и развивать их наилучшие качества. Делегировать можно не только семейные обязанности, но домашнюю работу, которую не хочется, нет времени или сил выполнять самостоятельно. Например, поручить уборку территории, выгул собак, чистку ковров или уборку дома людям, которые выполнят ее на 80% лучше и только на 20% дороже.
Пройти тест: ребенок, взрослый, родитель
Во всех случаях делегирование – акт доверия. Передавая другому свои задачи, вы даете ему понять, что верите в его способности, не ограничиваете свободу действий и рассчитываете на взаимное доверие.
Один из главных законов лидерства: возможности подчиненных добиваться результата определяются умением руководителя делегировать обязанности. Но навык делегирования выручает независимо от должности и сферы жизни. Это тот момент, к которому подходят бизнесмены, менеджеры розничных продаж, стартаперы и родители.
Делегирование на работе.
Передача задач другому человеку – сложный психологический процесс. Но его необходимо пройти хотя бы один раз. Предпосылок для делегирования много, но оно необходимо компании, если:
- Руководитель поручает задачи, но потом выполняет их сам.
- Подчиненные умеют работать только тогда, когда начальник «стоит над душой».
- Работа с подчиненными мешает руководителю выполнять свои прямые обязанности.
- Подчиненные отказываются брать на себя обязанность или подводят с выполнением заданий.
- Организацию ожидает интенсивное расширение бизнеса.
В реальности процесс передачи полномочий наталкивается на психологические барьеры. Люди предпочитают найти десятки оправданий, чтобы не делать этого. Руководитель опасается потратить свое время на обучение, а в итоге получить молодого конкурента и утратить ощущение собственной независимости. Если руководитель полностью использует инструменты доверия без мелочной опеки и ежеминутного контроля, преимущества получают все участники процесса:
Руководитель (делегатор). Повышает уровень доверия и налаживает коммуникацию с персоналом. Получает возможность заняться решением действительно важных стратегических задач. Передает часть работы тому, у кого почасовая ставка ниже.
Подчиненный. Получает авансом доверие, автономию, шанс раскрыть свой потенциал и проявить себя как подготовленного сотрудника. Усиливает личную мотивацию для повышения по службе.
Компания в целом. Оптимизирует рабочие процессы. Экономит ресурсы благодаря правильному распределению задач. Получает грамотных сотрудников, готовых возглавить отделение в случае форс-мажора или роста компании.
Клиенты. Получают качественный пакет услуг, продолжают сотрудничество, доверяют и рекомендует компанию другим.
Как правильно делегировать задачи?
Книг об искусстве делегирования написано немало. Если собрать главные советы успешных менеджеров и тренеров тайм-менеджмента, можно составить золотой список, который поможет правильно перепоручать свои задания подчиненным.
1. Отодвиньте в сторону свое эго.
Эгоцентрическая модель руководства – главный психологический тормоз развития компании. Но главная цель бизнеса – приносить прибыль. Если хотите, чтобы бизнес оставался на плаву в любых ситуациях, попробуйте перестроить руководство и перепоручить нерешенные дела подчиненным.
2. Не превращайте делегирование в наказание.
Передача полномочий по принципу «Ты мне не нравишься, поэтому я загружу тебя работой» грозит как минимум конфликтом. Перепоручать обязанности целесообразно тому, кто готов и хочет показать себя с лучшей стороны.
3. Контролируйте в меру.
Иногда передача полномочий нужна для проверки сотрудника. В таком случае усиленный контроль необходим. Но тотальное недоверие демотивирует. Поэтому иногда правильней оставить сотрудника в покое, чтобы предоставить стопроцентную ответственность.
4. Страхуйте, если этого требуют обстоятельства.
Ни в коем случает нельзя отбирать порученную работу, а только помогать при необходимости. Кроме того нужно отслеживать и пресекать не согласованные с вами поручения сотруднику от коллег или руководителей других подразделений.
5. Перепоручайте проблему, а не способ решения.
Право выбора альтернативных решений не позволяет руководителю становиться сиделкой для сотрудника. Этот мудрый шаг дает возможность опробовать какие-то нововведения, улучшить рабочий процесс, сэкономить бюджет.
6. Организуйте обратную связь.
Это необходимо для правильной оценки работы подчиненного. Вместе с доверием начальник передает работникам шанс максимально проявить свои компетенции. Требуя, он повышает необходимость отвечать за качество, объемы и сроки выполнения.
7. Выделяйте время на обучение.
Рассматривайте время на учебу как долгосрочную инвестицию. Будьте готовы ввести помощника в суть вопроса, перепроверить правильно ли он понял задание, терпеливо ответить на вопросы. А еще – дать подчиненному необходимые ресурсы (пароли, программы, приказы, отчеты).
8. Балансируйте между рутинными и творческими задачами.
Если вы хотите подготовить себе грамотного заместителя, вместе с обязанностями придется передать и полномочия для выполнения поставленных задач. Если рутины накопилось слишком много, лучше распределить ее между несколькими сотрудниками. Это дополнительно усилит атмосферу команды.
9. Выразите признательность.
Своему сотруднику, если он это заслужил. Здесь срабатывает несправедливое на первый взгляд правило: все «шишки» достаются руководителю, а бонусы в случае удачи – подчиненному. Важно выражать признательность подчиненному в присутствии других работников. Люди с большей вероятностью захотят помогать, если знают, что их ценят.
10. Поощряйте материально.
Вполне справедливо, что за отличное выполнение нового задания подчиненному полагается более комфортное рабочее место, прибавка к зарплате, повышение по службе. Это простимулирует остальных работников проявить инициативу.
Пройти тест на уверенность в себе
В реальности процесс делегирования часто сводится к следующему: подчиненному попросту «скидывают» работу руководителя. При этом руководствуются принципом «справится, значит сможет». А единственным мотиватором становится страх увольнения. Но такое искаженное понимание передачи полномочий провоцирует конфликты и не приносит никакого результата.
Делегирование в быту.
Домашнее делегирование – процесс деликатный. От того, как он сформулирован будет зависеть эффективность общей работы. Домашнее хозяйство – сфера, где правила распределения задач еще не прописаны. Поэтому можно использовать основные принципы менеджмента организаций. Но с некоторыми дополнениями:
- Приучайте детей к чистоте с самого раннего возраста. Первая задача родителя – научить малыша простым навыкам: умываться, следить за одеждой, убирать игрушки. А потом уже можно просить о помощи.
- Поручая задачи детям, убедитесь, что они с ними справятся. Маленькие дети не умеют ходить по магазинам. Зато сложить вещи в стиральную машину им по силам. По мере взросления можно усложнять обязанности и родителям и детям на благо.
- Отключите перфекционизм. В страхе «неидеальности» и кроется нежелание перепоручать домашние дела другим. Уменьшите требования к качеству домашней работы, особенно вначале. Или смиритесь с тем, что все придется выполнять самостоятельно.
- Заранее обговорите обязанности на семейном совете. Не распределяйте дела в порыве злости или усталости. Тем самым можно получить обратный эффект. Зато согласованные и одобренные членами семьи обязанности вырабатывают чувство ответственности и важности.
- Не пренебрегайте любой помощью. Активно привлекайте родственников, которые предлагают погулять с детьми или привезти продукты с рынка. При возможности покупайте бытовые электроприборы, способные облегчить домашние дела: мультиварку, робот-пылесос, паровой утюг.
- Создайте традицию совместной уборки. Этот полезный ритуал должен создаваться с положительными эмоциями: придумайте маленькое соревнование или веселую игру. А после окончания можно закрепить эффект совместным чаепитием со сладостями, прогулкой или романтическим вечером.
- Поддерживайте энтузиазм. Позволяйте родным самостоятельно выбирать домашние дела и средства, способные облегчить домашний труд. Поощряйте любое творчество. Благодарите за любую помощь. Подчеркивайте важность всего, что они сделали.
Распределение обязанностей и ролей в каждой конкретной семье зависит от семейного стажа и возраста членов семьи. Но главное помнить – каждый из нас счастлив получить поддержку, иметь возможность заниматься любимым делом, воспитать самостоятельных детей и быть любимым супругом.
Выводы:
- Делегирование – искусство достигать результата усилиями других людей.
- Главная цель передачи полномочий – упростить себе жизнь.
- При делегировании на работе важно помнить о соответствии полномочий с опытом, знаниями, желанием сотрудника.
- Навык домашнего делегирования поможет сохранить мир в семье и облегчить жизнь родных людей.
Пройти тест на характер человека
Золотая формула делегирования: как правильно передавать полномочия
Искусство управления — это достижение результатов силами других людей. А делегирование полномочий — один из главных навыков эффективного руководителя.
Брайан Трейси — известный специалист по вопросам эффективности и психологии успеха — вывел золотую формулу, которая поможет правильно передавать полномочия подчиненным. Она включает в себя 7 принципов.
1. Уровень задачи должен соответствовать уровню исполнителя
Запомните простое правило: если человек может выполнить 70% задачи, ему можно поручить ее целиком.
А если задача совсем новая, соотносите ее сложность с навыками, способностями и уровнем мотивации человека, которому вы планируете ее поручить. Важно, чтобы работа не оказалась слишком сложной и человек мог с ней справиться.
2. Делегируйте постепенно
Передавайте полномочия постепенно, развивая в человеке уверенность в себе. Очевидно, что вы хотите с самого начала «закалить» его, нагружая множеством мелких задач. Но когда дела более крупные и серьезные, процесс делегирования должен быть поэтапным.
3. Делегируйте задачу целиком
Один из главных мотиваторов в деловой среде — ощущение полной ответственности за порученное дело. Стопроцентная ответственность пробуждает уверенность, компетентность и самоуважение.
У каждого из ваших сотрудников, какую бы должность он ни занимал, должна быть по крайней мере одна функция, за которую он отвечает целиком.
Если он не выполнит эту работу, этого за него не сделает никто другой.
4. Ожидайте конкретного результата
Подумайте, какой конкретный результат вы хотите получить при делегировании. Помогите подчиненным четко понять, чего вы от них ожидаете в итоге. Обязательно переспросите, как человек понял задачу и то, что от него ожидают.
5. Стимулируйте участие и обсуждение
Существует прямая зависимость между обсуждением и заинтересованностью в выполнении работы. Когда у людей есть возможность напрямую общаться с руководством — повышается стремление выполнить работу хорошо.
6. Делегируйте полномочия и ответственность
Делегируйте полномочия соразмерно уровню ответственности. Если задача масштабная, сообщите сотрудникам, сколько времени на нее отводится и к кому они могут обратиться за дополнительной помощью. Распространенная ошибка, которую совершают руководители: они недооценивают, что может потребоваться сотрудникам для качественного выполнения работы, будь то время или деньги.
7. Оставьте исполнителя в покое
Пусть подчиненный несет стопроцентную ответственность. Не забирайте задачу обратно. Вы можете, сами того не осознавая, забирать ее обратно, постоянно проверяя сотрудника, требуя отчетности и предлагая изменения и корректировки процесса.
Способность делегировать задачу — ключевой фактор успеха руководителя. При правильном делегировании ваш потенциал практически безграничен. При отсутствии этого навыка вы будете вынуждены все делать сами.
По материалам «Делегирование и управление».
Делегаты и события | Документы Microsoft
- Чтение занимает 3 мин
В этой статье
НазадПредыдущее значение
Разработчики, не имеющие опыта работы с платформой .NET Core, часто не могут решить, что следует выбрать: использовать на основе делегатов
или на основе events
.Разработчики, которые плохо знакомы с платформой .NET Core, часто сталкиваются с трудностями при выборе между дизайном, основанным на , делегирует
, и дизайном, основанным на событиях
. Выбор делегатов или событий часто затруднен, потому что эти две языковые особенности похожи. Более того, события основаны на тех же средствах языка, которые обеспечивают поддержку делегатов. Мероприятия даже построены с использованием языковой поддержки для делегатов.
Invoke ()
для использования с оператором ?.Они даже поддерживают один и тот же синтаксис метода Invoke ()
для использования с ?.
оператор. При таком сходстве могут возникнуть проблемы с выбором подходящего механизма той или иной ситуации. При всех этих сходствах легко получить проблемы с определением, когда какой именно использовать.
Прослушивание событий необязательно Прослушивание событий необязательно
Самым важным фактором выбора при подходящем механизме обязательного наличия подключенного оператора.Наиболее важным фактором при определении того, какой язык следует использовать, является необходимость наличия прикрепленного подписчика. Если ваш код должен вызывать код, предоставленный подписчиком, вам следует использовать дизайн, основанный на делегатах, когда вам нужно реализовать обратный вызов. . Если код может выполнить все задачи, не вызывая подписчики, следует использовать это на основе событий.Если ваш код может выполнять всю свою работу, не вызывая подписчиков, вам следует использовать дизайн, основанный на событиях.
Обратите внимание на примеры, рассматривававшиеся в этом разделе. Рассмотрим примеры, построенные в этом разделе. Код, который вы создавали с помощью List.Sort ()
, должен содержать функцию сравнения для правильной сортировки элементов. Коду, который вы создали с помощью List.Sort ()
, должна быть назначена функция сравнения, чтобы правильно отсортировать элементы. Запросам LINQ следует предоставить делегаты для определения элементов, которые следует вернуть.Запросы LINQ должны поставляться с делегатами, чтобы определить, какие элементы возвращать. В обоих случаях использовалась структура на основе делегатов. Оба использовали дизайн, созданный с участием делегатов.
Рассмотрим событие Progress
. Рассмотрим событие Progress
. Оно сообщает о ходе выполнения задачи. Оно сообщает о ходе выполнения задачи.
Задача продолжает работать вне зависимости от того, есть ли прослушиватели. Задача продолжается независимо от того, есть ли слушатели.Еще один пример - FileSearcher
. Другой пример - FileSearcher
. Он по-прежнему будет искать и находить все искомые файлы, даже если не подключены подписчики на события.
Элементы управления UX продолжают работать правильно, даже если нет подписчиков, прослушивающих события.UX элементы управления по-прежнему работают правильно, даже если нет подписчиков, слушающих события. В обоих примерах используются структуры на основе событий.Оба они используют дизайн, основанный на событиях.
Для возвращаемых значений требуются делегаты Возвращаемые значения требуют делегатов
Еще одним аспектом является прототип метода, который требуется для метода делегата. Еще одно соображение - это прототип метода, который вам нужен для метода делегата. Как вы уже видели, все делегаты используются для событий, имеют тип возвращаемого значения void. Как вы видели, все делегаты, используемые для событий, имеют тип возвращаемого значения void. Вы уже также знаете, что есть идиомы для создания обработчиков событий, которые передают информацию по источнику событий, изменяя свойства объекта аргумента события.Вы также видели, что существуют идиомы для создания обработчиков событий, которые действительно передают информацию обратно в источники событий посредством изменения свойств объекта аргумента события. Хотя такие идиомы работают, они не так естественны, как возвращение значений из метода. Хотя эти идиомы работают, они не так естественны, как возвращение значения из метода.
Обратите внимание, что часто присутствуют оба исследуемых аспекта. Если метод возвращает значение, скорее всего, это повлияет на алгоритм.Обратите внимание, что эти две эвристики часто могут присутствовать обе: если ваш метод делегата возвращает значение, это, вероятно, каким-то образом повлияет на алгоритм.
Для событий используется закрытый вызовEvents Have Private Invocation
Классы, отличные от тех, в которых содержится событие. Классы, отличные от того, в котором содержится событие, могут только добавлять и удалять слушателей событий; только класс, содержащий событие, может вызвать событие.События обычно являются открытыми членами класса.
Для сравнения делегаты часто передаются как параметры и сохраняются как частные члены класса, если они вообще хранятся.
Прослушиватели событий часто имеют более длительный срок существования Слушатели событий часто имеют более длительный срок службы
То, что прослушиватели событий имеют более продолжительное время существования, - не столь важный фактор.То, что слушатели событий имеют более длительный срок службы, - немного более слабое оправдание. Однако структура на основе событий может оказаться более естественной, когда источник событий инициирует события в течение длительного периода времени. Однако вы можете обнаружить, что схемы, основанные на событиях, более естественны, когда источник событий будет вызывать события в течение длительного периода времени. Примеры структуры на основе событий для элементов управления UX можно найти во многих системах. Вы можете увидеть примеры дизайна на основе событий для элементов управления UX во многих системах.После подписания на событие источник событий может вызывать события в течение всего времени существования программы. Когда вы подписываетесь на событие, источник события может вызывать события в течение всего времени существования программы.
(Можете Когда события больше не нужны, вы отменить подписку на них.) (Вы можете отказаться от подписки на события, когда они вам больше не нужны.)
как это с помощью метода часто используется структура на основе делегатов, когда используется метод часто используется как метод управления.Сравните это со многими проектами на основе делегатов, где делегат используется в качестве аргумента метода, а делегат не используется после возврата из этого метода.
Тщательно оценивайте ситуацию Тщательно оценивайте
Приведенные выше указания не являются строгими правилами. Они представляют собой рекомендации, которые могут помочь вам решить, какой вариант лучше всего подходит для вашего конкретного случая.Поскольку они похожи, вы можете даже создать прототип обоих и подумать, с чем было бы более естественно работать. Оба они хорошо подходят для сценариев с поздним связыванием. Они оба хорошо справляются со сценариями позднего связывания. Используйте тот механизм, который лучше соответствует вашим требованиям. Используйте тот, который лучше всего передает ваш дизайн.
. Делегированные свойства - Котлин
. За помощь в переводе спасибо официальному блогу JetBrains на Хабрахабре
Существует несколько основных видов свойств, которые мы реализовываем каждый раз вручную в случае их надобности. Однако намного удобнее было бы представить их раз и навсегда и положить в какую-нибудь библиотеку. Примеры таких свойств:
- ленивые свойства (ленивые свойства): значение вычисляется один раз, при первом обращении
- , на события об изменении которых можно подписаться (наблюдаемые свойства)
- , хранимые в ассоциативном списке, а не в отдельных полях
Для таких случаев Котлин поддерживает делегированные свойства :
class Example {
var p: String от Delegate ()
}
Их синтаксис выглядит следующим образом: val / var <имя свойства>: <Тип> в <выражении>
.Выражение после от - делегат : обращения ( get ()
, set ()
) к своемуству будут обрабатываться этим выражением.
Делегат не реализовывал какой-то интерфейс, достаточно, чтобы у него были методы getValue ()
и setValue ()
с определенной сигнатурой:
class Delegate {
оператор fun getValue (thisRef: Any ?, свойство: KProperty <*>): String {
return "$ thisRef, спасибо за делегирование мне '$ {собственности.имя}'!"
}
оператор fun setValue (thisRef: Any ?, свойство: KProperty <*>, значение: String) {
println ("$ value было присвоено значению '$ {property.name} в $ thisRef.'")
}
}
Когда мы читаем значение свойства p
, вызывается метод getValue ()
класса Делегат
, причем первым параметром ей передается тот объект, у которого запрашивается свойство p
, а вторым - объект-описание самого свойства p (у него можно, в частности, узнать имя свойства).Например:
val e = Пример ()
println (e.p)
Этот код выведет
Example @ 33a17727, спасибо за делегирование мне ‘p’!
Похожим образом, когда мы обращаемся к p
, вызывается метод setValue ()
. Два первых - такие же, как у get (), а третий - присваиваемое значение свойства:
e.p = "НОВИНКА"
Этот код выведет
NEW было присвоено значению ‘p’ в Example @ 33a17727.
Спецификация требований к заявленным свойствам может быть найдена ниже.
Заметьте, начиная с версии Kotlin 1.1, вы можете объявлять делегированные свойства внутри функций или блоков кода, а не только внутри классов. Внизу вы можете найти пример.
Стандартные делегаты
Стандартная библиотека Котлин предоставляет несколько полезных видов делегатов:
Ленивые свойства (ленивые свойства)
lazy ()
это функция, которая принимает лямбду и возвращает экземпляр класса Lazy
, который служит представителем для реализации ленивого свойства: первый вызов get ()
запускает лямбда-выражение, переданное lazy ()
в как аргумента, и запоминает полученное значение, а последующие вызовы просто возвращают вычисленное значение.
val lazyValue: String by lazy {
println ("вычислено!")
"Здравствуйте"
}
fun main (args: Array ) {
println (lazyValue)
println (lazyValue)
}
Этот код выведет:
вычислено!
Здравствуйте
Здравствуйте
По умолчанию вычисление ленивых свойств синхронизировано : значение выполняется только в одном потоке выполнения, и все остальные потоки могут видеть одно и то же значение. Если синхронизация не требуется, передайте LazyThreadSafetyMode.ПУБЛИКАЦИЯ
в качестве программы в функции lazy ()
, тогда несколько потоков исполнять вычисление одновременно. Или если вы уверены, что инициализация всегда будет происходить в одном потоке исполнения, вы можете использовать режим LazyThreadSafetyMode.NONE
, который не гарантирует никакого потокаобезопасности.
Наблюдаемые свойства
Функция Delegates.observable ()
принимает два аргумента: начальное значение и обработчик (лямбда), который вызывается при изменении свойств.У обработчика три параметра: описание свойства, изменяется, старое значение и новое значение.
импорт kotlin.properties.Delegates
class User {
имя переменной: строка от Delegates.observable ("<без имени>") {
опора, старый, новый ->
println ("$ старый -> $ новый")
}
}
fun main (args: Array ) {
val user = Пользователь ()
user.name = "первый"
user.name = "второй"
}
Этот код выведет:
<без имени> -> первый
первый -> второй
. Если вам нужно иметь возможность запретить присваивание некоторых значений, используйте функцию vetoable ()
observable ()
.Хранение свойств в ассоциативном списке
Один из самых частых вариантов использования свойств окружающей среды в ассоциативном списке. Это полезно в «динамическом» коде, например, при работе с JSON:
. class User (val map: Map ) {
имя val: строка по карте
val age: Int по карте
}
В этом примере конструктор принимает ассоциативный список
val user = Пользователь (mapOf (
"name" в "John Doe",
«возраст» до 25
))
Делегированные свойства берут значения из этого ассоциативного списка (по строковым ключам)
println (пользователь.name) // Выводит "John Doe"
println (user.age) // выводит 25
Также, если вы используете MutableMap
вместо Map
, поддерживаются изменяемые свойства (var):
class MutableUser (val map: MutableMap ) {
имя переменной: строка по карте
var age: Int по карте
}
Локальные делегированные свойства (с версии 1.1)
Вы можете объявить локальные переменные как делегированные свойства. Например, вы можете сделать локальную переменную ленивой:
забавный пример (computeFoo: () -> Foo) {
val memoizedFoo от ленивого (computeFoo)
если (someCondition && memoizedFoo.является действительным()) {
memoizedFoo.doSomething ()
}
}
Переменная memoizedFoo
будет вычислена только при первом обращении к ней.
Если условие someCondition
будет ложно, значение не будет вычислено полностью.
Требования к представлению свойствам
Здесь приведены требования к объектм-делегатам.
Для только для чтения свойства (например, val ), делегат должен функции getValue
, который принимает следующие параметры:
-
thisRef
— должен иметь такой же тип или быть наследником типа хозяина свойства (для расширений — тип, который расширяется) -
свойство
— должен быть типаKProperty <*>
или его родительского типа.Эта функция должна возвращать значение того же типа, что и свойство (или его родительского типа).
Для изменяемого свойства ( var ) делегат должен также функции setValue
, который принимает следующие параметры:
-
thisRef
— то же что и уgetValue ()
, -
недвижимость
— то же что и уgetValue ()
, - новое значение — должно быть того же типа, что и свойство (или его родительского типа).
Функции getValue ()
и / или setValue ()
могут быть предоставлены либо как члены класса-делегата, либо как его расширения. Последнее полезно когда вам нужно передать свойство объекту, который изначально не имеет этих функций. Обе эти функции должны быть отмечены с помощью ключевого слова , оператор
.
Эти интерфейсы объявлены в стандартной библиотеке Kotlin:
интерфейс ReadOnlyProperty {
оператор fun getValue (thisRef: R, свойство: KProperty <*>): T
}
interface ReadWriteProperty <в R, T> {
оператор fun getValue (thisRef: R, свойство: KProperty <*>): T
оператор fun setValue (thisRef: R, свойство: KProperty <*>, значение: T)
}
Правила перевода
Для каждого делегируемого свойства компилятора Kotlin «за кулисами» генерирует вспомогательное свойство и передает его.Например, для prop
генерируется скрытым свойством prop $ delegate
, и исполнение геттеров и сеттеров просто делегируется дополнительному свойству:
класс C {
var prop: Введите MyDelegate ()
}
// этот код генерируется компилятором:
class C {
private val prop $ delegate = MyDelegate ()
var prop: Тип
get () = prop $ delegate.getValue (this, this :: prop)
set (значение: Тип) = prop $ delegate.setValue (this, this :: prop, значение)
}
Компилятор Kotlin предоставляет всю необходимую информацию о prop
в аргументах: первый аргумент this
Объявляется на экземпляр внешнего класса C
и this :: prop
Reflection-объект типа KProperty
, описывающий сам prop
.
Заметьте, что синтаксис this :: prop
для обращения к связанной вызываемой ссылке напрямую в коде программы доступны только с Kotlin версии 1.1
Предоставление представителя
Примечание: Предоставление делегата доступно в Kotlin начиная с версии 1.1
С помощью определения оператора provideDelegate
вы можете расширить логику создания объекта. Если объект, который используется справа от на
, укажите provideDelegate
как член или как расширение, эта функция будет вызвана для создания экземпляра делегата.
Один из виновных юзкейсов provideDelegate
— это проверка состояния при его создании.
Например, если вы хотите проверить имя перед связыванием, вы можете написать что-то вроде:
класс ResourceLoader (id: ResourceID ) {
оператор fun provideDelegate (
thisRef: MyUI,
prop: KProperty <*>
): ReadOnlyProperty {
checkProperty (thisRef, имя свойства)
// создание делегата
}
приватное развлечение checkProperty (thisRef: MyUI, name: String) {...}
}
fun bindResource (id: ResourceID ): ResourceLoader {...}
class MyUI {
val изображение от bindResource (ResourceID.image_id)
текст val от bindResource (ResourceID.text_id)
}
provideDelegate
имеет те же параметры, что и getValue
:
-
thisRef
— должен иметь такой же тип, или быть наследником типа , свойства хозяина (для расширений — тип, который расширяется) -
свойство
— должен быть типаKProperty <*>
или его родительского типа.Эта функция должна возвращать значение того же типа, что и свойство (или его родительского типа)
Метод provideDelegate
вызывается для каждого свойства во время создания экземпляра MyUI
, и сразу совершает необходимые проверки.
:
// Проверяем имя свойства без "provideDelegate"
class MyUI {
val изображение от bindResource (ResourceID.image_id, "изображение")
текст val от bindResource (ResourceID.text_id, "текст")
}
fun MyUI.bindResource (
id: ResourceID ,
propertyName: String
): ReadOnlyProperty {
checkProperty (это, propertyName)
// создание делегата
}
В сгенерированном коде метод provideDelegate
вызывается для инициализации вспомогательного свойства prop $ delegate
.
Другой сгенерированный для объявления свойства код val prop: Тип MyDelegate ()
со сгенерированным кодом из правил транзакций (когда provideDelegate
не представлен):
класс C {
var prop: Введите MyDelegate ()
}
// этот код будет сгенерирован компилятором
// когда доступна функция 'provideDelegate':
class C {
// вызываем "provideDelegate" для создания вспомогательного свойства "delegate"
private val prop $ delegate = MyDelegate ().provideDelegate (это, это :: prop)
val prop: Тип
get () = prop $ delegate.getValue (this, this :: prop)
}
Заметьте, что метод provideDelegate
влияет только на создание вспомогательного свойства и влияет на код, генерируемый геттером или сеттером.