Чи нормально програмісту працювати над кількома проектами одночасно [закрито]


40

На сьогоднішній роботі я маю два проекти, над якими працюю. Перша - дуже величезна система, друга - менша, але також велика (перший проект розробляється на 12 років, другий на 4 роки).

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

Мені це дуже важко, оскільки, незважаючи на те, що вони обидва використовують Java, вони використовують різні рамки, а кількість коду та бізнес-логіка для розуміння дуже велика, тому я не можу в голові тримати обидва ці проекти.

Це нормально, і я повинен звикати до цього, хоча моя експертиза стала дуже скупою, що не станеться, якщо я працюю лише над одним проектом? Або я повинен викликати стурбованість чи, можливо, змінити роботодавця?


для мене робота над декількома проектами більше підходить до поняття «тіло магазину», що погано, чи не так?

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

не хочу закривати це питання. Просто тому, що на мою думку, якщо ви працюєте програмістом, ви повинні надати гарантію, що ваш код ваші зміни не вплинуть на систему. Але якщо вам не вистачає досвіду в системі, яку гарантію ви можете надати? Поставити нульову перевірку на кожен виклик методу "рівний" чи інші об'єкти? - В біса так!

Чи дозволено вам використовувати на роботі технології співпраці та управління знаннями? (Приклади: Wiki, інструменти для перегляду коду, доступ до конструкторських документів, інструментів управління проектами, особистих списків завдань, відстеження помилок, миттєвих повідомлень тощо) Без цих технологій робота над кількома проектами неможлива.
rwong

Це питання "чи більше 50% компаній дозволяють багатозадачність?" Чи "Багатозадачність добре чи погано"?
Мартін Вікман

Відповіді:


54

Я повністю не згоден, коли люди кажуть "так, багатозадачність - це нормально"

Це не нормально! Зовсім неприродно, що розробник має багатозадачні завдання в декількох проектах (я поясню докладніше далі). З іншого боку, багатозадачність дуже поширене серед розробників. До цього, безумовно, слід звикнути. Тож справжня відповідь на ваше запитання: як зробити багатозавдання?

Перш за все, ви не повинні просто приймати свою долю, тому що "ви такий відмінний працівник", а це означає, що вам потрібно взяти більше завдань, ніж ви впораєтеся. Зовсім ні. Іноді людям дають кілька завдань, тому що більше нікого немає. Іноді менеджери не можуть впоратися зі своєю роботою, тому вони делегують, виконуючи багатозадачні завдання у своїй команді, оскільки вони не можуть правильно керувати своїм графіком проектів. Тож вам обов'язково слід спробувати визначити, чи просять вас багатозавдання, тому що це частина вашої роботи або тому, що інші люди некомпетентні. У будь-якому випадку, ви можете судити про себе, чи це прийнятно чи ні. Якщо вам не комфортно [зі своєю роботою], є інші місця, куди ви можете шукати роботу. [Ви, розробник, - товар. Роботодавці це знають і моляться, щоб ви ніколи цього не усвідомлювали.]

Тепер щодо багатозадачності я не погоджуюся на 100%, коли люди кажуть "так, просто переключись вперед і назад і переконайся, що ти робиш однакову суму на кожен проект". Вибачте, але це дуже погана порада.

Спочатку ви повинні усвідомити, як працює ваш мозок, коли ви розробляєте програмне забезпечення (я знаю, що в цьому є інші завдання, але давайте зосередимося на цьому). Спочатку вам потрібно провести «провід», це означає, що вам потрібно багато зосередитись і поставити свій розум у становище, де у вас все відображено в голові. Усі назви змінних та методів, робочий процес вашого коду, модель об'єкта, потоки, що йдуть поруч, все. Зазвичай мені потрібно 15, може, і 20 хвилин, щоб потрапити «в зону».

Коли ви дістаєтесь до цього стану, ви дійсно летите і пишете код, як на велосипеді. У момент, коли вас перебивають, ви можете втратити все це. Якщо перерва буде досить довгою (5, 10, можливо, 30 хвилин), ви втратите такий стан душі і вам доведеться починати все спочатку.

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

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

Я настійно рекомендую прочитати статтю Джоела Спольського з цього приводу:

http://www.joelonsoftware.com/articles/fog0000000022.html

Тому моя порада: спробуйте навчитися (не) багатозавдання, тому що це дійсно звичайно. Але також переконайтесь, що вам зручно це робити. Деякі люди можуть зайняти більше часу, щоб сконцентруватися, і страждатимуть більше, ніж інші, коли багатозадачні завдання; і це теж нормально. Це не тому, що прийнято вважати нормальним.

Джоел добре це сказав, коли сказав:

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


5
Те, що відбувається декілька проектів одночасно, не означає одночасне кодування. Це було б багатозадачність. Очікувати одного проекту за один раз може бути кращим, але це просто мріяти про La La Land.
JeffO

1
+1 Відмінно Якби компанії зрозуміли це, вони зробили б набагато краще. Деякі, хоча, і ось де завтра переможці!
Мартін Вікман

