Блог человека, который 18-ть лет программирует на Delphi. И 25 лет программирует вообще. VCL, UML, MDA, тесты. Это не "учебник", это - "заметки на полях".
Такие вещи каждый мгновенно понимает себе после первого провального проекта. А первые всегда бывают именно провальными, лучший исход - месяц переработки за счет собственного здоровья. Ну по молодости оно быстро восстанавливается.
Мне вообще противна постановка вопроса "фриланса" и "разовых проектов". Вот так НЕ разрабатываются программные продукты. Там можно делать ремонт в квартире. Создание ПО (а не какого-то затрапезного сайта компании) - это не "тщательно напишите ТЗ" и "расплачивайтесь по факту сдачи проекта".
И вообще - аутсорсинг и фриланс - (а также agile) - деградация в сфере инженерии ПО.
Почему-то мне казалось, что работу должен выполнять профессионал. Так, например, я не силён в дизайне - почему бы её не отдать на аутсорс? И мне, и заказчику это выйдет дешевле. Правда, есть риск попасть на плохого исполнителя, зато в противном случае его (риска) больше не будет. И чем же так не угодил agile? ИМХО, постоянная связь с заказчиком это только плюс. Может, у Вас был негативный опыт, тогда поделитесь?
Был на конференции Agile Days (походу в 2011 году). Выступали очень гладкие тренеры и только один case.
Кейс закончился тем, что "мы все разругались".
Еще пару челов выступали типа "мы его делали, но переросли... и скрам, и канбан".
Мой девиз как у Брюса Ли - самый лучший стиль - отсутствие какого-либо стиля. Я под каждый проект/людей выбираю свою методологию. Ибо проекты/люди - уникальны.
Сейчас (NDA) в одной очень дружественной конторе внедряют скрам. Вот убедите проджект оунера, что архитектура/моделирование/УМЛ/рефакторинг важен? Не, заплатко-пришивательство, дырозатыкательство и г...окод. Вот то, что порождает постоянная связь с заказчиком.
Про ЛИЧНЫЙ опыт писал. Делал аджайлом (прикрыв правильным ТЗ свою ...пу). Переработал раза в 2. Зато скушал проект на следующий год 1 000 000 в одну харю (жаль, что рублями). Но этот аджайл мы сами придумали с заказчиком, включая длину спринта :) Придумали, как Александр Люлин "текучесть".
Возможно, написал бы большую статью - почему Agile это плохо. Но с конференции Agile Days меня чуть ли не с кулаками пытались вытолкать. Поэтому пока вяленько нудю в комментах. :)
Убедить овнера, что рефакторинг нужен, иногда возможно :) Тут всё от человека зависит: кому-то хватает веры в команду (раз она говорит, значит нужно), кому-то нужны расчёты в рублях/времени (сейчас разработка этой фичи стоит 2 недели, если потратить 1 неделю на рефакторинг, то мы её сделаем за 3 дня, а ту задачу за 2 вместо 5). Но эта нетривиальная задача требует больше психологии, чем логического мышления. >>Я под каждый проект/людей выбираю свою методологию. Ибо проекты/люди - уникальны. В итоге так и получается :) Тут опять же надо разбираться в психологии, но что мне больше всего нравится в agile - быстрый отклик заказчика.
Теперь уже вопрос к двоим людям: почему аутсорсинг и фриланс - деградация в сфере разработки ПО? У меня был опыт работы с фрилансерами - результатом доволен. Не сказать, что я отдавал им большой объём работ, но то, в чём они разбираются лучше, целиком. Какие у вас были баги, что столь резко настроили против? P.S. небольшая заметка про аутсорс в Китай - http://habrahabr.ru/post/165967/
Тоже прочитал обе статьи, но у меня сложилось впечатление, что они больше подходят для водопадной модели. Там действительно нужно чёткое ТЗ, договор и прочие бумажки. Я же стараюсь со своими клиентами работать по agile: частые выпуски ПО, быстрая обратная связь. Как-то пока всё получается :) Конфликтов нет, если я неправильно понял задачу, то теряю не так уж и много времени. Кстати, у кого-нибудь из здесь присутствующих был опыт такой разработки? Хотелось бы услышать отзывы.
Остальные пункты, ИМХО, относятся к психологии. Рецензии, профиль, варианты нужны чтобы выбрать адекватного исполнителя. За тестовое задание я бы послал на GitHub :)
Вы правы (и все правы) относительно agile. Но масштаб проекта другой. Как только он больше $50 000, Вам такой водопад устроят, только в путь. Говоря простым языком - кого сажать, если проект проср..т? Если это не стартап?
Поэтому agile - "пионерская зорька". Рано или поздно перестаешь играть в зарницу :)
Ладно, ладно, скажу. По секрету. Scrum - есть способ выжимать все соки из программистов. Поэтому скрам должны любить начальники и ненавидеть программисты как способ своего окончательного порабощения :)
Вот здесь я с Вами соглашусь - для больших и дорогих проектов agile не подходит. Там дествительно нужен кто-то ответственный и документы, которыми можно прикрыться. В частности, это касается госструктур (и тем более военных). "Где кнопка?! Здесь написано, что будет кнопка!!!" :) Я бы не сказал, что scrum - выжимание соков. Команда должна помнить, что Пете в среду надо уйти пораньше, а Вася всю неделю болеет. То есть не нагребать задачи и впопыхах их делать, а уметь тормозить "хотелки" овнера.
Коллега! ТЗ пишешь сам себе. Курирует проект один человек. Принимает госприёмка, которая ПО ЗАКОНУ не может с тобой общаться во избежание сговора. + уголовная статья за срыв гос. оборон. заказа. Там такой аджайл начинается....
Мы работаем в разных весовых категориях :) Насколько я понимаю, у Вас крупные заказчики, много бюрократии (к сожалению, необходимой). У меня же по большей части мелкие и средние - с ними проще договориться, тем более когда они сами приходят :) Я стараюсь работать честно, поэтому мне в итоге верят на слово.
По моему небольшому опыту "водопад" и agile - "следуют рука об руку". Либо СНАЧАЛА "водопад", и потом agile. Либо СНАЧАЛА agile, а потом - "водопад". И так - "матрёшка" (или фрактал если хотите). На одном этапе "водопад", потом agile. Потом - наоборот.
Ну мне так кажется.
Я кстати поэтому "не люблю" MVC или "трёхзвенку". Ну НЕТУ ТРЁХ уровней. Их ГОРАЗДО больше. Матрёшка или фрактал.
Ни MVC, ни "трёхзвенка" этого не показывают. А вот модели на UML - запросто.
Не переоценивал бы содержимое указанных постов.
ОтветитьУдалитьТакие вещи каждый мгновенно понимает себе после первого провального проекта. А первые всегда бывают именно провальными, лучший исход - месяц переработки за счет собственного здоровья. Ну по молодости оно быстро восстанавливается.
Мне вообще противна постановка вопроса "фриланса" и "разовых проектов". Вот так НЕ разрабатываются программные продукты.
Там можно делать ремонт в квартире. Создание ПО (а не какого-то затрапезного сайта компании) - это не "тщательно напишите ТЗ" и "расплачивайтесь по факту сдачи проекта".
И вообще - аутсорсинг и фриланс - (а также agile) - деградация в сфере инженерии ПО.
Почему-то мне казалось, что работу должен выполнять профессионал. Так, например, я не силён в дизайне - почему бы её не отдать на аутсорс? И мне, и заказчику это выйдет дешевле. Правда, есть риск попасть на плохого исполнителя, зато в противном случае его (риска) больше не будет.
УдалитьИ чем же так не угодил agile? ИМХО, постоянная связь с заказчиком это только плюс. Может, у Вас был негативный опыт, тогда поделитесь?
Был на конференции Agile Days (походу в 2011 году).
УдалитьВыступали очень гладкие тренеры и только один case.
Кейс закончился тем, что "мы все разругались".
Еще пару челов выступали типа "мы его делали, но переросли... и скрам, и канбан".
Мой девиз как у Брюса Ли - самый лучший стиль - отсутствие какого-либо стиля.
Я под каждый проект/людей выбираю свою методологию. Ибо проекты/люди - уникальны.
Сейчас (NDA) в одной очень дружественной конторе внедряют скрам.
Вот убедите проджект оунера, что архитектура/моделирование/УМЛ/рефакторинг важен?
Не, заплатко-пришивательство, дырозатыкательство и г...окод. Вот то, что порождает постоянная связь с заказчиком.
Про ЛИЧНЫЙ опыт писал. Делал аджайлом (прикрыв правильным ТЗ свою ...пу). Переработал раза в 2. Зато скушал проект на следующий год 1 000 000 в одну харю (жаль, что рублями).
Но этот аджайл мы сами придумали с заказчиком, включая длину спринта :)
Придумали, как Александр Люлин "текучесть".
Возможно, написал бы большую статью - почему Agile это плохо. Но с конференции Agile Days меня чуть ли не с кулаками пытались вытолкать. Поэтому пока вяленько нудю в комментах. :)
Убедить овнера, что рефакторинг нужен, иногда возможно :) Тут всё от человека зависит: кому-то хватает веры в команду (раз она говорит, значит нужно), кому-то нужны расчёты в рублях/времени (сейчас разработка этой фичи стоит 2 недели, если потратить 1 неделю на рефакторинг, то мы её сделаем за 3 дня, а ту задачу за 2 вместо 5). Но эта нетривиальная задача требует больше психологии, чем логического мышления.
Удалить>>Я под каждый проект/людей выбираю свою методологию. Ибо проекты/люди - уникальны.
В итоге так и получается :) Тут опять же надо разбираться в психологии, но что мне больше всего нравится в agile - быстрый отклик заказчика.
"Не переоценивал бы содержимое указанных постов."
УдалитьА я и не переоцениваю. Я просто считаю, что авторы сказали то, что должны были сказать.
"Такие вещи каждый мгновенно понимает себе после первого провального проекта."
МНОГИЕ - понимаю, но НЕ МНОГИЕ пишут. Посему - авторам - респект.
"И вообще - аутсорсинг и фриланс - (а также agile) - деградация в сфере инженерии ПО."
УдалитьВот - СОГЛАСЕН!
Теперь уже вопрос к двоим людям: почему аутсорсинг и фриланс - деградация в сфере разработки ПО? У меня был опыт работы с фрилансерами - результатом доволен. Не сказать, что я отдавал им большой объём работ, но то, в чём они разбираются лучше, целиком. Какие у вас были баги, что столь резко настроили против?
УдалитьP.S. небольшая заметка про аутсорс в Китай - http://habrahabr.ru/post/165967/
Тоже прочитал обе статьи, но у меня сложилось впечатление, что они больше подходят для водопадной модели. Там действительно нужно чёткое ТЗ, договор и прочие бумажки. Я же стараюсь со своими клиентами работать по agile: частые выпуски ПО, быстрая обратная связь. Как-то пока всё получается :) Конфликтов нет, если я неправильно понял задачу, то теряю не так уж и много времени. Кстати, у кого-нибудь из здесь присутствующих был опыт такой разработки? Хотелось бы услышать отзывы.
ОтветитьУдалитьОстальные пункты, ИМХО, относятся к психологии. Рецензии, профиль, варианты нужны чтобы выбрать адекватного исполнителя. За тестовое задание я бы послал на GitHub :)
Вы правы (и все правы) относительно agile.
УдалитьНо масштаб проекта другой. Как только он больше $50 000, Вам такой водопад устроят, только в путь.
Говоря простым языком - кого сажать, если проект проср..т? Если это не стартап?
Поэтому agile - "пионерская зорька". Рано или поздно перестаешь играть в зарницу :)
Ладно, ладно, скажу. По секрету.
Scrum - есть способ выжимать все соки из программистов. Поэтому скрам должны любить начальники и ненавидеть программисты как способ своего окончательного порабощения :)
Вот здесь я с Вами соглашусь - для больших и дорогих проектов agile не подходит. Там дествительно нужен кто-то ответственный и документы, которыми можно прикрыться. В частности, это касается госструктур (и тем более военных). "Где кнопка?! Здесь написано, что будет кнопка!!!" :)
УдалитьЯ бы не сказал, что scrum - выжимание соков. Команда должна помнить, что Пете в среду надо уйти пораньше, а Вася всю неделю болеет. То есть не нагребать задачи и впопыхах их делать, а уметь тормозить "хотелки" овнера.
>>это касается госструктур (и тем более военных).
УдалитьКоллега!
ТЗ пишешь сам себе.
Курирует проект один человек.
Принимает госприёмка, которая ПО ЗАКОНУ не может с тобой общаться во избежание сговора.
+ уголовная статья за срыв гос. оборон. заказа.
Там такой аджайл начинается....
"а уметь тормозить "хотелки" овнера."
УдалитьВам ПРАВДА это удаётся? ЗАВИДУЮ!
Мне - практически НИКОГДА не удавалось.
Мы работаем в разных весовых категориях :) Насколько я понимаю, у Вас крупные заказчики, много бюрократии (к сожалению, необходимой). У меня же по большей части мелкие и средние - с ними проще договориться, тем более когда они сами приходят :) Я стараюсь работать честно, поэтому мне в итоге верят на слово.
УдалитьПо моему небольшому опыту "водопад" и agile - "следуют рука об руку". Либо СНАЧАЛА "водопад", и потом agile. Либо СНАЧАЛА agile, а потом - "водопад". И так - "матрёшка" (или фрактал если хотите). На одном этапе "водопад", потом agile. Потом - наоборот.
ОтветитьУдалитьНу мне так кажется.
Я кстати поэтому "не люблю" MVC или "трёхзвенку". Ну НЕТУ ТРЁХ уровней. Их ГОРАЗДО больше. Матрёшка или фрактал.
Ни MVC, ни "трёхзвенка" этого не показывают. А вот модели на UML - запросто.
NDA - это что?
ОтветитьУдалитьДоговор о неразглашении (англ. Non-disclosure agreement, NDA)
УдалитьNDA - а мне сразу почудились автоматы и сети Петри :)
ОтветитьУдалить