Які речі, як правило, сповільнюють розробника?
Спробуйте утриматися від публікації відповідей, які:
- зараз повільні, але корисні в функції. (TDD, Refactoring, ...)
- перелічити відволікання .
Які речі, як правило, сповільнюють розробника?
Спробуйте утриматися від публікації відповідей, які:
Відповіді:
О, це просто:
StackOverflow, programmers.stackexchange.com тощо. :)
Будь-яка спроба слідкувати за процесом, який не підходить до заданої задачі.
Це можуть бути всілякі речі, але серед поширених я бачу такі:
Усі ці речі можуть мати величезну користь у деяких проектах або в деяких ситуаціях, але деякі організації намагаються робити все в один бік, а це призводить до поганого вписування в інші проекти, що часто є смертю продуктивності.
Політика
наприклад: Коли більш ніж одна особа володіє вимогами (або, що ще гірше, двома різними інтересами), і вони вносять змагальні та суперечливі зміни до вимог, поки триває розробка.
Багато відповідей говорять про переключення контексту та вихід із зони, а шум, особливо розмова, - це одна з тих речей, яка призводить до таких для мене.
У своєму куб-світі мене оточують шум і розмова з усіх боків. Один рядок, команда мейнфреймів проводить постійні зустрічі з планування в кубічному ряду. Іноді вони зустрічаються з консультантами в офісі уздовж стіни, і це, як правило, призводить до гучного гукання, гудіння і сміху, і мені доводиться переходити і просити їх закрити свої двері.
З іншого боку, стіл конференцій для веб-команд знаходиться з іншого боку моєї західної стінки куба, тож я є частиною кожної зустрічі, подобається вона чи ні. На другій стороні південної стінки куба також є принтер, і це завжди добре для чат-чатів від людей, які тусуються, чекаючи їх роздруківки.
Безпосередня і очевидна відповідь « Не можете ви просто отримати навушники для зменшення шуму» не допомагає, коли ви хочете - тиша.
Іноді для перегляду коду я забираю свою групу паперів в обідню кімнату (звичайно, в необідній час), але там є телевізор, який зазвичай викликає гніт. Я відключу його, якщо ніхто не дивиться. Інакше я піду шукати порожній куб в іншому відділі в іншій частині будівлі.
Якщо ви хочете, щоб ваші програмісти виконували роботу, яку вони повинні робити, а це, головним чином, мислення та розмірковування та роздуми, їм потрібне середовище, де вони можуть це робити.
Написання занадто багато рядків коду без адекватних тестів.
Відсутність високоякісної кави.
маючи робити ідеальні оцінки, на які не слід погоджуватися, як тільки починається розвиток, на мою думку, це курячий яєчний сценарій
Виправлення чужої зламаної збірки
Наради без порядку денного.
Повільна машина.
Відсутність другого монітора.
Стара мишка, яка має кулю замість приємних нових.
Відсутність доступу до Інтернету на комп’ютері, боляче запитуючи MSDN / stackoverflow / тощо.
Уникайте всього, що виводить вас із «зони». Це означає, що поштова скринька електронної пошти, ваше спливаюче додаток Twitter, ваш корпоративний чат тощо.
Маючи тихе робочий стан означає , що робочий стіл , уникаючи шуму теж.
Будь-який запит на зміну, який було б простіше реалізувати, якби ви знали про це раніше.
Багато що сповільнює вас - хороший пост для цього блогу.
...
Багато проектів повторюють основні функції інфраструктури знов і знов, уповільнюючи цей бізнес, надаючи функції, що відрізняють бізнес від його конкурентів.
...
Неминуче, що продукти та інновації допоможуть скоротити час, який розробники витрачають на недиференційовані завдання. Питання в тому, яку форму приймуть ці служби та інструменти.
...
Ну, останнім часом найбільше сповільнення полягає в тому, що ми розробляємо декілька речей одночасно, які мали бути зроблені в певному порядку. Тому я чекаю, поки (імена змінені для захисту невинних) Джон закінчує свій компонент, який мені потрібен для мого пакету SSIS, і Гаррі сповільнюється, чекаючи, коли я імпортую записи, тому що йому потрібні деякі дані для перевірки його експорту (будь-коли спробуйте написати складний звіт про експорт, коли в жодній із таблиць немає даних?), і всі сповільнені, оскільки дизайн не зроблений, а таблиці баз даних, які ми повинні виконувати, наші завдання ще не створені і можуть навіть не закінчитися до того, що вони сказали, що вони будуть, і т.д.
Незважаючи на те, що ви попросили не перераховувати відволікання, вони можуть бути важливим фактором. Погляньте на їхнє робоче середовище, перевірте, чи часто вони перебиваються або попросили зробити інші речі, не пов'язані з проектом.
Іноді розробник може зациклюватися на тому, що вони роблять те, чого ніколи раніше не робили, і не знають, де шукати допомоги. Якщо це невелика команда чи окрема особа, це може бути ще складніше. Ми, як правило, трохи горді і не любимо визнавати, коли ми не знаємо, як робити справи. Крім того, ми не любимо просити інших про допомогу. Немає простого способу змусити розробника визнати це, окрім, можливо, запитати, чи можуть вони виконати термін, або що їм потрібно, щоб виконати цей термін, і тоді сподіваюся, що вони будуть чесними. Можливо, вам буде потрібно запропонувати іншу допомогу або знайти когось, хто може їм допомогти.
Відсутність чітко визначених вимог, що призводить до того, що їм доведеться розбирати речі або приймати рішення.
Я міг би продовжувати, але п’ятниця, і я хочу забути про роботу.
Занадто багато людей на проекті.
Побачили це кілька разів, коли керівництво вирішило, не грунтуючись на реальних даних, що їм потрібно додати більше людей до проекту. Це закінчується в ppl, хто знає, що відбувається, і потрібно зупинити все, щоб тримати руки людей, які мало знають про те, що відбувається. Я бачив не один проект грибів розміром, а потім швидко йти в туалет звідти, тоді як до цього добре йшов, хоча, можливо, трохи повільно.
Таким чином, ви перебуваєте з запізненням на місяць через недостатню швидкість / занадто багато, щоб зробити, щоб взагалі не здійснити доставку, тому що ви повністю збільшили бюджет для всіх цих зайвих людей.
Окрім речей, про які згадували інші, довгий шлях між рішенням скласти та запустити свій код і отримати позитивний / негативний результат . В ідеалі ця RTT була б лише секундою, але я бачив приклад годин. До речі, блок тестування намагається вирішити цю проблему.
Інший пов'язаний з цим - загальна затримка вашого робочого середовища. Уявіть, що вам потрібно буде працювати над віддаленим підключенням робочого столу до комп'ютера з іншого боку світу над моторошним з'єднанням. Я був там. Я це ненавиджу.
Надмірне оформлення документів
Залежність від того, кого ніколи немає (наприклад, вашого начальника - якщо вам потрібно задати питання, але він завжди на зустрічах)
Недостатній інструмент та обладнання.
Люди засувають весло без жодної причини (будь-яка зміна видимого інтерфейсу користувача не підлягає цьому) або просто сперечаються на те, що він бачить.
Зламана кавоварка
Присвоєння неправильних завдань
Це дуже особиста і, можливо, суперечлива думка, але все-таки планувати і думати над тим, як розробляти наперед або писати "якісний" код. Існує приказка, що "тижні кодування можуть заощадити години на планування", що може бути правдою в деяких випадках.
Однак я часто бачу, як програмісти намагаються замалювати хороший дизайн, перш ніж починати кодування. Я вважаю, що простіше просто «розпочати», коли ви програмуєте, ви дізнаєтесь більше про вашу проблему та рішення, що дозволить швидко переробити рішення на гарний дизайн. Більшість питань, що виникають, є досить незрозумілими на початку кодування (як мінімум, на мій слабкий розум), тому витрачати багато часу на розробку фронту - це лише марна трата часу.
Це також, чому мені не подобається TDD, ви витрачаєте занадто багато часу на написання тестів, що змушує вас або менше шансів перефактурувати, або потребує багато часу для перезаписи тестів. Тести блоків чудово підходять для деяких випадків і деяких етапів проекту, але початок одного не є одним з них IMHO :)
Швидко працюйте і вдосконалюйте це.