Чому якість важлива

Травень 2019 · Рига, Латвія · коментарі

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

Якість - це майстерність.

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

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

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

якість

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

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

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

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

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

Якість - це швидкість.

Не існує конфлікту між якістю та швидкістю. Якість забезпечує швидкість. Жоден розробник ніколи не говорив - "ця дерьмова кодова база робить мене ооочень швидкою!". Кожен хороший розробник знає, що робота над хорошою кодовою базою робить нас швидшими, оскільки ми витрачаємо більшу частину часу на читання чужого коду. Деякі експерти стверджують, що співвідношення часу, витраченого на читання, до письма значно перевищує 10 до 1. Оскільки чистий код полегшує читання, написання чистого коду є розумною інвестицією. Полегшення читання коду полегшує його написання. Чистий прибуток!

Але тут є нюанс.

Ми вкладаємо час у якість, оскільки хочемо запобігти ситуації, коли погані речі накопичуються з часом, роблять розвиток повільним та непередбачуваним:

Але що, якщо ми створюємо одноразовий прототип або експеримент з підробленими дверима?

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

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

Якість важка.

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

Наприклад, тестова розробка (TDD) веде до кращої якості. Але щоб швидко працювати в стилі TDD, потрібні роки практики. Ви не можете освоїти TDD, заповнивши набір ката коду Фібоначчі. Виробничий код відрізняється від кодових ката - він нетривіальний, іноді безладний, частково написаний тим звільненим хлопцем, який любить статичні методи. Коли ви починаєте застосовувати TDD на виробничій кодовій базі, ваша продуктивність знижується. Під тиском стає спокусливо відновити продуктивність, відкинувши TDD, оскільки TDD навчання уповільнює вас:

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

Якість - це репутація.

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

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

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

Ваш бренд - це те, що говорять про вас інші люди, коли вас немає в кімнаті.

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

  • 🥇 Якість - це майстерність.
  • 🚀 Якість - це швидкість.
  • 🏋️‍♂️ Якість важка.
  • 👍 Якість - це репутація.