четверг, 26 сентября 2013 г.

О "велосипедах"...

Я работаю 17-ть лет над примерно "одним и тем же проектом". (А если говорить узко про "текстовый редактор" и обработку текстов - то и все 25-ть).

Посему - для меня "время остановилось".

В некотором смысле мне как СПЕЦИАЛИСТУ - ПОВЕЗЛО.

Мне не пришлось "бегать с места на место" и делать "сиюминутные проекты".

Мне представилась возможность изучить процесс проектирования, программирования, анализа и вообще создания системы, что называется "под микроскопом".

Мы начинали давно. Если говорить про Delphi. То мы начинали с "обыденного" Delphi-программирования в RAD-стиле. Писали свои компоненты. Делали массу форм в дизайнере форм. Понаписали массу своих расширений и визардов на ToolaAPI. Пользовались и чужими.

Но в какой-то момент мы пришли к НЕОБХОДИМОСТИ создания СВОИХ "системных библиотек" и собственного фреймворка. Эволюционно.

А не потому, что "программистам так захотелось".

И мы не жалеем об этом. Собственный фреймворк дал очень много плюсов. Минусы - конечно тоже есть. Но куда уж без них.

Но! ПЛЮСЫ - значительно перевешивают.

Мы многим могли бы поделиться с почившим Borland'ом или существующей Embarcadero. Уж очень много "блох" мы выловили. Это - правда.

НА этом фреймворке (с той или иной долей его участия) - построено НЕ ОДНО приложение. И внутренние и внешние.

Основные разработки уходят вглубь 10-тилетней, а то и 15-тилетней давности.

Так что - решения - взвешенные, зрелые и обкатанные.

Совсем недавно (в течении последних 5-ти лет) мы сделали - "новое". Тесты.

Это не значит, что тестов у нас не было.

Очень и очень давно у нас существуют "ручные тесты" и их организация.

Также достаточно давно у нас существует автоматическое GUI-тестирование.

Но этим всем занимается ОТДЕЛЬНАЯ группа. У которой цели и задачи, а также мотивация - другие.

А вот в последние пять лет мы занимаемся тестами на "уровне программистов".

Начали мы с "unit-тестов" (я не зря это взял в кавычки). Да и не стоит их путать с "полномасштабным" TTD, а "закончили" - GUI-тестами. Но на "программистском" уровне.

Это не значит, что у нас существует дублирование функциональности групп (хотя в дублировании и "внутренней конкуренции" - я ничего плохого не вижу).

Нет. У нас две группы - гармонично дополняют друг друга. И каждая решает СВОИ задачи. Под СВОИ цели.

ТЕСТИРОВЩИКИ - тестируют "чёрный" ящик.
ПРОГРАММИСТЫ - "белый".

Тестировщики - проверяют прецеденты и требования.
Программисты - регресс, стабильность архитектуры и "внутреннюю красоту" кода.

ТЕСТИРОВЩИКИ - тестируют нагрузку.
ПРОГРАММИСТЫ - тестируют граничные условия.

ТЕСТИРОВЩИКИ - смотрят на систему "глазами пользователя".
ПРОГРАММИСТЫ - "глазами заказчика", который заинтересован в дальнейшем развитии системы.

ТЕСТИРОВЩИКИ - консерваторы в плане поведения системы.
ПРОГРАММИСТЫ - в плане её архитектуры.

ТЕСТИРОВЩИКИ - новаторы в плане удобства пользователей.
ПРОГРАММИСТЫ - в плане технологических решений.

Все мы вместе занимаемся не удовлетворением "своего интереса" (но куда же без этого, интерес - это хорошо), но обеспечением КАЧЕСТВА конечного продукта. В меру своих сил.

Посему - ещё раз - все наши разработки, о которых я пишу - это не совсем "велосипеды" и не прихоть. Это исторически - продиктовано.

P.S. Так как наши разработки достаточно "стары", я писал - 10-15 лет, то мы конечно очень немного пользуемся сторонними вещами, появившимися после этого. Про тот же FastMem - мы знаем. И про его возможности. Но у нас есть своя следилка за памятью и объектами. Не такая продвинутая как FastMem, но зато - родная и обкатанная. На FastMem - я конечно уже очень давно хочу посмотреть внимательно. Но времени всё не выдаётся. Это же касается и других "современных разработок".

2 комментария: