Biggest working problems.
От: Chanting Wolf Украина http://www.linkedin.com/in/mykbova
Дата: 30.05.10 09:26
Оценка:
Hi All,

Как-то на собеседовании спросили — какие самые сложные проблемы обычно
возникают во время разработки?
Я тогда как-то съехал, мол "ничего не знаю, всё хорошо".
В общем, было лень думать.

А на досуге задумался об этом.
И вот что получилось (в порядке критичности).

1) Как ни смешно — на первом месте проблемы с enviroment.
Настроить enviroment.
Настроить enviroment при изменении кода.
Настроить enviroment для новой технолгии.
Найти и fix / найти workaround загадочный глюк в enviroment.
Изучение новой технологии.

Вообще, для меня самый — самый страшный день — первый день на работе,
когда удалось добиться, чтобы моя програмка ЗАРАБОТАЛА!

2) Найти "правильное" с точки зрения бизнеса решения.
То есть — немного встать на сторону заказчика.
Пообщаться с BA, SA, опытными в этом бизнесе разработчиками, заказчиками.
Уточнять постановку столько необходимо для её корректной реализации.

3) Органично вписать новый код в существующую систему.
Максимально полно использовать сущестьвующие паттерн / API.
Сделать свой код "родной" частью существующей системы.

4) Как и в бизнесе, уметь сказать "нет".
Прежде всего — себе.
Затем коллегам, заказчику.

Психологически это бывает очень сложно.
Но на мой взгляд — критично.

Имеется в виду случай, когда всё вроде работает.
И возможно, проработает так 1000 лет.
Но вот если в качестве параметра придёт null — всем будет очень плохо (чисто гипотетический
и лишенный физического смысла пример — "no warranty from author").
И ты не можешь это пофикситть один — по логике надо общаться с толпой народа.
А половина народа свалила в отпуск.
А вторая — выйдет на работу только завтра.
А заказчик ждет код уже позавчера.
И шеф "искренне верит в твои навыки".
И премия как-то ну совсем не лишняя...

5) Некогда думать.
То есть, бизнес выдвигает такие сроки, что завтра таой код будет ценен только тебе.
И то, как память.
А решения в общем — то должны быть подуманными.
Ну хоть минимально.
И на сложнве вопросы должны быть найдены вменяемые ответы.
И scalability / сопровошдаемости / простоты отладки вроде никто ещё не отменял.
Но на всё это, извините, нужно ВРЕМЯ.
Вот потом и получается — а с какой радости хорошие программисты
пишут такой не кошерный код?

Итак, вопросы.
Кто с чем согласен-не согласен.
Кто что-то может добавить?

Thanks.
skype: mykola_bova
Re: Biggest working problems.
От: Панда Россия  
Дата: 30.05.10 09:50
Оценка: 3 (1)
Здравствуйте, Chanting Wolf, Вы писали:

CW>1) Как ни смешно — на первом месте проблемы с enviroment.


У меня тоже, как у человека с сисадминским кретинизмом в ярко выраженной форме, самое сложное — это установить все необходимое, настроить, заставить в первый раз все заработать. У меня есть талант: даже если у инсталлятора какой-то программы единственная кнопка с надписью "установить", я все равно сумею установить ее криво.

И второе самое сложное — когда начинают постоянно дергать параллельно по нескольким задачам, не давая полностью уйти в какую-то одну. Бывают такие дни, когда каждые полчаса кто-нибудь приходит то обсудить что-то, то баг показать, то новую задачу дать, то о старой напомнить. В такие дни продуктивность падает ниже плинтуса.
Re: Biggest working problems.
От: monax  
Дата: 30.05.10 11:27
Оценка: 5 (2)
Здравствуйте, 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, но решил выкинуть нафиг.

Правда, в последнее время я только такими задачами и занимаюсь, поэтому вся моя работа — одна большая проблема. Но, чем дальше в лес, тем наглее программисты
Re: Biggest working problems.
От: _Obelisk_ Россия http://www.ibm.com
Дата: 31.05.10 10:02
Оценка:
Здравствуйте, Chanting Wolf, Вы писали:

CW>Hi All,


CW>Как-то на собеседовании спросили — какие самые сложные проблемы обычно

CW>возникают во время разработки?
CW>Я тогда как-то съехал, мол "ничего не знаю, всё хорошо".
CW>В общем, было лень думать.

Самая сложная проблема — избежать регрессий у кастомеров. Чтоб от очередной новой фичи или фикса бага у них все не полетело.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re: Biggest working problems.
От: strcpy Россия  
Дата: 07.06.10 13:33
Оценка:
CW>Как-то на собеседовании спросили — какие самые сложные проблемы обычно
CW>возникают во время разработки?

Сотрудничество с некомпетентными разработчиками или наследием их трудов
Удвой число ошибок, если не получается добиться цели.
Re: Biggest working problems.
От: net31  
Дата: 09.06.10 08:14
Оценка: 3 (1)
Борьба со средой разработки для меня тоже проблема.

Однако самые большии сложности доставляют ошибки которых нет.

То есть пользователь считает что система работает неправильно. Я ищу ошибку и не могу найти. Приходится искать ее потом на другом уровне — в измерениях, построении системы, взаимодейсвии нескольких программ.
Re: Biggest working problems.
От: k-pax  
Дата: 09.06.10 15:31
Оценка:
The biggest working problem — это пнуть самого себя посильнее, и начать работать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.