четверг, 6 декабря 2007 г.

И снова в бой

Не успел я ещё как следует отдохнуть от шараварного проекта затеянного моими друзьями и мной около года назад, как я нашел себе новое занятие. Теперь я решил попробовать на вкус радости фрилансерских проектов. Мнение о них у меня спорное: с одной стороны можно искать небольшые задачи, делать их и не терять интерес во время работы, а с другой стороны это нарушение очень-очень старого правила, полученого на самой первой работе: работа над каким либо проектом намного труднее в одиночку чем в команде (т.е. существует очень большой разрыв между работой одного програмиста и двух, разрыв же между двумя и тремя намного меньше), основная негативная причина для меня кроется в коммуникации, с заказчиком не так легко общаться как с колегой программистом который сидит рядом с тобой и ты всегда можешь пнуть его и обсудить возникшие проблемы.
Вобщем, заявку на проект я подал в пятницу, сразу же начал общаться с заказчиком (он оказывается тоже Русский, только живёт в США :) и вот сегодня я получил письмо о том что выиграл этот проект. Вобще сейчас меня не столько интересуют деньги сколько вопрос смогу ли я правильно организовать рабочий процесс и выпустить качественный продукт. Увереность в том что всё получится у меня присутствует, т.к. опыт имеется, теперь осталось его правильно применить.
Применить его я решил пока след образом:
1) Собрать больше информации о проекте. Заказчик прислал требования и наброски интерфейса, всё это я оформил в виде более проработанного прототипа UI. т.е. теперь я знаю как примерно будет выглядеть приложение и какие основные действия может выполнять с ним пользователь. Так же ещё остаётся довольно много вопросов по этому интерфейсу который мы пока не обсуждали. А обсуждать теперь мы их будем читая спецификацию
2) Написать спецификацию. Мало создать прототип UI и понять что примерно будет делать разрабатываемое приложение. Нужно больше конкретики. В этом нам и поможет спецификация. В ней надо будет более детально описать и обсудить реакцию приложения на те или иные действия пользователя, что делает приложение в случае ошибки, где хранить нужные для работы данные, какие алгоритмы используются при его работе и т.п. Всем этим я сейчас и буду заниматься.

Следующими этапами будут: иследование некоторых непонятных вещей/технологий, написание технической спецификации, оценка времени разработки, собственно сама разработка, тестирование.

Пока всё :)