Здравствуйте, Chanting Wolf, Вы писали:
CW>1) Как ни смешно — на первом месте проблемы с enviroment.
У меня тоже, как у человека с сисадминским кретинизмом в ярко выраженной форме, самое сложное — это установить все необходимое, настроить, заставить в первый раз все заработать. У меня есть талант: даже если у инсталлятора какой-то программы единственная кнопка с надписью "установить", я все равно сумею установить ее криво.
И второе самое сложное — когда начинают постоянно дергать параллельно по нескольким задачам, не давая полностью уйти в какую-то одну. Бывают такие дни, когда каждые полчаса кто-нибудь приходит то обсудить что-то, то баг показать, то новую задачу дать, то о старой напомнить. В такие дни продуктивность падает ниже плинтуса.
Здравствуйте, Chanting Wolf, Вы писали:
CW>1) Как ни смешно — на первом месте проблемы с enviroment.
Под виндой я ничего сложного не поднимаю, максимум IDE, сторонний компилятор/интерпретатор. Скрутить сторонний редактор кода с официальным компилятором и библиотекой от левой конторы трудной задачей не считаю. Сервера под виндами не поднимаю. Что касается линукса (где и живу), то у меня есть несколько текстовых файлов: 1) apt-get install subversion mc python-setuptools vim vim-gnome... думаю, идея понятна 2) сетевые настройки, настройки веб-сервером 3) ссылки на используемые мной ИДЕ (сначала проверяю на наличие новых версий, если их нет, то натравливаю wget на список и жду).
CW>Изучение новой технологии.
Обычно — не проблема.
CW>Вообще, для меня самый — самый страшный день — первый день на работе,
CW>когда удалось добиться, чтобы моя програмка ЗАРАБОТАЛА!
Твой первый день на работе самый страшный для уже работающих, потому что это они будут жертвой твоих вопросов, как заставить это работать.
CW>2) Найти "правильное" с точки зрения бизнеса решения.
Раньше было, теперь — нет.
CW>3) Органично вписать новый код в существующую систему.
CW>Максимально полно использовать сущестьвующие паттерн / API.
CW>Сделать свой код "родной" частью существующей системы.
В первый день это почти невыполнимо. Со временем перенимаешь принятые в группе разработки практики работы.
CW>4) Как и в бизнесе, уметь сказать "нет".
CW>(скип)
CW>И шеф "искренне верит в твои навыки".
Бывало, бывает и будет. И не раз. В таком случае говоришь не "нет", а выкатываешь шефу описание ситуации. Что делать дальше — решать ему или заказчику. Падение системы в ситуации "нужно вчера" должно лежать на тех, кому это "нужно вчера", хотя возможно только послезавтра.
CW>5) Некогда думать.
Опять же, это ответственность тех, кто выдвигает требования. Просто заказчик (или шеф) должны быть в курсе, что требуя невозможного, они получат несъедобное. А раз за это отвечаешь не ты, то и проблемой не является.
CW>Кто что-то может добавить?
Описанные тобой проблемы — это не твои проблемы. ИТ (почти всегда) — обслуживающая отрасль, мы делаем что-то для других людей. Если люди готовы рисковать падением системы, требуя сокращения сроков, — ОК, это их бизнес.
Для меня самой большой проблемой является скрутка кучи разных компонентов системы в одну работающую систему. При этом протоколов обмена данными между этими компонентами нет, ты их придумываешь на ходу. Ну, например, у меня сейчас есть клиентское приложение. Работает так. Запускается только окно air и всё, для пользователя это его операционная система, больше ничего нет. Приложение внутри окна AIR должно включать html-веб-морду, флеш-приложение, javascript-код для регулярного опроса сервера (комет юзать нельзя), видео-чат на ffmpeg+vlc+javascipt, аяксовую javascript приблуду для управления vlc — и всё это счастье крутится в ГУИ-окне написанном на Adobe AIR. javascript и flash постоянно обмениваются данными. В фоне крутится пяток демонов: кто для стабильности, кто в ожидании какого-нибудь пакета. И весь этот зоопарк обменивается данными с сервером на .NET, который (аллилуйя) делаю не я. Вот всё то, что я щас описал, это краткое резюме моей реальной работы за последние несколько месяцев. Там же ещё должен был быть red5, но решил выкинуть нафиг.
Правда, в последнее время я только такими задачами и занимаюсь, поэтому вся моя работа — одна большая проблема. Но, чем дальше в лес, тем наглее программисты
CW>Как-то на собеседовании спросили — какие самые сложные проблемы обычно
CW>возникают во время разработки?
Сотрудничество с некомпетентными разработчиками или наследием их трудов
Борьба со средой разработки для меня тоже проблема.
Однако самые большии сложности доставляют ошибки которых нет.
То есть пользователь считает что система работает неправильно. Я ищу ошибку и не могу найти. Приходится искать ее потом на другом уровне — в измерениях, построении системы, взаимодейсвии нескольких программ.
The biggest working problem — это пнуть самого себя посильнее, и начать работать