morfizm (morfizm) wrote,
morfizm
morfizm

Тщательность и время

После поста о тщательности может возникнуть впечатление, будто тщательность требует значительного времени, поэтому в реальности она редко применима. В этом посте я хочу объяснить, почему этот вывод неверен.

Вернёмся к понятию доказательства. Его сложность можно измерить длиной. Разумеется, чем сложнее система, тем сложнее доказать её правильность, потому что это нужно сделать для всех её частей. По мере усложнения доказательств, человек сталкивается с проблемой нехватки времени. Эту проблему разные люди решают по-разному, в том числе комбинацией из предложеннных способов.

1. Чётко очертить пределы своей компетенции и не брать задач, тщательное выполнение которых будет требовать слишком много времени. Пределом может служить проект ("знаю всё о системе, просто потому, что написал её с нуля сам"), вид задач (специализированный контрактник) или область (отраслевой эксперт).

2. Много практиковаться и выполнять доказательства быстрее (что повысит сложность тщательно выполнимых задач или ускорит выполнение менее сложных, без ущерба тщательности). В сочетании с пунктом 1, можно стать героем-одиночкой, способным построить сложную систему, или контрактником высокого класса, зарабатывающего в час больше, чем юристы и врачи, или выдающимся отраслевым экспертом.

3. Путь менеджера. В качестве "очевидных" узлов в доказательстве, не требующих детальной проработки, использовать доверенных экспертов или других менеджеров (которые, в свою очередь, либо знают сами, либо используют доверенных экспертов). Таким образом, можно доказывать правильность сложных систем, ничего не зная о низкоуровневых деталях реализации, но, тем не менее, сохраняя "тщательность" (или это уже нужно другим словом назвать?)

4. Путь архитектора. То же, что и путь менеджера, но вместо людей использовать концепции: например, разделение компонент, или процессы и соглашения, позволяющие значительно упростить доказательство работы сложных систем. В качестве "узлов" доказательства, не требующих проработки в деталях, можно использовать факт следования членов команды установленному процессу или установленным принципам разработки. Чтобы процессу и принципам можно было доверять, требуется строгая дисциплина в их соблюдении.

Резюмируя, тщательность нужна в любом случае. В разработке ПО такого пути, в котором можно обойтись поверхностным отношением к предмету своей ответственности. Другое дело, проработку деталей не обязательно делать своими руками: из ресурсов - есть другие люди, а также есть процессы, принципы и соглашения.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments