Я працюю в компанії, яка набрала б 11 тестів на Joel Test - принаймні на папері.
На практиці, однак, нічого не працює так добре, як очікувалося, і проект працює на DEFCON 1 вже півроку. Зараз більшість моїх однолітків раді, якщо вони можуть повернутися додому о 18:00 - у неділю.
Однією з мабуть хороших практик, яка вразила мене як непрацюючого, є використання інструментів статичного аналізу. Проект відстежує gcc -Wall попередження та фірмовий і дуже дорогий інструмент "C / C ++" .
Попередження Gcc роблять частіше, ніж не вказують на справжні (якщо більшу частину часу образливі) помилки.
Власні інструменти, однак, перераховують такі речі, як неявні касти та розміри в рядковому літералі. Неявні касти також перебувають у чорному списку в їх стилістиці.
Стандартна практика полягає в тому, що людей натискають, щоб закрити кожне попередження. Зауважте, що це не виключає попереджень, які є переважно помилковими, це не проблема.
Результат:
- Люди додають типи типів до кожного рейтингу та до кожного аргументу, що приховує реальні проблемні невідповідності в процесі.
- Люди вводять одні помилки або використовують іншу проблематичну мову (strlen замість sizeof, strncpy замість strcpy тощо)
- Попередження замовчуються.
- Звіти про помилки починають впроваджуватися.
Основна суть у тому, що оригінальний код працював і писав люди, які захищали свої мови, тоді як виправлення не були.
Зараз я не думаю, що цю компанію можна врятувати. Однак я хотів би знати, чи є кращий, бажано працюючий, спосіб використання інструментів "pro" або якщо я просто уникаю їх використання взагалі, якщо я буду приймати рішення в майбутньому.
Рішення, яке не передбачає всіх програмістів, - генії, які не можуть помилитися. Бо добре, якщо вони є, то не потрібно в першу чергу користуватися інструментами.