Я працюю у великій гуманітарній організації, над розробкою проекту, який міг би допомогти врятувати життя в надзвичайних ситуаціях, прискоривши розповсюдження їжі. Багато громадських організацій відчайдушно потребують нашого програмного забезпечення, і ми за тиждень відстаємо від графіку.
Одне, що мене хвилює в цьому проекті, - це те, що, на мою думку, є надмірна увага до стандартів кодування. Ми пишемо в python / django і використовуємо версію PEP0008, з різними модифікаціями, наприклад, довжина рядків може доходити до 160 символів, а всі рядки повинні проходити так довго, якщо можливо, відсутні порожні рядки між імпортом, правила обгортання рядків, які застосовуються лише до певних видів класів, багато шаблонів, які ми повинні використовувати, навіть якщо вони не найкращий спосіб вирішити проблему тощо.
Один основний розробник витратив тиждень, переписуючи основну частину системи, щоб відповідати новим тоді стандартам кодування, викинувши кілька наборів тестів у процесі, оскільки перезапис означав, що вони є "недійсними". Ми витратили два тижні, переписуючи всю втрачену функціональність та виправляючи помилки. Він є головним розробником і його слово несе вагу, тому він переконав керівника проекту, що ці стандарти необхідні. Молодші деви роблять так, як їм кажуть. Я відчуваю, що керівник проекту має сильне почуття когнітивного дисонансу з приводу всього цього, але, тим не менш, з цим погоджується з нетерпінням, оскільки він не знає, що ще робити.
Сьогодні я потрапив у серйозну проблему, бо забув поставити пробіли після коми в аргументі ключових слів. Мене буквально кричали двоє інших розробників та керівник проекту під час дзвінка по Skype. Особисто я вважаю, що стандарти кодування є важливими, але також думаю, що ми витрачаємо багато часу нав'язливістю з ними, і коли я вербалізував це, це викликало лють. Мене сприймають як проблему в команді, команду, яка шукає козлів відпущення за свої невдачі. З часу запровадження стандартів кодування продуктивність команди помірно скоротилася, однак це лише посилює одержимість, тобто провідний розробник просто звинувачує наше недотримання стандартів у відсутності прогресу. Він вважає, що ми не можемо читати код один одного, якщо не дотримуємось конвенцій.
Це починає ставати липким. Тепер я намагаюся змінювати різні сценарії, autopep8, pep8ify та PythonTidy, щоб спробувати відповідати умовам. Ми також запускаємо pep8 проти вихідного коду, але є так багато неявних поправок до нашого стандарту, що їх важко відстежити. Провідний розробник простий вибирає помилки, що сценарій pep8 не підбирає, і кричить на нас на наступній черговій зустрічі. Щотижня з’являються нові доповнення до стандартів кодування, які змушують нас переписувати існуючий, робочий, перевірений код. Дякую небесам, у нас ще є тести (я відмінив деякі зобов’язання і виправив купу тих, які він вилучив).
Весь час посилюється тиск, щоб дотриматись цього терміну.
Я вважаю, що принциповим питанням є те, що провідний розробник та інший основний розробник відмовляються довіряти іншим розробникам робити свою роботу. Але як з цим боротися? Ми не можемо робити свою роботу, тому що ми занадто зайняті, щоб все переписувати.
Я ніколи не стикався з такою динамікою в команді інженерії програмного забезпечення. Чи помиляюся я в питанні їх дотримання стандартів кодування? Хто-небудь ще переживав подібну ситуацію і як вони успішно впоралися з нею? (Я не шукаю дискусії, а лише фактичні рішення, які люди знайшли)