Перейти к публикации

Срок готовности программы


Рекомендованные сообщения

Ситуация взята из жизни.

Есть чётко сформулированное ТЗ и есть программист - подрядчик.

Когда ставилась задача спросили его самого:

-за месяц справишься?

-справлюсь.

Прошёл месяц, второй, третий разменяли... а программа так и болтается в виде сырого полуфабриката и не видать конца-края этой вроде бы отладке. Понятное дело, что в том конкретном случае имели место вполне объективные причины провала, но корень их всех сидел в классическом вопросе:

как правильно назначить программисту срок сдачи готовой программы?

P.S. Этот же вопрос задал другому программисту, а она в ответ говорит примерно таковы слова:

начну программировать сегодня то, что должно быть готово завтра.

:g:
Ссылка на сообщение
Поделиться на других сайтах


Когда ставилась задача спросили его самого:

Начинать надо было с выяснения того какие программы, в какие сроки и с каким интерфейсом и прочей икебаной делал ранее этот программист. Остальное — в разряде хотелок, про которые золотые слова сказал ещё В.С. Черномырдин.
Ссылка на сообщение
Поделиться на других сайтах

Начинать надо было с выяснения того какие программы, в какие сроки и с каким интерфейсом и прочей икебаной делал ранее этот программист.

Делал и похожие, и совсем не похожие, и простые, и сложные. Сроки тоже вроде как не срывал. Вопрос состоит в том, что надо как можно точнее спрогнозировать возможные объёмы дабы в рабочей неделе одного программиста не оказалось 170 часов, хотя бы он и пяткой в грудь себя со звоном ударял заявляя:

начатых мною программ никому не передам!

Ссылка на сообщение
Поделиться на других сайтах

Чем более подробно написано ТЗ, тем меньше разработчику придется думать и тем больше ему придется заниматься именно написанием кода и его отладкой.

Соответственно, чем более опытный разработчик, тем он сам более способен оценить трудозатраты.

Поэтому, после получения ТЗ, он должен составить план работ.

Ты должен вникнуть в план и в то, что он хочет сделать.

Если кодер очень старательный и страдает перфекционизмом, то нужно кастрировать его план, чтобы в первую очередь реализовывались самые основные вещи, а лоск будет наводить потом.

Еще очень важный момент, расставить даты и временные интервалы, когда он будет работать только по твоей теме, и когда будут завершены каждый из пунктов плана.

По мере прохождения контрольных этапов тебе станет ясно - успевает он или нет. Если нет, то копай причины - раздолбай; слишком загружен; не компетентен.

НАйдя причину разбирайся с ней - пугай; предлагай премию; ищи другого.

К сожалению, в данном ремесле все очень сильно зависит от человека.

Ты можешь рисовать сколь угодно продвинутые планы в своей голове, но все они разобьются об него, если он балбес.

Ссылка на сообщение
Поделиться на других сайтах

Чем более подробно написано ТЗ, тем меньше разработчику придется думать и тем больше ему придется заниматься именно написанием кода и его отладкой.

Соответственно, чем более опытный разработчик, тем он сам более способен оценить трудозатраты.

Иначе сказать, для этого непременно нужно и самому быть классным программистом?

Тут сидит засада - программист не знает специфики поля применения создавемой программы, а постановщик задачи не настолько искушён в тонкостях программирования, чтобы профессиональный программёр не возмог водить его за нос, при желании.

ИМХО, в рассматриваемом примере ТЗ было написано достаточно подробно, вплоть до пошагового раскрытия каждой процедуры и ожидаемого вида интерфейса... но этого оказалось недостаточно.

Поэтому, после получения ТЗ, он должен составить план работ.

Ты должен вникнуть в план и в то, что он хочет сделать.

Если кодер очень старательный и страдает перфекционизмом, то нужно кастрировать его план, чтобы в первую очередь реализовывались самые основные вещи, а лоск будет наводить потом.

