Re[6]: Как собеседовать архитектора?
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 17.10.10 10:31
Оценка:
Здравствуйте, Undying, Вы писали:

U>В общем случае мою мысль надо перефразировать следующим образом. Для решения данной задачи очень желательно иметь опыт решения серверных задач, т.к. они достаточно специфичны. Однако не обязательно, чтобы этот опыт имел архитектор, при условии что уже есть ведущий специалист с таким опытом. В этом случае следует в первую очередь обращать внимание на собственно архитектурные способности кандидата, т.е. на умение делать сложное простым.


Ок. Но всё-таки я хотел бы обратить внимание вот на какое обстоятельство: ты попытался судить о навыках требуемого специалиста ДО декомпозиции задачи на части. Исходя из общих соображений. Это я пишу не в упрёк тебе, а просто потому что такая тактика нередко используется заказчиками. Она действительно имеет право на жизнь, но часто не приносит положительных результатов. Почему?

Чтобы ответить на этот вопрос, вернёмся к нашему примеру. Мы сформулировали
Автор: Кирилл Лебедев
Дата: 14.10.10
три подхода к решению:

(1) найти способ встроиться в систему (1) с тем, чтобы получать уведомления об изменении данных;
(2) найти способ хранить в системе (2) информацию о данных в системе (1) в компактном виде так, чтобы периодически можно было отслеживать изменения;
(3) разобраться, почему генерация растрового изображения занимает так много времени.


Очевидно, что каждый из подходов предъявляет к разработчику разные требования.

Для примера рассмотрим более детально подход № 1. Типовая модель архитектуры JSP выглядит так:

Браузер <-> [Сервлет (контроллер), JSP (представление)] <-> JavaBean <-> БД


Эту схему можно детализировать:

Браузер <-> ОС пользователя <-> ОС сервера <-> HTTP-сервер <-> Сервлет-контейнер <-> [Сервелет, JSP] <-> JavaBean <-> БД


Чтобы отследить изменения в БД, потенциально мы можем встроиться:

1) либо в какой-нибудь компонент этой цепочки, участвующий во взаимодействии;
2) либо между компонентами, модифицировав цепочку.

Мы можем встроиться:

1. в браузер — тогда нам нужен специалист, разбирающийся в том, как писать плагины и компоненты для имеющихся браузеров (IE, Chrome, Firefox, Opera, Safari);
2. в ОС пользователя — тогда нам нужен специалист, который имел опыт в написании фаерволов (т.е. умеет писать программы, которые перехватывают запросы пользователя);
3. в HTTP-сервер — нужен специалист по HTTP-серверам;
4. в сервлет-контейнер — нужен специалист по Tomcat'у;
5. в БД — нужен "баз-даннщик" .

В зависимости от выбранного подхода и конкретного варианта решения меняются и требования к специалисту.

Очевидно, если мы выберем третий подход, т.е. будем разбираться в том, почему растровое изображение генерируется так долго, то нам потребуется программист, хорошо подкованный в алгоритмах (это если пишем алгоритм заново), или же специалисты, имеющий опыт в проведении оптимизаций (это если решаем оставить текущий алгоритм, но решили устранить причины низкой скорости его работы).
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.