Здравствуйте, дорогие читатели!

№ 8’2006
Как вы знаете, я всегда стараюсь отвечать на все письма, приходящие ко мне. Кто+то спрашивает, как сделать софт-процессор, кто+то просит исходники проектов. Недавно я получил письмо от Динары, и это, можно сказать, особый случай. Письмо я привожу почти полностью, за исключением фраз, предназначенных лично мне.

Как вы знаете, я всегда стараюсь отвечать на все письма, приходящие ко мне. Кто+то спрашивает, как сделать софт-процессор, кто+то просит исходники проектов. Недавно я получил письмо от Динары, и это, можно сказать, особый случай. Письмо я привожу почти полностью, за исключением фраз, предназначенных лично мне.

Вот это письмо.

Здравствуйте, уважаемый Иосиф Григорьевич!

Я оканчиваю институт (специальность «Вычислительные комплексы, машины, системы и сети»), работаю программистом в сфере встраиваемых систем (информационно-управляющие системы) меньше года. И вопрос мой относится к программированию таких систем, точнее к документации, которая используется и составляется в процессе программирования.

Сегодня широко обсуждается проблема документирования программного обеспечения: от комментирования программ до составления проектной документации. С другой стороны, существует обилие документации по конкретным устройствам, протоколам, архитектурам — это datasheets, user manuals, specifications, application notes. Устраивает ли эта документация программистов? Способствует ли она организации эффективной работы? Вопрос может быть спорным, но я поясню.

В данном случае рассматриваются начинающие программисты. При переходе от проекта к проекту пытаешься делать какие-то наработки, обобщить то, что уже было сделано, с целью использовать повторно, а значит, повысить эффективность работы. Но как только встречается что-то новое, темп работы снижается, и мне кажется вот почему (главным образом). В имеющейся документации по устройству среди множества деталей и мелочей (например, 30 регистров специального назначения в радиомодеме) трудно выделить общее, главное, базовое, чтобы понять, как с этим работать. Ведь всегда проще работать с тем, о чем у тебя есть некое базовое, фундаментальное, понятийное представление, образ. На основе этого представления из документации по конкретному устройству выбирается нужная информация, работа спорится, и нет ошибок из-за непонимания.

Главный вопрос: как формируется это представление? Может, следует помочь этому процессу? Можно сказать, что с годами профессиональный уровень человека растет, человек набирается опыта, учится. Тогда я тороплю события и надо «проработать» эти годы. Либо проблема в образовании, которое я получаю, так как именно образование призвано закладывать эту самую базу. Может быть, ответ таится в моем профессиональном недостатке, ведь люди в мире как-то используют эту уйму документации, программируют, и все нормально. Но я хочу сказать о потребности в языке, на котором была бы составлена некая понятийная база, соединяющая начинающих с опытными людьми. Например, в этой базе может находиться краткое описание таймера, не привязанное к какой-либо архитектуре, аппаратуре, максимально общее, но, в то же время, понятное любому новичку, не работавшему с этим устройством. Есть ли сегодня такое описание? Язык описания текстовый или графический? В конечном счете, существует потребность в языке (термины, определения, понятия) для понимания специалистами друг друга. (При этом, как мне кажется, область встраиваемых систем отличается от области ПК в решении данной проблемы).

Давно сформулированы правила решения задачи: движение от простого к сложному, от общего к частному.

С уважением, Динара. dinara_k@list.ru

Что в этом письме особенного?

Вот смотрите, молодой человек учится и уже работает на предприятии. Причем предприятие выпускает продукцию. И речь в письме идет не только о «железках», софте, но и о документации. То есть предприятие прошло этап «спаяем на коленке кое-как и спихнем». Если речь идет о промышленной разработке документации, значит, на этом предприятии работают люди, которые задумываются о том, как оно будет работать в дальнейшем. И именно эти люди создают предпосылки для того, чтобы молодой инженер задавался вопросом о том, как работать более эффективно. С другой стороны, Динара не находит решения своих проблем там, где она учится. Иначе бы она не стала писать это письмо. Именно поэтому хочется ответить на него как можно более подробно.

Что же касается моего опыта, то я разрабатывал проекты софт-процессоров в FPGA, при этом все процессоры «подгонялись по месту», у них было немного общих частей, поэтому делать что-либо обобщающее в описании не имело смысла. Да и фирмы, в которых мне довелось работать, не были заинтересованы в какой-либо автоматизации труда в этой области. Применялись стандартные описания по ISO9001 и не более.

Поэтому я хочу обратиться к вам, уважаемые читатели. Можно долго дискутировать о том, вымерли ли все разработчики и «наступит ли заря». А вот здесь тот самый случай, когда вы можете помочь коллеге. Да и не одной Динаре такая информация будет полезна. У ADI есть такие брошюрки, под общим заголовком «Инженер — инженеру». Вот и в данном случае, если вы можете, напишите, какие передовые технологии вы используете. Возможно, это будет подробная инструкция или просто адрес в Интернете и краткая характеристика инструмента.

Я надеюсь, что редакция журнала сможет опубликовать ваши ответы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *