Мне больно это признавать, но иногда я могу учиться только на своих ошибках. Даже когда меня предупреждают об этом, я не прислушиваюсь к этим предупреждениям и все равно совершаю ошибку. Что еще хуже, так это то, что я часто отчитывал за это студентов. Я бы хотел, чтобы этого не было, но это случается, и когда это происходит, я должен есть ворону.

Вот моя исповедь….

Меня зовут Крис Мессье, и я не документировал свои данные.

В прошлые выходные я получил электронное письмо от моего научного руководителя. Он и его новый аспирант просматривали данные эксперимента, для которого я написал программное обеспечение, и у него возникло несколько вопросов. Вопросы были довольно прямолинейными, и я знал, что он не будет работать над задачами до утра понедельника; поэтому отложил до понедельника. Я хорошо знал этот эксперимент, и прошло не так много времени с тех пор, как мы в последний раз проводили его, так что это не должно занять слишком много времени, верно?

Бьюсь об заклад, читатель знает, к чему все идет.

Я открыл файл данных и обнаружил набор функций, которые показались мне чуждыми. Это усугублялось тем, что лаборатория отдавала предпочтение плоским файлам. К счастью для меня, мое прошлое «я» было достаточно любезно, чтобы пометить сообщения журнала, поэтому моя задача несколько упростилась, но это было непросто.

То, что, как я думал, займет у меня 5 минут, вскоре превратилось в полчаса, пытаясь расшифровать, чему соответствует каждое значение. Если бы я только потратил немного времени на документацию!

Когда я писал регистратор, я работал с данными каждый день, поэтому я знал результат как свои пять пальцев. Перенесемся на несколько месяцев вперед, и я едва мог понять, что говорит CSV.

Что мне нужно было сделать, так это вернуться к коду, просмотреть все и выяснить, какие переменные я регистрировал. К счастью, мое прошлое «я» усвоило ценную ошибку от другого прошлого «я» до него: код был хорошо прокомментирован, а имена переменных были ясны. Из этого я начал сколачивать словарь данных.

Я просмотрел сообщения журнала, одно за другим, и определил поля каждого сообщения: сопоставил каждую функцию с кодом, который ее создал. Возможно, это заняло какое-то время, но вскоре я собрал воедино документацию для каждого записываемого набора наблюдений. В результате не было ничего особенного: просто файл уценки, в котором перечислены переменные для каждого типа сообщения.

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

Интересно, какую ошибку я узнаю из следующей…