|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Скажем - группой 10 программистов. Считаем что: 1. Что количество программистов адекватно задаче. (+/-) 2. Что пользовательские истории зафиксированы. Чего хочется: Предсказуемость разработки. Оценка состояния проекта, в идеале с шагом в день. Возможность быстро спуститься к самым мелким деталям и оценить их соответствие проектной документации. Ну, проектной документации - громко сказано. Что имеем: Первоначальное описание решения - является неким упражнением для писательского таланта. Ценность теряет ОЧЕНЬ быстро, потому что разработка очень быстро идет в сторону. Зачастую из-за: 1. Пользователи говорят одно, думают другое, а нужно третье. 2. Архитектор перемудрил и решил сделать космолет, который должен рыть бассейны в условиях сверхгравитации и нехватки естественных осадков. 3. Программист неправильно понял, что нужно сделать - и убил три дня на неприменимую ерунду. 4. Программист решил написать свой мега-фреймворк, на который убил 95% времени, результата не достигнув. Вопросы: 1. Каким образом получить исчерпывающее описание проекта, которое не придется выбрасывать в мусорку через месяц? 2. Каким образом технически запретить уходить в сторону? Штуки типа WWF? Быстрые прототипы? Лично я склоняюсь к прототипам. Теперь к коду. Следующая проблема - в системах типа 1С - любой программист имеет доступ к любой части кода. Сам себе архитектор. Когда их 10 человек - уследить за всеми нереально и трешовый код/решения потихоньку берут верх. В .NET/JAVA я представляю что можно сделать - закрыть сборку с моделями и создать нужные интерфейсы, которые потом последовательно реализовывать, но что делать в той же 1С?? В 1С один кодер намутит треш, другой нагородит зауми, пытаясь сделать универсальную приладу, которая нужна всем (никому). Иными словами - какой процесс обеспечит: 1. Разумное количество слоев управления разработкой (истории, требования,UI ,код ) 2. Качество артефактов каждого слоя. Оно должно быть таким, чтобы с каждым низлежащим слоем мог работать специалист, не вовлеченный в этот проект прежде. 3. Каждый артефакт должен быть валидным и не противоречивым! Код понятно - он хотя бы должен работать, а как быть с описанием какого-то процесса?? Как убедиться, что процесс выдает ровно тот результат, который сможет принять на входе следующий процесс? Нужны четкие тиски, но какие тиски у Вордовского документа? Бумага всё стерпит. Нужно качество превратить в количество. Читаю истории, в которых над проектами трудятся люди из разных стран и часовых поясов - как их координировать? Тогда как собственные сотрудники без стояния за спиной сразу же стремятся расползтись в стороны. Как это может выглядеть? 1С case Обычно есть система, которая уже живет несколько лет. Технологии ушли вперед, груз существующих проблем стопорит бизнес-процессы. Все в депрессии. Принято решение переписать всё нафиг на современных технологиях. (Тут всё начинается). Бесконечные совещания, на которых пользователи разных рангов рассказывают о своих фантазиях. Всё, что снилось - всё вываливают. Объяснения куцые, пальцы показывают замысловатые фигуры. Составляется описание нового решения, страниц так на сто. Несмотря на картинки - его никто не читает, и также никто возражений не имеет. Начинается разработка. По грубой оценке - к оценке привлекаются n-программистов. Начинается разработка. Появляются первые результаты. Первые показы. Пользователи в недоумении - нужно же было по другому. Начинаются переделки/доработки, причем каждый программист делает это "втихую", потому как так сказала Лена-менеджер. Ну и в итоге разработка приобретает хаотичный характер. Не думаю, что в случае технологий вида JAVA/.NET картина принципиально другая. Единственно - больше времени нужно потратить на проектирование интерфейсов, но и программист-кодер в сторону не уйдёт. Что НЕ хотелось бы тут обсуждать: 1. UI 2. UX 3. Назначенным со стороны клиента менеджерам - плевать на внедрение. 4. Назначенные со стороны клиента менеджеры - некомпетентны. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 04:19 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatique, Правильное ТЗ - это уже половина успеха. Так что начинайте с ТЗ. Ну а кодить по подробному ТЗ - много ума не нужно. Если кто-то с этим не справляется - меняйте, т.к. незаменимых людей нет. Поэтому делайте запас в 20% времени на подобные ситуации и у вас все получится. Читаю истории, в которых над проектами трудятся люди из разных стран и часовых поясов - как их координировать? Тогда как собственные сотрудники без стояния за спиной сразу же стремятся расползтись в стороны. Ну тут проблема либо в исполнителе, либо в ПМ. В любом случае никто кроме вас вам не поможет. У нас есть четкие требования к коду. Если излишне комментируешь - не проблема, значит программист решил что без этого сторонний читатель не поймет кода либо сути задачи по коду. А вот если комментарии отсутствуют, либо тестер не может понять - вам вернут на доработку. Если не уложились в срок (с учетом доработок) - не то что денег не получите, но еще с вас и снимут. Знаете, удар по кошельку чувствуется сильнее чем удар по печени. Так что пользуйте этот подход и эволюция пойдет по указанному вами пути. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 09:55 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatique, Вы хотите "серебряную пулю". Ее не существует! А так: 1) Никак. Не надо боятся "выкинуть все в мусор". 2) Никаких "технических" способов не существует. Только "административные", каждое изменение должно быть зафиксировано и для него должно быть зарезервировано время. Никаких "тут делов на 5 минут". А так близко у идеалу это Agile, но тут проблема в самодисциплине команды. Т.е. дисциплина и мотивация должна поддерживаться самой командой. Это сложно, т.к. "ёжик птица гордая, пока не пнешь не полетит" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 10:00 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Невозможно контролировать всё и вся в одиночку. Напакостить могут всегда, а вылезет это в самый неподходящий момент. Необходимо разделять между коллегам не только функции, но и ответственность, и улучшать взаимодействие между ними. Если архитектор перемудрил, а программист решил написать свое - зачем Вы наняли архитектора, решениям которого не доверяете, да и каждый программисты у Вас может что угодно, свою систему с нуля написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 10:16 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
sereginsereginЕсли архитектор перемудрил, а программист решил написать свое - зачем Вы наняли архитектора, решениям которого не доверяете, да и каждый программисты у Вас может что угодно, свою систему с нуля написать. если архитектор типа перемудрил, а программист не понимая написал свое, то избавьтесь от программиста, который не слушает архитектора. Большое число программистов нужно уже тогда, когда ядро проекта работает в принципе, для облагораживания. Но не на начальном этапе ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 12:47 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Хочется конкретики. Неужели вы начинаете проектировать на основании 100-страничного вордовского документа с невнятным мычанием? Или вы трансформируете мычание в функциональные требования? Юзеры эти требования читают? Как вы добиваетесь непротиворечивости требований? Сложно объяснить юзеру, что (грубо говоря) видеть ОСВ с немедленным автоматическим обновлением и при этом находясь в форме объекта "поступление товаров" - бред собачачий. Какие артефакты у вас на выходе с каждого уровня? Как вы описываете будущую систему на основнии ФТ? Насколько однозначно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 12:49 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
MonochromatiqueХочется конкретики. Неужели вы начинаете проектировать на основании 100-страничного вордовского документа с невнятным мычанием? к примеру, я начинаю проектировать с декомпозиции задачи и разложения какого-то "100-страничного вордовского документа" (правда этой ненужной субстанции обычно нет) на конкретные сервисы. Далее программист реализует эти сервисы в реальности, пусть не так "красочно" как требует релиз, но в работоспособном, хотя бы для проверки архитектуры виде. А уже далее все отдается команде программистов-кодировочников, которые наводят лоск. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:01 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
iscrafm когда ядро проекта работает в принципе Кстати, отлично что всплыло "ядро". А что под ним понимается? Конфигуратор типа 1С? Или некий движок предметной области? И как объяснить заказчику, что ему нужно некое "ядро", ведь какого-то результата он не увидит в течении долгого времени - какой тут agile? iscrafm то избавьтесь от программиста, который не слушает архитектора. case - убираем одного, на его месте появляется другой - очень дорогой. Ну или я предъявляю какие-то сверх-требования к программистам, требуя от них явно больше их обычных компетенций. На собеседования приходит ТАКОЕ, что становится обидно за профессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:03 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatique, какая-то у вас не "группа программистов", а непонятное сборище. руководство полностью отсутствует. как программист может делать непонятно что хрен знает сколько времени? он что, "сам по себе, свой собственный"? толпа фрилансеров у вас или одна группа с одной целью? аналитик отсутствует. требования не фиксируются. они выявляются. фиксируется пользовательский поток хотелок. там нет требований. там есть неформализованный набор истерик, обвинений, не имеющих никакого отношения к реальным потребностям фантазий. это работа аналитика _выявлять_ требования. авторПользователи говорят одно, думают другое, а нужно третье. естественно. это данность, с этим нужно работать. они в этом не виноваты, виноваты некомпетентные аналитики, PM'ы, руководители разработки. автор2. Архитектор перемудрил и решил сделать космолет, который должен рыть бассейны в условиях сверхгравитации и нехватки естественных осадков. 3. Программист неправильно понял, что нужно сделать - и убил три дня на неприменимую ерунду. 4. Программист решил написать свой мега-фреймворк, на который убил 95% времени, результата не достигнув. отсутствует руководитель, наняты непонятно кто, отсутствует руководитель, нет абсолютно никакой экспертизы, нет обмена знаний и критики, полная безответственность руководителя. "архитектор" не имеет опыта, не имеет полномочий или не хочет их осуществлять. как программист мог потратить черт знает сколько времени и налабать фреймворк? при том что есть руководитель? при том что есть архитектор? при том что есть сроки у задач? никого из них нет - единственный вывод. автор1. Каким образом получить исчерпывающее описание проекта, которое не придется выбрасывать в мусорку через месяц? это что? "заказчики, дайте мне всё"? а какие такие требования не подвержены изменений? что за глупости и наивняк? автор2. Каким образом технически запретить уходить в сторону? Штуки типа WWF? Быстрые прототипы? Лично я склоняюсь к прототипам. вы скорее всего один из тех "программистов", которые черт знает чем занимаются, у которых виноваты заказчики и пользователи, а они хоте ли бы "полное описание и чтобы оно не менялось", "чтобы сразу сказали что делать и что не делать, а то я же просто программист, а же могу начать делать фреймворк, а задачу могу так и не начать делать" авторСледующая проблема - в системах типа 1С - любой программист имеет доступ к любой части кода. Сам себе архитектор. Когда их 10 человек - уследить за всеми нереально и трешовый код/решения потихоньку берут верх. что за любая часть кода? как это невозможно уследить? вас там на самом деле двое и у каждого своя папочка с копией проекта? автор1. Разумное количество слоев управления разработкой (истории, требования,UI ,код ) 2. Качество артефактов каждого слоя. Оно должно быть таким, чтобы с каждым низлежащим слоем мог работать специалист, не вовлеченный в этот проект прежде. 3. Каждый артефакт должен быть валидным и не противоречивым! Код понятно - он хотя бы должен работать, а как быть с описанием какого-то процесса?? Как убедиться, что процесс выдает ровно тот результат, который сможет принять на входе следующий процесс? Нужны четкие тиски, но какие тиски у Вордовского документа? Бумага всё стерпит. продолжение наивняка человека, не имеющего никакого отношения к организации процессов, к руководству группой. продолжение попыток обвинить всех вокруг, объяснить "им всем", что "они все" сделали неправильно. ведь именно поэтому он сделал то что сделал. потратил время на то, что потратил. а вы не уследили! не предусмотрели! не ввели рамок! не стояли за спиной! дали доступ! верили что я занимаюсь тем чем надо! а пользователи тупые! тз устарело! я узнал об этом когда сказали пользователи! аналитику я ничего не сказал, не сказал руководителю, не сказал архитектору, решил делать фреймворк! в этом во всем виноваты "вы все"! где метрика, позволяющая отследить, что мой процесс идет к тому, чтобы выдать нужный результат? вот! а как я должен по вашему узнать что это так или не так? вот и все! это все вы! Проказница-Мартышка, Осел, Козел да косолапый Мишка затеяли создать ПО... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:05 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Хвост, залогинься. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:16 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatiqueiscrafm когда ядро проекта работает в принципе Кстати, отлично что всплыло "ядро". А что под ним понимается? Конфигуратор типа 1С? зачем конфигуратор, если система не требует такого конфигурирования, к примеру. Это основа, которую уже можно расширять вширь, а не в глубину, образно MonochromatiqueНу или я предъявляю какие-то сверх-требования к программистам, требуя от них явно больше их обычных компетенций. разделяй требования к программистам и требования к кодировщикам. Все же это разные люди ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:26 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatique, Да, пошел поток сознания от вас ... Может нужно начать с того что озвучить свое место в проекте? А то становится все страшнее и страшнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:27 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
[quote смотрите кого нанимаете]Мутный поток сознания[/смотрите кого нанимаете] Ну, кнопок ты понажимал нормально, но смысла в этом - зеро. Конкретики ноль, и ты знаешь почему. Зачем ты парился - мне непонятно. Объяснишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:28 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Злой БобрМожет нужно начать с того что озвучить свое место в проекте? справедливое замечание. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:32 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Злой БобрMonochromatique, Да, пошел поток сознания от вас ... Может нужно начать с того что озвучить свое место в проекте? А то становится все страшнее и страшнее. А как поменяется ваш мессадж от моего ответа? Вся эта муть типа "ответственность, экспертиза, руководитель" в зубах уже вязнет и практического смысла не несет. ЧЕТЧЕ! Легко работать с классными парнями. Только на всех их не хватит. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:35 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
iscrafmЗлой БобрМожет нужно начать с того что озвучить свое место в проекте? справедливое замечание. А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:37 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatiqueiscrafmпропущено... справедливое замечание. А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. Как от моего места поменяется набор артефактов на неком уровне разработки ПО? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:39 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatiqueiscrafmпропущено... справедливое замечание. А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. если сантехник спрашивает как организовать коммуникации в многоквартирном доме, то это один уровень представления задачи, если такой же вопрос задается архитектором этого дома, то это другой уровень. Многое меняется, практически все. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:46 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatiqueiscrafmпропущено... справедливое замечание. А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. По вопросам выше очевидно, что интересует роль тимлида, а не РП. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:48 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
iscrafmMonochromatiqueпропущено... А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. если сантехник спрашивает как организовать коммуникации в многоквартирном доме, то это один уровень представления задачи, если такой же вопрос задается архитектором этого дома, то это другой уровень. Многое меняется, практически все. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:50 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatique Считаем что: 2. Что пользовательские истории зафиксированы. ... Чего хочется: Предсказуемость разработки. ... Что имеем: 1. Пользователи говорят одно, думают другое, а нужно третье. Предсказуемость разработки начинается с предсказуемости требований. То, что требования меняются по ходу разработки - это нормально, только процесс их изменения должен быть контролируемый и управляемый. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:53 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
iscrafmMonochromatiqueпропущено... А что от этого поменяется? Сейчас меня интересует роль PM-а, странно, что это не очевидно. если сантехник спрашивает как организовать коммуникации в многоквартирном доме, то это один уровень представления задачи, если такой же вопрос задается архитектором этого дома, то это другой уровень. Многое меняется, практически все. Я - отвечаю за проекты в целом и целиком. Со спецификой, свойственной конкретной организации, она есть везде. Я ответил на вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:53 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
Monochromatiqueiscrafmпропущено... если сантехник спрашивает как организовать коммуникации в многоквартирном доме, то это один уровень представления задачи, если такой же вопрос задается архитектором этого дома, то это другой уровень. Многое меняется, практически все. Я - отвечаю за проекты в целом и целиком. Со спецификой, свойственной конкретной организации, она есть везде. Я ответил на вопрос? да, вполне ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:56 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
JE SUIS ЦКтолько процесс их изменения должен быть контролируемый и управляемый. Опять вода. Парни, ну вы понимаете что ценности в этих словах - НОЛЬ. Ну что, кто-то скажет, что процесс изменений должен быть неуправляемый?? Чего вы воду толчете? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 13:57 |
|
Как правильно вести сложную разработку?
|
|||
---|---|---|---|
#18+
MonochromatiqueJE SUIS ЦКтолько процесс их изменения должен быть контролируемый и управляемый. Опять вода. Парни, ну вы понимаете что ценности в этих словах - НОЛЬ. Ну что, кто-то скажет, что процесс изменений должен быть неуправляемый?? Чего вы воду толчете? Это вы вопросы задаете "что делать?", а не я. В вашем описании ситуации требования неуправляемые. Что вы с этим собираетесь конкретно делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2015, 14:02 |
|
|
start [/forum/topic.php?fid=33&fpage=10&tid=1547416]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 466ms |
0 / 0 |