Дякую @Martin Мені смішно, як деякі люди не розуміють "багатозадачність" як те, що працює над кількома проектами. Я ніколи не казав, що кодування одночасно - це те саме, що багатозадачність, звідки ви це взяли від @Jeff? Пити каву та кодувати? Ти мене жартуєш? Отже, якщо ви одночасно дихаєте і моргаєте, ви теж багатозадачність ??? Принаймні, прочитайте цілий пост гез! Посилання на статті Джоеля має дуже схожі ідеї, будь ласка, прочитайте його, перш ніж розміщувати тут свій коментар.
Олексій

2
@Alex - @bjarkef і @Jeff абсолютно праві; маючи два проекти! = багатозадачність. Повідомлення Джоеля і ваше повідомлення про те, що багатозадачність є дорогим і марним, є правильними, але вони не обов'язково стосуються роботи над кількома проектами.
Нік Ноулсон

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

33

Так, це можна очікувати. І вітали.

Є кілька способів переглянути це:

  1. Від вас очікують багатозавдання, і зосередитись майже неможливо. Це призводить до неоптимальних інженерних процесів, періодичної плутанини, коли ви переходите назад і назад, відчуття експлуатованості, розладу, стресу тощо. проте,

  2. Вам довіряють декілька проектів, що добре відображає результати, які ви отримуєте, і довіру, яку має ваш роботодавець у своїх можливостях. Це можливість показати їм довіру.

Моя порада - розробити тверезу думку про те, які завдання потребують вашої негайної уваги та які можуть чекати. Іноді відповідь полягає в тому, що ніхто не може чекати, і вам потрібно творчо підійти до надання результатів (трохи для проекту A, потім трохи для проекту B, потім промийте і повторіть). Виховуйте навички процвітати в подібній ситуації.

Зазвичай (хоча і не завжди) це буде винагороджено більшою відповідальністю, більшою кількістю проектів, спрямованих на жонглювання, та більшою кількістю очікувань. У якийсь момент ви зможете делегувати частину цієї роботи, і, як очікується, Це міра успіху.

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

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


7
Замість того, щоб бути слухняним слугою і сподіватися на багатство, можливо, будьте наполегливі та додайте цінності, вказавши на неефективність?
Джоппе

6
@Tungano - я ні в якому разі не пропоную бути "слухняним слугою", а скоріше, що давати численні одночасні обов'язки - це природний побічний ефект бути хорошим у тому, що ти робиш. Люди схильні покладатися на тих, хто може змусити щось статися. Поводження з декількома обов'язками не обов'язково неефективно, підлегло або слухняно. Якщо ви (або @gasan) не можете впоратися з декількома речами ефективно, то будь-ласка повідомте свого роботодавця, щоб вони не помилилися, думаючи, що ви можете. (FWIW, я не сказав нічого про багатство.)
мт

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

7
Я категорично не згоден з цією відповіддю. Багатозадачність - це не міра успіху, це міра некомпетентності вашого менеджера. Знати, як зробити багато завдань, не так просто. PS: Я сам опублікував відповідь, але це йде в кінці рядка.
Олексій

6
Ця відповідь не має сенсу. Це "нормально" в тому сенсі, що багато компаній примушують програмістів до цього, але це все-таки марно витрачаючи ресурси компанії. Якби вони зосереджувались на одній справі , це було б закінчено набагато швидше.
Мартін Вікман

15

Так! Це абсолютно "нормально" / звичайно, коли ви працюєте в сервісної компанії xD

Крім того, якщо ви співпрацюєте з проектами з відкритим кодом, це правило

Можливо, це не ідеальний стан, але це хліб щоденного.


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

4
@gasan Ми всі хотіли б працювати над "однією справою за один раз". Однак робота над більш ніж одним проектом, читання коду інших людей та вирішення різних вимог - це шлях до ніндзя-капота.
bogeymin

12

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


9

Я щодня активно працюю над 2 - 3 різними проектами. І підтримуйте ще кілька десятків. Деякі тижні це стає трохи непосильним. Деякі проекти величезні, деякі такі маленькі, що були закодовані за кілька днів і рідко потребують змін. Він різниться, але він мене піддається різним способам мислення та вирішення проблем, різним технологіям та діловим напрямкам. Мені це подобається.

Отже, щоб відповісти на ваше запитання, так, це дуже часто.


значить, ти рід Шива? Я навряд чи уявляю суму вашого внеску в ці проекти.

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

8

Перегляньте статтю під назвою Багатозадачність отримує вас пізніше . Цей графік розповідає історію:

введіть тут опис зображення

Іншими словами, компанія витрачає час на те, щоб їхні програмісти працювали над більш ніж одним проектом за один раз. Усього за трьома проектами відходи становлять 40%! Решта часу розділена на три проекти.

Причину багатозадачності часто зазначають як "робити більше справ". Але це помилкові міркування. Багатозадачність призводить до затримки всіх випусків. На цьому зображенні показано ефект подвійного завдання та закінчення одного проекту за один раз:

введіть тут опис зображення