Еще очень важный момент, расставить даты и временные интервалы, когда он будет работать только по твоей теме, и когда будут завершены каждый из пунктов плана.

По мере прохождения контрольных этапов тебе станет ясно - успевает он или нет. Если нет, то копай причины - раздолбай; слишком загружен; не компетентен.

НАйдя причину разбирайся с ней - пугай; предлагай премию; ищи другого.

Изначально и была выделн некий набор упрощенных базовых процедур и даже одна самая ходовая из них, но только на уровне алгоритма, без привязки к возможным

13 if (A<N) go to 14

14 DO 15 (i=1,1000000000)

15 CALL SABOTASHE

STOP

END

С проектированием железок проще, обладая некоторой статистикой можно спрогнозировать приблизительный объём КД в листах формата А4 и поставить обоснованные сроки исходя из наличия да квалификации кадров.

По мере продвижения документации по инстанции можно отследить какие именно звенья вызывают наибольшее торможение и изменения от начального варианта (например: "т.контр." нагло пытается внести в КД технологические требования, либо "пров."/"н.контр." добивается переупорядочивания видов/позиций в угоду собственному эстетическому чуйству).

С CAD-моделями уже сложнее, а ведь это тоже своего рода язык программирования! Иногда поражаешься как легко и просто опытный конструктор с большими навыками работы в системе решает задачи, о которые сломало все свои вумные головы не одно, и даже не два предприятия. Однако такого парня не посадишь проверять ВСЕ модели завода или КБ, разве что пусть он сформулирует принципы и алгоритмы оценки качества, а профессиональные программисты реализуют плагинчик.

Но какие могут быть применены критерии для определения обоснованности срока выпуска программы на языке высокого уровня?

Ссылка на сообщение
Поделиться на других сайтах

Иначе сказать, для этого непременно нужно и самому быть классным программистом?

Нет.

Тут сидит засада - программист не знает специфики поля применения создавемой программы, а постановщик задачи не настолько искушён в тонкостях программирования, чтобы профессиональный программёр не возмог водить его за нос, при желании.

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

ПОэтому и важно расписать блок-схему основных модулей программы на уровне ее структуры, рабочую цепочку движения информации, протоколы обмена и прочее. Чтобы это сделать не нужно знать программирование, нужно знать Ворд и просто логически мыслить. Именно эти вещи и должны быть заложены в ТЗ.

Именно твою логику процесса и будет реализовывать кодер.

РАсписать интерфейс очень важно, т.к. это может сильно повлиять на код и его устройство.

Почему важно структуру описать и обмен данными внутри этой структуры? Потому что тогда каждый такой кусок кода можно будет писать и отдавать на тестирование.

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

Ну а также ты видишь реально степень готовности твоего будущего приложения. Потом начнете по кускам сшивать блоки и тестировать уже в комплексе.

ИМХО, в рассматриваемом примере ТЗ было написано достаточно подробно, вплоть до пошагового раскрытия каждой процедуры и ожидаемого вида интерфейса... но этого оказалось недостаточно.

Если, как ты утверждаешь, ТЗ было полным, а оно все равно никак, то значит проблема в человеке. Видимо он отдает свое время чему-то еще. МОжет быть халтуре.

Но какие могут быть применены критерии для определения обоснованности срока выпуска программы на языке высокого уровня?

ПРограмма должна работать. А если формально:

1. Выполненная работа должна соответствовать ТЗ.

2. Должен быть пройден набор тестов - автоматическая система тестирования или сам сидишь и как папа Карло тычешь в экран отрабатывая все возможные комбинации.

3. Программа должна быть протестирована заказчиком, составлен акт недоработок.

Ссылка на сообщение
Поделиться на других сайтах

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

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

В проектировании железяк это выглядит так:

функциональная схема -> общая компоновка -> электрическая принципиальная схема.

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

дурь каждого становится видна.

Почему важно структуру описать и обмен данными внутри этой структуры? Потому что тогда каждый такой кусок кода можно будет писать и отдавать на тестирование.

Повторюсь: свою структуру тебе нужно разложить в последовательность - что реализовывать в первую очередь, что реализовывать потом. На каком этапе можно будет проверить функциональность.

Совершенно верно, в производстве изделий работают теже принципы и чем грамотнее общее разложено на сборки - подсборки тем меньше получается всякого рода "броуновского движения" на всех этапах ЖЦИ. Однако "подводный камень" есть и тут:

-теоретику нужно во что бы то ни стало подтвердить преимущество своего решения над оптимальным;

-технологу хочется чтобы КД была настолько сильно адаптированна к конкретному производству, чтоб даже не требовалось писать техпроцесс;

-снабженцу/комплектаторщику надо чтобы всё делалось ни из чего иного, как из того что уже имеется на складе;

-схемотехник... тому зачастую вообще

что бы ни делать, только бы ничего не делать

- и т.п.

В общем:

коси и забивай!

Бороться с этим вредительством со стороны служб предприятия может и должен (!) менегер, но уровень его компетентности в технических вопросах, как правило, находится ниже плинтуса, а посему и вся эта братия очень легко обводит его вокруг пальца + делится уворованным. :thumbdown:

В связке постановщик - кодер очевидно должны будут иметь место подобные же казусы. Например: программисту нравится FORTRAN, а оптимальным языком для этой задачи являлся бы С++, то бишь в программе получится 1500 строчек вместо потребной 1000, со всеми отсюда вытекающими проблемами при отладке и в количестве пользовательских диалогов. Но как не будучи классным программистом отловить сие безобразие на раннем этапе?

Если, как ты утверждаешь, ТЗ было полным, а оно все равно никак, то значит проблема в человеке. Видимо он отдает свое время чему-то еще. МОжет быть халтуре.

Видимо по ходу дела так оно и было, только врядли можно вести речь о халтуре. Скорее всего опять всё упёрлось в управление, так сказать классическое:

спячка -> раскачка -> горячка -> наказание невиновных -> награждение непричастных

1. Выполненная работа должна соответствовать ТЗ.

2. Должен быть пройден набор тестов - автоматическая система тестирования или сам сидишь и как папа Карло тычешь в экран отрабатывая все возможные комбинации.

3. Программа должна быть протестирована заказчиком, составлен акт недоработок.

Хм... действительно, работать на доверительном уровне ныне уже нельзя. Приму к сведению.

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

В проектировании железяк это выглядит так:

Это монопенисуально во всех отраслях, где идет разработка силами белых и прочих обезьян:

абстракция

декомпозиция

итерация

или говоря по китайски - разделяй и властвуй.

Бороться с этим вредительством со стороны служб предприятия может и должен (!) менегер, но уровень его компетентности в технических вопросах, как правило, находится ниже плинтуса, а посему и вся эта братия очень легко обводит его вокруг пальца + делится уворованным. :thumbdown:

Тут все довольно таки банально.

Составляется структура работы вашего организма - предприятия, процесса разработки или чего угодно.

На входе ты имеешь материалы, время и деньги, а на выходе трату материалов, времени, денег и получаемое качество на единицу продукции.

Потом начинаешь изыскивать меры по снижению издержек на всех этапах. МОжно начать с понятных тебе этапов.

Если твои кренделя не способны придумать ничего в силу корумпированности или некомпетентности, то либо нанимаешь к себе в помощь новичка после ВУЗа, с горящими глазами и он еще не будучи задействованным в гнилой системе начинает рыть землю руками.

Или привлекаешь внешних аудиторов.

В связке постановщик - кодер очевидно должны будут иметь место подобные же казусы. Например: программисту нравится FORTRAN, а оптимальным языком для этой задачи являлся бы С++, то бишь в программе получится 1500 строчек вместо потребной 1000, со всеми отсюда вытекающими проблемами при отладке и в количестве пользовательских диалогов. Но как не будучи классным программистом отловить сие безобразие на раннем этапе?

Это все фигня. C++ не самоцель и ФОРТРАН тоже нормальный язык.

