Усі люди, які допитувались про те, чи справді ти повільний, чи ні, - це безглуздо. Стати швидшим програмістом без шкоди для якості - це завжди хороша мета, незалежно від того, наскільки ти повільний або швидкий. Це моя мета № 1 як програміста, і я ніколи цього не досягну. Я завжди намагаюся зробити швидше, не жертвуючи якістю, я одержимий цим. Ось що для мене працювало досі в порядку корисності, а також кілька експериментальних ідей наприкінці:
1) Ніколи не припиняйте вчитися: Дізнайтеся все, що можна про програмування та використання комп'ютерів взагалі. Знайдіть слабкі області та вивчіть їх. Навіть якщо це здається абсолютно не пов'язаним з вашою роботою та C #, я гарантую, що якщо ви шукаєте її, ви часто знайдете способи застосувати її до того, що ви робите. Навчання також стосується досвіду, тому не просто читайте речі, а спробуйте і розширіть свої навички. Якщо ви звикли користуватися Windows, спробуйте Unix або навпаки. Якщо вам зазвичай подобається використовувати інструменти командного рядка спробуйте командний рядок і текстові редактори або навпаки. Якщо ви чуєте про інструмент або технологію, про які ви раніше не чули або про неї не знаєте багато, не піддавайтеся спокусі рухатися далі. Подивіться! Не бійтеся мислити поза межами та вивчайте нові експериментальні технології, які, на думку інших, є непрактичними;
2) Розбийте проекти: Спробуйте розбити проекти на міні-проекти. Спробуйте робити новий випуск щодня або максимум раз на кілька днів. Запитайте себе "Який мінімальний обсяг функціональності я можу випустити та все-таки випустити щось корисне для користувача". Це навичка, яку ви навчитеся, виконуючи її. Можливо, вам доведеться переконати своїх менеджерів дозволити вам це зробити, але вони, як правило, будуть задоволені результатами досить швидко. Роблячи це, ви почнете помічати, що речі, які, на вашу думку, були важливими для вашої функції, - це фактично додаткові функції, які можна буде розробити пізніше. Це дозволяє вам та вашим менеджерам надавати пріоритет лише найважливішим характеристикам замість усіх функцій, пов’язаних із тією, над якою ви працюєте. Це дозволяє швидше мислити, зберігаючи розум чітким та зосередженим. Ви в свою чергу законно програмуєте швидше. Ваші менеджери або принаймні менеджери менеджера також можуть сприймати, що ви зараз програмуєте навіть швидше, ніж ви є насправді, тому що ви отримуєте більше релізів. Ще одна величезна перевага цього полягає в тому, що ви будете набагато краще оцінювати тривалість випусків до завершення, і ваші менеджери будуть любити вас за це. Оскільки ви вже робите безліч автоматизованих тестувань, у вас не повинно виникнути проблем із стабільними часто випусками. Вам може знадобитися покращити автоматизовану систему збирання. Я настійно рекомендую прочитати книгу Безперервна доставка з серії Мартіна Фаулера. Це важко читати і тому, що воно надзвичайно повторюється, але все ще дуже корисно. Менеджери s також можуть сприймати, що ви зараз програмуєте навіть швидше, ніж ви є насправді, тому що ви отримуєте більше релізів. Ще одна величезна перевага цього полягає в тому, що ви будете набагато краще оцінювати тривалість випусків до завершення, і ваші менеджери будуть любити вас за це. Оскільки ви вже робите безліч автоматизованих тестувань, у вас не повинно виникнути проблем із стабільними часто випусками. Вам може знадобитися покращити автоматизовану систему збирання. Я настійно рекомендую прочитати книгу Безперервна доставка з серії Мартіна Фаулера. Це важко читати і тому, що воно надзвичайно повторюється, але все ще дуже корисно. Менеджери s також можуть сприймати, що ви зараз програмуєте навіть швидше, ніж ви є насправді, тому що ви отримуєте більше релізів. Ще одна величезна перевага цього полягає в тому, що ви будете набагато краще оцінювати тривалість випусків до завершення, і ваші менеджери будуть любити вас за це. Оскільки ви вже робите безліч автоматизованих тестувань, у вас не повинно виникнути проблем із стабільними часто випусками. Вам може знадобитися покращити автоматизовану систему збирання. Я настійно рекомендую прочитати книгу Безперервна доставка з серії Мартіна Фаулера. Це важко читати і тому, що воно надзвичайно повторюється, але все ще дуже корисно. і ваші менеджери будуть любити вас за це. Оскільки ви вже робите безліч автоматизованих тестувань, у вас не повинно виникнути проблем із стабільними часто випусками. Вам може знадобитися покращити автоматизовану систему збирання. Я настійно рекомендую прочитати книгу Безперервна доставка з серії Мартіна Фаулера. Це важко читати і тому, що воно надзвичайно повторюється, але все ще дуже корисно. і ваші менеджери будуть любити вас за це. Оскільки ви вже робите безліч автоматизованих тестувань, у вас не повинно виникнути проблем із стабільними часто випусками. Вам може знадобитися покращити автоматизовану систему збирання. Я настійно рекомендую прочитати книгу Безперервна доставка з серії Мартіна Фаулера. Це важко читати і тому, що воно надзвичайно повторюється, але все ще дуже корисно.
3) Використовуйте техніку pomodoro і адаптуйте / зміните те, що не працює для вас. Якщо поєднувати це з номером 2 у цьому списку, ви отримаєте ВЕЛИЧЕЗНЕ підвищення продуктивності.
4) Дізнайтеся Vim. Навіть якщо ви закінчите використовувати ці команди в Visual Studio через ViEmu, або в межах Eclipse через плагін, або зсередини Emacs, ви отримаєте продуктивність. Найкращий спосіб навчитися Vim - почати користуватися ним і змусити себе ніколи не (відключати його / повертатися до своїх старих інструментів), поки ви не освоїли його. Спочатку боляче, але ти ніколи не захочеш повертатися назад, і навіть тиснеш, коли доведеться працювати без цього. Деякі кажуть, що це не значно збільшить вашу швидкість. Але швидше швидше, особливо, коли читати та змінювати код - ЩО МИ РОБИТИ, і я виявив, що заощаджую багато часу з цим при нагоді.
5) Цей останній не обов'язково рекомендується, оскільки я не впевнений, що це гарна ідея, і це може насправді знизити вашу продуктивність, але я все-таки пророблю його там. Ви можете спробувати зробити більше приймальних тестів і менше одиничних тестів, або, принаймні, переконайтеся, що ви зробили тестування прийняття. Я мав успіх у SpecFlow, але підозрюю, що там щось краще. Навіть написання специфікацій може бути досить технічним, тому ви, можливо, хочете, щоб ваш менеджер / клієнт спочатку написав грубу версію чернетки, яку ви змінили істотно, або ви можете написати всю річ самостійно і просто прочитати їх, і все це добре. У цьому вам допоможе номер 2 із цього списку. Також приймальні тести можуть бути більш практичними і вимагати менше коду, ніж одиничні тести. Це не означає, що вони замінюють їх різними інструментами для різних речей.
6) Цей ще більш експериментальний і суперечливий. Я насправді цього не робив сам, тому не можу точно рекомендувати. Дізнайтеся та використовуйте систему програмування мета від JetBrains. Використовуйте його для створення інструментів, які ваш менеджер / клієнт використовує для створення потрібного програмного забезпечення самостійно. Можливо, вам навіть вдасться перестати робити тести на одиницю та прийняття, якщо ви можете використовувати це для виготовлення інструментів, які ваш менеджер / замовник використовує для визначення прямої та безперебійної поведінки. Ідея не в тому, щоб позбутися програміста. Програмістам все одно потрібно буде додавати нові функції до цих інструментів, які використовуються клієнтом / менеджером, коли вони (люди, а не інструменти) не можуть легко створити потрібну функціональність. Я вірю, що або MPS, або інші подібні до нього інструменти - це шлях майбутнього.