Найкращі інструменти - це ті, про які ви забуваєте. Вони виконують свою роботу тихо, не потребують уваги, налаштувань чи постійних рішень.
З часом я помітив, що інструменти, які я найбільше використовую, часто мають досить простий функціонал. Вони не заважають, а навпаки дозволяють мені зосередитися на справжній проблемі, яку я намагаюся вирішити.
При створенні інструментів для розробників метою має бути зменшення когнітивного навантаження - а не його збільшення. Кожна функція повинна виправдовувати своє існування. Кожна опція конфігурації має вирішувати реальну проблему, а не гіпотетичний “крайній випадок”.
Я створював і використовував інструменти, які намагалися бути занадто гнучкими, занадто налаштовуваними та занадто розумними. Здебільшого ця гнучкість перетворювалася на тягар, наче тертя двох нових деталей. Замість того, щоб допомагати, інструмент ставав чимось, чим я мав постійно керувати, вивчати та адаптуватися.
Сказати “ні” функціям часто складніше, ніж додати їх. Але зрозумілі приклади за замовчуванням, передбачувана поведінка та чіткий алгоритм використання зазвичай призводять до кращих інструментів, ніж нескінченне налаштування.
Я віддаю перевагу інструментам, які працюють так, як я очікую. Інструментам, які не вимагають від мене вивчати їхні особливості чи обходити їхні обмеження. Якщо мені доводиться зупинятися і думати про сам інструмент, щось уже не так.
Хороший інструмент має відчуватися нудним у найкращому можливому сенсі.
Передбачуваний, зрозумілий і надійний.
Якщо він зникає десь на фоні і дозволяє мені зосередитися на моїй роботі, він виконує свою роботу на всі 100%.