Это все критично, если тебе придется передавать код другому разработчику или привлекать дополнительных кодеров. Вот тут может встать вопрос совместимости и денег.

Написать прожку в Дельфи или VisualC или VisualBasic будет стоить разных денег и поиск кодера может занять больше времени.

Если приводить аналогию, то по большому счету SolidWOrks и Inventor близнецы братья.

Критично в этой ситуации как ты будешь работать со смежниками, т.е. вопрос совместимости данных.

Хм... действительно, работать на доверительном уровне ныне уже нельзя. Приму к сведению.

Спасибо.

Не за что.

Помни, что именно по этой причине и появились вские PLM за(мо/д)рочки - начальник хочет чтобы его владения были для него понятны.

ЧТобы было понятно кто что делает и куда бабки уходят и время.

Старайся вникать во все сам по мере возможностей.

Там гед тебе уже непонятно выдвигай такие контрольные критерии, чтобы было все ясно.

Ссылка на сообщение
Поделиться на других сайтах

Помни, что именно по этой причине и появились вские PLM за(мо/д)рочки - начальник хочет чтобы его владения были для него понятны.

ЧТобы было понятно кто что делает и куда бабки уходят и время.

Хм, весьма полезный постулат, жаль только его не часто озвучивают в литературе и тырнете, наипаче же скромничают продавцы Workflow и PDM и именно перед менегментом. :wink:

Старайся вникать во все сам по мере возможностей.

Там гед тебе уже непонятно выдвигай такие контрольные критерии, чтобы было все ясно.

В следующий раз так и наверно поступлю, а в данном конкретном примере похоже уже всё ясно. :glare:

Интересно, что по среднестатистическим подходам следует делать с личностями, которые совсем некомпетентны в теме создаваемой программы и даже не отдают себе отчёта в тяжести последствий провала, но имеют полулегальную возможность подгружать кодера другими работами? А с кодером, что так охотно ведётся на эти штучки?

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...
Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Anat2015
      Лапша на уши. Просто им не хочется настраивать, а тупо перенести параметры. За такую работу им и соответственно платить надо, по миниму.
    • maxx2000
      логика диктует что это 80% от максимального просвета, т.е. 0,8 от Кмах.
    • DuS
      поищите в справке или на ютубе граничная рамка.
    • plm-ural
      О вебинаре Уважаемые коллеги! Приглашаем Вас на вебинар, посвященный обзору возможностей программы Логос Прочность. Это высокоточный отечественный инструмент для численного решения широкого спектра задач статического и динамического упругопластического деформирования и разрушения конструкций, а также вибрационного анализа и широкополосной случайной вибрации при проектировании высокотехнологичных промышленных изделий.   Дата проведения: 24 апреля 2024 12:00 (МСК)   Регистрация на вебинар   Программа вебинара:   1.    Общая характеристика решения Логос Прочность 2.    Перечень основных решаемых задач (статические расчеты прочности, вибрационный динамический анализ, динамические расчеты во временной области) 3.    Демонстрация решения задач     Логос Прочность обладает достаточно удобным пре/постпроцессором, позволяющим корректировать и создавать геометрию, строить сетку конечных элементов, формировать необходимые условия задачи, а также производить обработку результатов. Решение разрабатывается с учетом требований отечественных предприятий для решения реальных задач в различных отраслях промышленности, включая обычные вооружения, атомную энергетику, авиастроение, транспортное и военное машиностроение и многие другие.   Вебинар будет интересен специалистам, занимающимся прочностными расчетами.   Спикер  — Сергей Хрулев, руководитель бригады прочности ГК «ПЛМ Урал».   Участие в вебинаре бесплатное. Необходима регистрация. Если по каким-либо причинам у вас не получится присоединиться к вебинару, мы обязательно отправим видеозапись при условии пройденной регистрации. Направляйте свои вопросы и пожелания на почту info@plm-ural.ru. Будем рады видеть Вас в качестве участников!   Регистрация на вебинар  
    • plm-ural
      О вебинаре Приглашаем Вас на вебинар, посвященный сравнительному анализу российской системы компьютерного моделирования литейных процессов ПолигонСофт и ПО ProCAST от ESI Group. Сравнение систем будет проведено на примере решения актуальной задачи литья лопатки для газотурбинных двигателей. Дата проведения: 25 апреля 2024 12:00 (МСК)   Регистрация на вебинар   Программа вебинара:   сравнение решаемых задач; сравнение возможностей ПО в плане подготовки расчетной модели; сравнение постановки задачи; сравнение и анализ полученных результатов и т.д.  ответы на вопросы.   Сравнение систем будет проведено на примере решения актуальной задачи литья лопатки для газотурбинных двигателей. Лопатки для двигателестроения являются одними из самых сложных в технологическом плане отливок и, в то же время, одними из самых ответственных деталей в агрегате. К ним предъявляются высокие требования к качеству (наличие дефектов и структура зерна), так как отливки работают в тяжелых эксплуатационных условиях.  Для их изготовления применяются дорогостоящие сплавы и, следовательно, получение не качественной отливки обходится предприятиям очень дорого как в материальном плане, так и в плане репутации.    Компьютерное моделирование изготовления таких отливок поможет избежать грубых ошибок в технологии на этапе разработки, снизить себестоимость изделия за счет минимизации брака и сократить время запуска технологии в производство.   Ведущий: Максим Ведерников, инженер технической поддержки ГК "ПЛМ Урал".   Участие в вебинаре бесплатное. Необходима регистрация. Если по каким-либо причинам у вас не получится присоединиться к вебинару, мы обязательно отправим видеозапись при условии пройденной регистрации. Направляйте свои вопросы и пожелания на почту info@plm-ural.ru.   Будем рады видеть Вас в качестве участников!   Регистрация на вебинар
    • ZVUM
      Здравствуйте, помогите пожалуйста с советом.. Хочу упростить работу в спецификациях убрав функцию прописывания размеров деталей. Что я хочу? А именно, сделать шаблон детали, чтобы при создании детали и моделировании чего-либо, не важно - бобышкой или гнутые, хочу чтобы в примечаниях автоматически указывались габаритные размеры "Длина" "Ширина" "Толщина", возможно ли как-то в переменных вписать определение размера и чтобы прописывались в суммарной информации? По типу 'RD1@Примечания@Деталь.moPart_c'. Спасибо!
    • Killerchik
      Эх, текстовый файл, я тогда так не умел :( Нет, измерял по одной точке и фоткал с экрана соответствующие переменные #1хх. Сейчас бы конечно применил команду dprnt или как там её, для записи результатов в файл на стойке. Единственно что, последний раз когда надо было обмерить какой-то кривой ужас, писал точки в переменные #600-#999 и потом фоткал все разом с экрана. Хотя бы УП измерения была одна единая.
    • Kosi27
      Здравствуйте! При попытке выполнить программу фрезерования на токарно-фрезерном станке возникает ошибка при моделировании #61102 "Направление шпинделя не запрограммировано". Обнаружил, что меню выбора направления обработки урезано, вместо "торец C, Бок.пов С, Торец Y, Бок.пов Y" есть только пункт "Торец, Бок.пов".   Фото меню моделирования с ошибкой  Фото меню со стойки машины Скриншот меню из sinutrain   Приводные блоки через меню TSM запускаются.  Машина Headman T65M/750, стойка Siemens 828D.  Подскажите пожалуйста, кто сталкивался с такой проблемой и как её решить? Поставщик оборудования очень тяжело идет на контакт, а инструменты неосевой обработки необходимы как никогда. HELP:(
    • Говорящий Огурец
      Лучше, чем это сделал OpenMind, у меня вряд ли получится :) Полно инфы как в текстовом формате, так и видосов на Трубе
    • ak762
      @Killerchik а как вы точки касания в текстовый файл записывали, руками с экрана или использовали станочную команду?
×
×
  • Создать...