|
|
|
Kefir |
|
|||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
В общем немного о сути моей ситуации на данный момент.
Я всю свою сознательную жизнь программист. Причём 99% времени я работал / работаю один (такой вот программист-одиночка). Следовательно, принципы работы в команде мне неведомы. На данный момент я работаю в фирме, где являюсь единоличным ИТ-правителем. Очень скоро надо начинать довольно объёмный проект. Ясно одно - один я не справлюсь. Значит надо набирать команду (от 3х до 5ти человек). Поскольку я очень хорошо знаю с чем мы будем иметь дело (имеется в виду суть проекта) меня подрядили на роль руководителя этого самого проекта. Не забываем о том, что я в первый раз буду этим заниматься и к тому же никогда не работал в команде и не видел как вообще оно делается. Моя задача на данный момент - за кратчайшие сроки узнать как можно больше о том как организовать работу над проектом. Вопросы примерно такие: 1. С чего вообще начать делать проект? Например что идёт первым - набор людей, а потом составление некоего плана проекта или наоборот? 2. Как вообще пранировать проект по уму? Какие инструменты применять? Диаграммы? Какой-нибудь UML? MS Project? 3. Каким образом организовать работу? Как распределять задания? Как потом всё это (то что программисты написали) собирать воедино и как давать задания так, чтобы потом не было конфликтов в коде (то есть как описать программисту что от него конкретно надо - говорить что тебе, мол, надо написать класс с методами X(), Y(), Z() которые возвращают int, string и void?)? 4. Только недавно услышал о таких вещах как RUP, XP, Agile, AgileUP etc. Оно мне вообще надо? Если да, то как выбрать то что надо? 5. Как собственно оценить сколько и каких ресурсов надо? В общем, умоляю вас, при ответе на мой пост имейте в виду что вы объясняете всё мамолетнему ребёнку который ни черта не смыслит в этом. Это сообщение отредактировал(а) Kefir - 28.6.2007, 10:16 |
|||
|
||||
nornad |
|
||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 3 Всего: 31 |
Если проект кратковременный и в будущем ты можешь распрощаться с людьми, то можно искать людей именно для проекта - некоторое время можно поработать даже с тем, кем душа не лежит общаться. Но если проект длительный или ты хочешь набрать команду, с которой будешь работать в будущем - ищи людей, с которыми сможешь работать длительное время. Тех, с кем не будет проблем при общении (крупных проблем, т.к. мелкие точно встретятся). Тех, кто имеет достаточный уровень опыта (с твоей точки зрения). И тех, кто согласен работать под твоим руководством (зачастую бывает, что человек всем хорош, но постоянно будет тянуть одеяло на себя, что явно не будет способствовать успешной работе команды).
Лично мне очень понравились заметки Джэла Спольски на эту тему (и не только). Почитай и попробуй. Не скажу, что его вариант самый лучший, но для начала - точно самое то, т.к. не надо разбираться с различными специализированными программами. Это уже потом, если захочется, посмотришь различные программы и выберешь, что тебе удобнее и полезнее. Заметки Спольски можно найти на его сайте www.joelonsoftware.com (там же неподалёку есть и локализованная русская версия, но заметки в ней не все). Для начала надо разбить проект на подзадачи. Выделить обособленные части (которые можно разрабатывать параллельно. А там уж раздавай задачи либо тем, кто лучше и быстрее сделает, либо тем, кого хочешь подтянуть в данной области. Сборку воедино практически всегда можно сделать полуавтоматической. Нужно сделать костяк проекта, к которому будут присоединяться модули (куски кода) и положить этот скелет на VCS/SVN/иже_с_ними. Каждый программер будет выкладывать туда свой модуль (рабочий вариант, даже если вместо функций заглушки - всё равно проект должен компилироваться), а когда надо будет собрать проект воедино, кто-то будет либо вручную, либо автоматически (например, Ant'ом) собирать его. Чтобы не было конфликтов, надо описывать в проектной документации интерфейсы модулей. Тогда и разночтений по поводу имён функций и возвращаемых типов не будет в принципе. Кстати, модуль не обязательно должен быть представлен классом. Это может быть и просто набор функций, например.
Лучше не заморачивайся на этом, пока не знаком с подобными методами. Сильно сомневаюсь, что хотя бы одна из этих метод является панацеей. Сам знаком с ХР и могу сказать, что она подходит далеко не всегда и нередко больше мешает, чем помогает. Отдельные элементы полезны во многих случаях, но в целом методу каждый раз применять не выйдет. Поначалу на глазок, а позже уже начнёшь чувствовать. Кстати, у того же Джоэла на эту тему тоже есть немного умных мыслей. Добавлено через 1 минуту и 58 секунд М-да... Вышло как обычно - "коротенько. минут на сорок". -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||||
|
|||||||
Kefir |
|
||||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
Вообще проект будет длится около 3-4 месяцев. наверное, это подходит под определение "кратковременный". однако не факт, что потом этот же самый проект не станет развиваться дальше. больше могу сказать - я почти уверен, что на этом дело не закончится и надо будет продолжать работать командой.
посмотрю в ближайшее время. пока только заглянул - место очень смахивает на блог. заметки "где-то там" (в блоговых постах), я так понимаю?..
То есть получается так - перед тем как что-то писать надо в подробном виде расписать где какие части, модули, функции, классы и интерфейсы будут делать?
Ок. Спасибо. Просто умные люди эти слова употребляют - думал, что, может и мне это надо. И вот ещё что. Вот чисто на данный момент, когда нет людей, нет ничего. Есть только понимание того что надо сделать этот проект и как он должен выглядеть. Я так понимаю что сейчас самое время самому начинать примерно прикидывать на какие части прект можно разбить и как будет выглядеть код и структура программы. Так? |
||||
|
|||||
nornad |
|
||||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 3 Всего: 31 |
За такой срок уже можно сильно разругаться с теми, кто тебе не нравится в общении, так что лучше сразу подыскивать тех, с кем сможешь работать. да
Примерно так. Этот процесс называется проектировкой.
Не всегда эти слова употребляют те, кто использует эти методы. Чаще те, кому понравилось их описание, но кто при этом сам не пробовал. Употреблять сии слова можешь, но хвататься за всё что ни попадя не стоит. Сначала постарайся наладить нормальную работу команды (чтобы она работала как команда, а не как кучка самолюбующихся индивидуалов), а потом уже читай про разные методы и примеряй их на себя и команду. В зависимости от отношений с командой, можно даже обсудить, какую методу попытаться внедрить у себя.
Видимо, я тебя обрадую одной новостью - даже если ты сейчас наберёшь людей, то проектировать придётся всё равно большей частью тебе. Иначе можно получить не совсем (или "совсем не") то, что хочешь. Ты сейчас лучше любого, кого подберёшь, знаешь, что надо сделать. Значит, тебе и проще определиться, как это делать. С другой стороны, если среди найденных людей будет кто-то, кто хорошо умеет проектировать, можно привлечь его к этому делу. Но не спихивать всё на него - просто проектировать вместе. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||||||
|
|||||||||
Kefir |
|
|||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
Итак. Давайте разберёмся с проектировкой. Как эту проектировку осуществлять? Надо ли юзать UML? Там всякие классовые диаграммы, датафлоу, стэйт и т.д.? Или просто на бумажке? Т.е. я то в голове понимаю что должно получится, может быть даже могу кое-как представить как это надо сделать, а вот как это всё записать? С чего начинать продумку? ты меня успокоил нет, правда успокоил.
ага. я в принципе смирился с этим. |
|||
|
||||
nornad |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 3 Всего: 31 |
Лично я предпочитаю проектировать на бумажке, а потом уже вносить в электронный докУмент в том или ином виде. Никогда не пробовал рисовать UML диаграммы и явно не доверяю генерации кода на их основе. Считаю, что они малополезны. Но это моё дилетантсткое мнение (я же не разбираюсь в UML - потому и дилетантское), а кому-то такое удобно. Если ты хорошо владеешь UML, можешь использовать его при проектировании и описании, но если нет, то не стоит пока что заморачиваться. Как я уже говорил, тебе сейчас важнее наладить работу в целом. Сделать так, чтобы команда работала и работала на тебя. С описания того, что должно получиться. Потом постепенно начинаешь описывать, из чего оно должно состоять (отдельные модули проекта) и в итоге детализируешь до той степени, на которой задача будет ясна хотя бы твоим подчинённым. Если эту проектную документацию будешь показывать заказчику, надо позаботиться, чтобы и ему она была понятна. И еще - постарайся сначала всё описать и только потом раздавать задачи для кодирования. Опыт показывает, что начало написания до завершения проектировки приводит в конечном итоге к несогласованности модулей и увеличению сроков и нервного напряжения. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
arilou |
|
||||||
Великий МунаБудвин Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 2 Всего: 61 |
Скажу сразу, что ситуация у тебя сложная, и чтобы выйти из нее с честью, придется попотеть.
Начать надо с определения и документирования требований, попертереть с будущеми юзерами, записать все. Потом эти требования надо превратить в юз-кейсы (http://en.wikipedia.org/wiki/Use_case).
Чтобы запланировать, тебе надо оценить трудозатраты. Дело это непростое, но теория есть. Юз-кейсы можно обработать при помощи Use Case Points (http://www.codeproject.com/gen/design/usecasepoints.asp) и получить человеко-часы. При этом не забудь сверху добавить два раза по 20% на менеджмент и тестирование. После этого можно подумать о составе команды. Конечный план можно, конечно, в занести в MS Project, но Джоел советует делать это в MS Excel (http://www.joelonsoftware.com/articles/fog0000000245.html) Тут придется разрисовать хотя бы высокоуровневую архитектуру приложения, выделить модули, которые можно делать параллельно, определить интерфейсы, по которым они будут между собой взаимодействовать.
Трудно сказать. Тебе и так хватит выше крыши матчасть поднимать. Попробуй почитать про Agile, получить понятие об итерационной разработке. См.выше. Удачи! Будут вопросы -- обязательно задавай, поможем! PS. И будь готов, что отныне кодить ты будешь меньше, чем раньше - теперь ты ПМ и тим-лид. Твоя основная задача - это чтобы команда работала как единое целое. Это сообщение отредактировал(а) arilou - 30.6.2007, 22:04 |
||||||
|
|||||||
Kefir |
|
||||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
это я и так понимаю. высказал начальству опасения в связи с этим и получил в ответ "ничего страшного, человек ты ответственный, способный. всё у тебя получится". будущие юзеры - всё население столицы эстонии, так что требования рождаются исключительно в нашей же фирме (сразу скажу, что менть их нельзя ибо в они оговорены в договоре с городом). насчёт юзкейсов - их надо вообще очень подробно писать. например, нахождение бара в каталоге программы можно осуществить а) при помощи браузинга категорий в каталоге и б) при помощи поиска (по имени, например). Для этого надо два юз-кейса или всё-таки один? Ибо вроде цель то одна, но методы достижения разные. обязательно почитаю.
Начал изучать Крэга Лармана - "Применение UML и шаблонов проектирования". Вроде книга именно про планирование проекта (AgileUP). Вижу много новых, порой непонятных слов Подойдёт, я надеюсь? Ох не беспокойся. У меня всё равно лучшего источника живой инфы нет чем винград (живая информация - то биш не книжки, а человеки). Так что никуда я не денусь )) |
||||
|
|||||
arilou |
|
||||
Великий МунаБудвин Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 2 Всего: 61 |
разные юз-кейсы. лучше писать подробно, чтобы меньше разночтений было.
но это не уменьшает важности их документированися. в идеале, у тебя должна быть таблица в которой каждое требование приводит к одному или нескольким юз-кейсам.
если честно, не читал, но по названию связи с Agile не вижу шаблоны проектирования - это само по себе must read, но к управлению проектом отношения имеет мало. |
||||
|
|||||
Kefir |
|
||||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
ок. учту. да, само собой. я просто для того, чтобы ситуацию больше раскрыть )
там на примере agile рассказывают как проходят начальная стадия (фаза) и стадия развития. |
||||
|
|||||
JUmPER |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
именно этот случай.
Рейнвортер Х. "Как пасти котов. Наставление для программистов, руководящих другими программистами" --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
ida |
|
|||
замужем Профиль Группа: Завсегдатай Сообщений: 2275 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: нет Всего: 60 |
Kefir, а за каким фигом вы согласились руководить?... Раз, как сами признаете, всю жизнь были программистом-одиночкой. Что вами двигало? Почему вы не отказались?
|
|||
|
||||
chief39 |
|
|||
карманная тигра Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 4 Всего: 77 |
Как минимум - попробовать. И правильно Чтоб сказать что тебе не нравится молоко, надо хоть раз попробовать его вместо кефира -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
ida, на ваш вопрос ответил chief39, причём очень точно
Добавлено через 4 минуты и 25 секунд JUmPER, сейчас читаю Время - Деньги. Прямо как будто специально для меня писали. В частности отрывок из аннотации:
Добавлено через 5 минут и 46 секунд ida, и ещё то обстоятельство, что такие предложения мне делают нечасто. а значит надо хватать этот случай. |
|||
|
||||
ida |
|
|||
замужем Профиль Группа: Завсегдатай Сообщений: 2275 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: нет Всего: 60 |
chief39, мне вот не надо пробовать поруководить, чтобы знать, что я этим заниматься не буду.
Странно, да?.. вы и кипяток всегда на вкус пробуете, чтобы убедиться, что горячий? Зачем хватать случай, если он не ваш?... Была классная книга, к сожалению не помню названия, но попробую найти. Об уровнях компетентности. Так вот там очень внятно объясняется, в каких случаях и почему рядовой сотрудник руководить НЕ МОЖЕТ. Ваши вопросы иллюстрируют как раз такой случай. Успешные руководители получаются из тех, кто к моменту занятия руководящей должности внутренне готов руководить и знает, как он будет это делать. Т.е. выработал некоторые принципы. Знает, что правильно и чего делать нельзя. Вы похоже этого не знаете. И тут книги вряд ли помогут. Один из ключевых моментов, по которому это можно определить и который говорит не в вашу пользу - то, как вы оказались в данной ситуации, как вы это выше описали (т.е. по сути почти бессознательно). Очень жирный минус. В общем, дело хозяйское, но прогнозы однозначно неблагоприятные. Время покажет... Сейчас внимательно прочитала тему и решила предупредить - судя по всему, вы очень молоды (если информация в инфе верная) и ваши новые обязанности не совсем соответствуют вашему опыту. Если это так, то описываемая ситуация может быть искуственно созданной для проекта, который должен быть завален (который руководству выгодно завалить). Так делают - назначают ответственным какого-нибудь мало подходящего для этого человека с тем, чтобы он гарантированно не справился с задачей, чтобы потом сделать из него козла отпущения. Подумайте на досуге. Я не утверждаю, что в вашем случае это так, но это ОЧЕНЬ распространенный сценарий, и в вашем случае некоторые признаки этого есть. Это сообщение отредактировал(а) ida - 4.7.2007, 08:33 |
|||
|
||||
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание на то, что новые темы, касающиеся новых вопросов, создаются кнопкой "Новая тема", а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих темах, будут удалены. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, arilou. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | УП: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |