Я работаю 17-ть лет над примерно "одним и тем же проектом". (А если говорить узко про "текстовый редактор" и обработку текстов - то и все 25-ть).
Посему - для меня "время остановилось".
В некотором смысле мне как СПЕЦИАЛИСТУ - ПОВЕЗЛО.
Мне не пришлось "бегать с места на место" и делать "сиюминутные проекты".
Мне представилась возможность изучить процесс проектирования, программирования, анализа и вообще создания системы, что называется "под микроскопом".
Мы начинали давно. Если говорить про Delphi. То мы начинали с "обыденного" Delphi-программирования в RAD-стиле. Писали свои компоненты. Делали массу форм в дизайнере форм. Понаписали массу своих расширений и визардов на ToolaAPI. Пользовались и чужими.
Но в какой-то момент мы пришли к НЕОБХОДИМОСТИ создания СВОИХ "системных библиотек" и собственного фреймворка. Эволюционно.
А не потому, что "программистам так захотелось".
И мы не жалеем об этом. Собственный фреймворк дал очень много плюсов. Минусы - конечно тоже есть. Но куда уж без них.
Но! ПЛЮСЫ - значительно перевешивают.
Мы многим могли бы поделиться с почившим Borland'ом или существующей Embarcadero. Уж очень много "блох" мы выловили. Это - правда.
НА этом фреймворке (с той или иной долей его участия) - построено НЕ ОДНО приложение. И внутренние и внешние.
Основные разработки уходят вглубь 10-тилетней, а то и 15-тилетней давности.
Так что - решения - взвешенные, зрелые и обкатанные.
Совсем недавно (в течении последних 5-ти лет) мы сделали - "новое". Тесты.
Это не значит, что тестов у нас не было.
Очень и очень давно у нас существуют "ручные тесты" и их организация.
Также достаточно давно у нас существует автоматическое GUI-тестирование.
Но этим всем занимается ОТДЕЛЬНАЯ группа. У которой цели и задачи, а также мотивация - другие.
А вот в последние пять лет мы занимаемся тестами на "уровне программистов".
Начали мы с "unit-тестов" (я не зря это взял в кавычки). Да и не стоит их путать с "полномасштабным" TTD, а "закончили" - GUI-тестами. Но на "программистском" уровне.
Это не значит, что у нас существует дублирование функциональности групп (хотя в дублировании и "внутренней конкуренции" - я ничего плохого не вижу).
Нет. У нас две группы - гармонично дополняют друг друга. И каждая решает СВОИ задачи. Под СВОИ цели.
ТЕСТИРОВЩИКИ - тестируют "чёрный" ящик.
ПРОГРАММИСТЫ - "белый".
Тестировщики - проверяют прецеденты и требования.
Программисты - регресс, стабильность архитектуры и "внутреннюю красоту" кода.
ТЕСТИРОВЩИКИ - тестируют нагрузку.
ПРОГРАММИСТЫ - тестируют граничные условия.
ТЕСТИРОВЩИКИ - смотрят на систему "глазами пользователя".
ПРОГРАММИСТЫ - "глазами заказчика", который заинтересован в дальнейшем развитии системы.
ТЕСТИРОВЩИКИ - консерваторы в плане поведения системы.
ПРОГРАММИСТЫ - в плане её архитектуры.
ТЕСТИРОВЩИКИ - новаторы в плане удобства пользователей.
ПРОГРАММИСТЫ - в плане технологических решений.
Все мы вместе занимаемся не удовлетворением "своего интереса" (но куда же без этого, интерес - это хорошо), но обеспечением КАЧЕСТВА конечного продукта. В меру своих сил.
Посему - ещё раз - все наши разработки, о которых я пишу - это не совсем "велосипеды" и не прихоть. Это исторически - продиктовано.
P.S. Так как наши разработки достаточно "стары", я писал - 10-15 лет, то мы конечно очень немного пользуемся сторонними вещами, появившимися после этого. Про тот же FastMem - мы знаем. И про его возможности. Но у нас есть своя следилка за памятью и объектами. Не такая продвинутая как FastMem, но зато - родная и обкатанная. На FastMem - я конечно уже очень давно хочу посмотреть внимательно. Но времени всё не выдаётся. Это же касается и других "современных разработок".
Посему - для меня "время остановилось".
В некотором смысле мне как СПЕЦИАЛИСТУ - ПОВЕЗЛО.
Мне не пришлось "бегать с места на место" и делать "сиюминутные проекты".
Мне представилась возможность изучить процесс проектирования, программирования, анализа и вообще создания системы, что называется "под микроскопом".
Мы начинали давно. Если говорить про Delphi. То мы начинали с "обыденного" Delphi-программирования в RAD-стиле. Писали свои компоненты. Делали массу форм в дизайнере форм. Понаписали массу своих расширений и визардов на ToolaAPI. Пользовались и чужими.
Но в какой-то момент мы пришли к НЕОБХОДИМОСТИ создания СВОИХ "системных библиотек" и собственного фреймворка. Эволюционно.
А не потому, что "программистам так захотелось".
И мы не жалеем об этом. Собственный фреймворк дал очень много плюсов. Минусы - конечно тоже есть. Но куда уж без них.
Но! ПЛЮСЫ - значительно перевешивают.
Мы многим могли бы поделиться с почившим Borland'ом или существующей Embarcadero. Уж очень много "блох" мы выловили. Это - правда.
НА этом фреймворке (с той или иной долей его участия) - построено НЕ ОДНО приложение. И внутренние и внешние.
Основные разработки уходят вглубь 10-тилетней, а то и 15-тилетней давности.
Так что - решения - взвешенные, зрелые и обкатанные.
Совсем недавно (в течении последних 5-ти лет) мы сделали - "новое". Тесты.
Это не значит, что тестов у нас не было.
Очень и очень давно у нас существуют "ручные тесты" и их организация.
Также достаточно давно у нас существует автоматическое GUI-тестирование.
Но этим всем занимается ОТДЕЛЬНАЯ группа. У которой цели и задачи, а также мотивация - другие.
А вот в последние пять лет мы занимаемся тестами на "уровне программистов".
Начали мы с "unit-тестов" (я не зря это взял в кавычки). Да и не стоит их путать с "полномасштабным" TTD, а "закончили" - GUI-тестами. Но на "программистском" уровне.
Это не значит, что у нас существует дублирование функциональности групп (хотя в дублировании и "внутренней конкуренции" - я ничего плохого не вижу).
Нет. У нас две группы - гармонично дополняют друг друга. И каждая решает СВОИ задачи. Под СВОИ цели.
ТЕСТИРОВЩИКИ - тестируют "чёрный" ящик.
ПРОГРАММИСТЫ - "белый".
Тестировщики - проверяют прецеденты и требования.
Программисты - регресс, стабильность архитектуры и "внутреннюю красоту" кода.
ТЕСТИРОВЩИКИ - тестируют нагрузку.
ПРОГРАММИСТЫ - тестируют граничные условия.
ТЕСТИРОВЩИКИ - смотрят на систему "глазами пользователя".
ПРОГРАММИСТЫ - "глазами заказчика", который заинтересован в дальнейшем развитии системы.
ТЕСТИРОВЩИКИ - консерваторы в плане поведения системы.
ПРОГРАММИСТЫ - в плане её архитектуры.
ТЕСТИРОВЩИКИ - новаторы в плане удобства пользователей.
ПРОГРАММИСТЫ - в плане технологических решений.
Все мы вместе занимаемся не удовлетворением "своего интереса" (но куда же без этого, интерес - это хорошо), но обеспечением КАЧЕСТВА конечного продукта. В меру своих сил.
Посему - ещё раз - все наши разработки, о которых я пишу - это не совсем "велосипеды" и не прихоть. Это исторически - продиктовано.
P.S. Так как наши разработки достаточно "стары", я писал - 10-15 лет, то мы конечно очень немного пользуемся сторонними вещами, появившимися после этого. Про тот же FastMem - мы знаем. И про его возможности. Но у нас есть своя следилка за памятью и объектами. Не такая продвинутая как FastMem, но зато - родная и обкатанная. На FastMem - я конечно уже очень давно хочу посмотреть внимательно. Но времени всё не выдаётся. Это же касается и других "современных разработок".
Очень грамотно! Как всегда :)
ОтветитьУдалитьСпасибо Артём :-) давненько не слышались :-)
Удалить