Другие языки программирования и технологии

Какие задачи решают программисты на практике?

Интересует именно конкретно - что делают. Просто интересно, как действительно идет работа, на что действительно идут минуты и часы рабочего времени.
Ну например, "У меня была задача написать систему авторизации пользователей / работу с БД / программу для %цель%, etc.
Для этого я сделал гуй на %технология%, создать такие-то классы ...в итоге получилось библиотка .dll / такая-то программа / %результат%"

В общем, я плохо себе представляю реальные задачи, встающие в реальной работе. Просто интересно узнать все в подробностях.
Была задача написать систему для работы с купюроприёмником и принтером чеков для платёжных систем.
Для этого пришлось:
Встреча с "заказчиком" и обсуждение - 2 часа
Поставка оборудования - 1 час
Чтение документации, протоколов обмена данными с купюроприёмником - 2 часа + отметки что важно что нет
Чтение документации, протоколов обмена данными с принтером - 1 час.
Первоначальные настройки программ для перехвата данных с COM порта, тестирование команд встроенными утилитами 2 часа.
Выбор языка и платформы (Решено C#, кроссплатформенный "сервер" NET/Mono (Windows/Linux/MacOS)), установка MonoDevelop на Linux.
Наброски примитивного консольного приложения - 3часа - 1 день
(часть получилась сразу, часть нет) для работы с купюроприёмником
Наброски примтивного консольного приложения для работы с принтером - 1 день (были проблемы с документацией)
Оформление в виде абстрактных классов с последующими наследованиями, проработка логики - 1 день.
Написание основы TCP/IP сервера с множественными подключениями и многопоточностью - 1 день
Написание более серьёзного приложения на основе черновиков - 4 дня.
Изменения, тестирование, проработка систем команд-ответов, согласование протоколов с требованиями "заказчика", исправление недочётов, исправление проблем совместимости NET<->Mono - 2 недели.
В итоге получился кроссплатформенный "сервер" который принимал команды по TCP/IP и с управлением хоть по telnet, и управлял принтером и купюроприёмником, с ведением логов, подсчётом купюр и т. д.

P.S: Исключены по времени промежуточные встречи и разговоры с заказчиком. Н-р "пойдём посидим обсудим в кафешке" =)
Артём Шмилик
Артём Шмилик
84 764
Лучший ответ
Где пожрать...