(Зображення повністю ігнорується над головою. Насправді витрачений час зробить обидва проекти на 20% пізніше.)


4

Це залежить від компанії. IMO бажано здебільшого працювати лише над одним проектом, але це часто неможливо, особливо з невеликими компаніями.

Звичайно, виправлення помилок тощо можуть завжди траплятися з будь-яким проектом.


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

4

Так, на мій досвід, це нормально (навіть якщо деякі з "проектів" є досить схожими, наприклад, проект технічного обслуговування та функціонування на одному продукті). Щоб уникнути конфліктів та нереальних очікувань, домовтеся з керівниками проекту та вашим менеджером виділити певні частки вашого часу кожному проекту (наприклад, три дні на проект X, два на проект Y на тиждень). Зазвичай ви можете розподіляти ті виділення, як вам подобається, наприклад, Пн-Ср на X, Чт-Пт на Y.

Там іноді буде час , коли один проект «кидає виняток» і потрібно працювати в даний . Тут можна зробити дві речі:

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

3

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

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


1
Чудова порада. Я беру детальні записки, і вони не дуже корисні.
Адам Лір

2

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


2
Дійсно, змусьте свого начальника сказати вам, що важливо. Комунікація є дуже важливою, і коли вона не підтримується, вона може викликати сильне розчарування та розчарування у будь-якої сторони.
Htbaa

0

Я думаю, що це нормально. Те, як працює зараз моя робота (я в компанії з 40 розробниками, загальний розмір компанії - близько 700). І зазвичай у мене є один "довгостроковий" проект із безліччю маленьких квитків / дефектів, які виникають, тому він, як правило, складає 50% малих квитків та 50% роботи над довгостроковим проектом. Що може бути складно, це те, що постійні перерви можуть сповільнити і зірвати проект на довший термін.


0

Я думаю, що це нормально працювати над кількома проектами. Головне - визнати, що спочатку ви будете стикатися з деякою неоднозначністю щодо загальної картини системи.

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

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


0

У будь-якому нетривіальному проекті призначено більше однієї людини. Це означає, що вам потрібно співпрацювати з іншими і чекати, коли вони виконують свою роботу, а також вони повинні чекати на вас.

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

Ви все одно повинні працювати в значних шматках над кожним проектом, щоб ви могли потрапити "в зону" і бути продуктивними.


-1

Я згоден з тими, хто каже, що це нормально / звичайно.

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


-1

ІМХО - це не тільки звичайно, але й бажано.

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


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

Я це зробив - але думати, що кожен аспект кожної роботи буде захоплюючим - це наївно.
cjmUK

Вибачте, але я не можу співпереживати. Як програміст я вважаю, що всі мої призначені проекти цікаві не тільки в моїй теперішній роботі, але і в тій, яку я мав раніше. Це не повинно бути захоплюючим; це інакше. Існує цікавий спектр між захоплюючим і нудним.
Acumenus

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

-1

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

Проблема полягає в тому, що вони бачать, що на 3 робочих місцях працюють більше, ніж виробник грошей, ніж один за один раз, а статистика показує зниження ефективності на 40%. Це 40% втрат прибутку ..

Я попередньо працював над організацією, яка дозволила мені зосередитись на одному великому проекті одночасно з невеликими робочими місцями, квитками та підтримкою тощо. які надходять через електронну пошту / телефон / службу довідки, то 10:00 - 16:30, або ваш час закінчення був повноцінним розвитком. Це спрацювало extreemley добре, тому що у нас була служба підтримки, щоб приймати дзвінки та електронні листи, я змогла зробити квитки вранці та розробити решту дня. Проблема полягає в тому, якщо у вас погане управління. Менеджер змушує це все статися, і без їхньої підтримки та розуміння викликів, з якими ви стикаєтесь щодня, вони не знають цього факту.

Я був особливо вдячний за свою останню роботу за підтримку та розуміння з боку мого менеджера, це полегшило мені життя, менше стресу, і ми все-таки отримали ВСІ роботи.

Інша проблема полягає в коханні грошей Боса, вони бачать проекти в грошах. Коли у них є 5 проектів за 20 000 фунтів стерлінгів одночасно (і ви є сольним розробником), то 100 000 фунтів стерлінгів у книгах. Чудово виглядає на папері, але може завдають шкоди репутації компанії, коли їх не дотримуються, терміни пропущені, а системи нестабільні через відсутність концентрації.

Я повністю співчуваю вам, я зараз на вашому становищі.


як це відповідає на поставлене запитання?
гнат

-2

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


Ми пропонуємо 2 окремих продукти, і вони поділяють невеликий фрагмент коду. Ці продукти призначені для різних потреб користувачів, але все ж вони знаходяться в одному домені.

-2

Програмних проектів, як і партнерів по коханню, може бути багато, а в багатьох добре, але вони хороші лише за одним.


-2

Додавши до того, що сказав @Martin Wickman, постарайтеся не переключати задачі сильно. Наприклад, працюйте AM над проектом A, PM над проектом B. Також скажіть "не" для додавання функцій; це болісніше, коли ви не працюєте над проектом повний робочий день.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.