С разрешения автора публикуем рассказ Сергея Пугачева, в котором он делится своими впечатлениями о процессе написания и издания книги «Разработка приложений для Windows Phone 7.5«. Заранее предупреждаем, что пост получился очень большим:
«В конце мая 2012 года вышла в свет книга «Разработка приложений для Windows Phone 7.5», одним из авторов которой являюсь я, Сергей Пугачёв. Для меня данная книга — это первый опыт такого рода, оба же из моих соавторов – Стас Павлов (stasus) и Дмитрий Сошников (shwars) являются авторами и других книг.
Так как после выхода книги в свет мне периодически задают вопросы о том, как выглядел процесс написания, сколько времени на это ушло, о работе с издательством и других деталях, я решил, что будет лучше написать про это статью и просто давать ссылку всем, задающим подобного рода вопросы. В общем, все, конечно же, от лени.
Данная статья для меня является попыткой осмысления проделанной работы, и я надеюсь, что она поможет кому-то решиться на написание своей собственной книги, так как ощущение эйфории, наступающее, когда держишь в руках только что изданную книгу с твоим именем на обложке, ни с чем несравнимо!
Данная статья состоит из трёх разделов, отражающих три этапа процесса написания книги, а именно:
- Идея книги, переговоры с издательством
- Написание текста книги
- Работа с редактором и издание
Но перед тем как перейти к первому пункту плана, хочется остановиться на одном аспекте, напрямую связанном с тематикой книги.
Корпорация Microsoft не так давно анонсировала новую версию операционной системы Windows Phone – Windows Phone 8 (WP8).
Наша книга посвящена Windows Phone 7.5. При этом Windows Phone 8 несёт существенные изменения, как аппаратной, так и программной платформы. Устарела ли книга? Мой ответ – скорее нет. Все приложения, написанные для Windows Phone 7.5, будут работать и на Windows Phone 8. Знания, полученные из книги, применимы и для новой версии платформы, естественно есть различия, но в целом книга останется актуальной ещё достаточно долгое время.
1. Идея книги, переговоры с издательством
Но начнём сначала. Признаться честно, у меня уже достаточно давно зрела мысль когда-нибудь написать книгу, но конкретного воплощения эта мысль не получала и никаких действий для этого я не принимал. Жила эта мысль своей собственной жизнью в разделе «Может быть когда-нибудь» моих планов на будущее.
Опыт же написания текстов и публичных выступлений на момент начала работы над книгой у меня имелся. Я пишу статьи, выступаю на конференциях, являюсь Microsoft MVP (Most Valuable Professional) уже 4 года. Поэтому часто, помногу, и с удовольствием рассказываю о разработке на платформе Microsoft как в письменной, так и в устной форме. Кроме того, я вёл тренинги по разработке приложений на бесславно забытой платформе Silverlight.
Естественно, ничего сравнимого по объёму с книгой я до этого не писал. Дипломы, защищенные в Вузе не в счёт, так как там скорее важна форма, чем содержание, и, забегая вперёд, скажу, что на написание каждого из дипломов (бакалавр и магистр) я не потратил и 10% того времени, что было потрачено на написание книги.
Но вернёмся началу истории. Я был увлечён платформой Windows Phone 7 с самого первого её анонса на конференции MIX в марте 2010 года, где я присутствовал лично (кстати, на этой конференции был анонсирован и Internet Explorer 9, который изменил всё для Silverlight разработчиков, но тогда я этого ещё не знал). Данная конференция проходила в США в славном городе Лас-Вегас, и это было моё первое посещение Штатов. Я помню, как сразу после планарного доклада конференции пошёл, сквозь бесчисленные игровые автоматы, в свой номер, который находился где-то на 30 этаже гостиницы Mandalay Bay, из которого открывался прекрасный вид на взлётно-посадочную полосу международного аэропорта McCarran. Из номера, смотря на взлетающие самолёты, я стал качать по медленному каналу через Wi-Fi инструменты для разработки приложений под Windows Phone. Чтобы потом установить скаченный SDK (Software Development Kit) на свой скромный нетбук Samsung NC10. Первая версия SDK работала ужасно медленно (в чём изрядная доля вины лежит на нетбуке), но, не смотря на это, я влюбился в платформу с первого клика, хотя раньше никогда для телефонов не разрабатывал.
На конференции MIX все только и обсуждали Windows Phone, хотя реальных аппаратов почти никому, кроме особо наглых людей, в число которых в силу природной скромности я не входил, потрогать не дали. Свой собственный телефон я получил позже, осенью 2010 года в дождливом Сиэтле на конференции PDC 2010. Участникам конференции Microsoft бесплатно раздавала телефоны, и мне после стояния в длинной очереди достался прекрасный Samsung Taylor. Этот телефон был прототипом для разработчиков и никогда официально не продавался. Наверное, я стал первым обладателем телефона под управлением операционной системы Windows Phone 7 в России, не считая сотрудников Microsoft.
Помню, как вечером перед PDC сидел в какой-то мексиканской забегаловке с Михаилом Черномордиковым (mixen), в то время работавшим в Microsoft в США, и он спрашивал, в какую номинацию меня перевести как MVP: Silverlight или Windows Phone. Я ответил, что в Silverlight, так как это более общая технология, и это было огромной ошибкой. На следующий день, вице президент Microsoft Bob Muglia заявил, что стратегия изменилась и Silverlight больше не является приоритетом для Microsoft (Our strategy with Silverlight has shifted), хотя мы все долго отказывались в это верить. Наверное, если бы я стал MVP по Windows Phone, книга бы вышла значительно раньше.
Незадолго до PDC 2012 я стал публиковать в своём блоге цикл статей про разработку приложений для Windows Phone. Этот цикл оказался невероятно популярным, хотя, в силу различных причин, я и забросил его написание где-то на середине. Главной проблемой стало отсутствие мотивации, так как времени на написание статей требовалось очень много, а в связи с новой работой его катастрофически не хватало. Моя очередная попытка устроиться в Microsoft на FTE (Full Time Employee) позицию потерпела крах, и в итоге, весной 2011 года я решил, что больше про Windows Phone блог вести не буду.
Ближе к лету 2011 года пришло время защищать диплом магистра. 17 июня, ровно за неделю до защиты диплома, когда я сидел у своего научного руководителя, мне написал зам. главного редактора издательства БХВ-Петербург с предложением написать книгу о разработке под Windows Phone. Видимо, он видел мой блог и решил, что я смогу написать такую книгу.
Я обсудил это с евангелистами компании Microsoft и Владимир Колесников предложил добавить в книгу часть по разработке игр. Так как сам я такую часть написать не мог, мы предложили Дмитрию Сошникову стать соавтором. Он согласился, за что ему огромное спасибо! В итоге к августу 2011 года я написал две главы, но мы не пришли к финальному договору с издательством и решили на время отложить написание книги.
На этот момент кроме двух глав был готов план книги, основанный на бета версии Windows Phone 7.5, так как финальная версия вышла позже. План требовался издательству, да и начинать написание книги без плана в любом случае не стоит.
Составление плана – достаточно долгий процесс, у меня на это ушло около недели-двух. Я просмотрел множество англоязычных книг по Windows Phone, изучал материалы, обдумывал… В дальнейшем план менялся, но не очень значительно. В плане был представлен список глав с достаточно подробным описанием того, что в этих главах будет рассматриваться.
Кроме плана я предоставил издательству описание книги и тексты типа «почему книга будет интересна читателю», а также оценку суммарного количества страниц (которая в итоге оказалась достаточно близка к истине). Книгу я оценил в 350-400 страниц и 20 глав. Изданная книга содержит 384 страницы и 21 главу. Хотя суммарная оценка по количеству страниц была относительно верной, оценка по количеству страниц для каждой из глав не оправдалась абсолютно.
Издательство в свою очередь прислало шаблон для Word, в соответствии с которым должен быть оформлен текст. Кроме того, необходимо было прочитать 26 страничные «требования к рукописи», которые описывали правила оформления, именования и другие аспекты требований. Ничего сложного в этих требованиях не было, и, хотя, первые главы я написал без их учета, на оформление каждой главы в соответствии с шаблоном ушло минут по 15. Опять же возвращаясь к теме дипломов, требования к ним были на порядок сложнее.
В сентябре 2011 года мы приостановили работу над книгой. Как уже было сказано выше, к тому моменту были написаны две главы. В конце декабря 2011 года мы пришли к соглашению по книге и договорились с Microsoft о покупке некоторого количества экземпляров, которые должны были быть розданы участникам конференции DevCon 12 в мае 2012 года. В связи с этим встал очень жесткий срок – книга должна была быть полностью написана к середине марта, чтобы к середине апреля завершить редактирование и вёрстку, отправить в печать и раздать участникам на конференции DevCon 24 мая 2012 года.
Так как книгу я планировал писать (как потом и вышло) исключительно в свободное время, стало понятно, что успеть уложиться в срок не получится. Я примерно представлял время, необходимое на написание главы, поэтому было очевидно, что столько свободного времени у меня нет, и шанс издать книгу к маю практически равен нулю.
Уже упомянутый Владимир Колесников, за что ему большое спасибо, предложил Стаса Павлова в качестве соавтора. Стас согласился, и благодаря этому книга в конечном итоге увидела свет.
Сразу скажу, что книгу мы писали не ради денег. Да и невозможно писать техническую книгу за деньги. Мы хотели, чтобы цена книги была минимальна, и её смогли себе купить как можно больше людей. Поэтому ни Дмитрий, ни Стас не получили от этого ни копейки. Я, в связи с непростой финансовой ситуацией, выбрал денежный гонорар, размер которого примерно равняется моей зарплате за 2 рабочих дня.
Итак, мы пришли к соглашению с издательством, соглашению с Microsoft о покупке книги, у нас было 3 соавтора и 2 написанные главы. Наступил 2012 год, до сдачи книги в печать оставалось 3 с половиной месяца.
2. Написание текста книги
Главный вопрос, который мне задают в связи с книгой, звучит примерно так: «А сколько времени ушло на написание?». Попробую посчитать.
В книге 21 глава и приложение. Фактически это 22 главы. Я написал 11 глав и приложение, то есть 12 глав. Из них 10 с 1 января 2012 года по 10 марта. Таким образом, на 10 глав ушло примерно 2 месяца. Надо сказать, что не все главы имеют одинаковый размер, есть очень короткие главы, есть длинные. Главы Стаса и Дмитрия, например, все длинные, а у меня есть несколько коротких.
Писал я на протяжении почти всех Новогодних праздников, с 3 по 9 января. Где-то по 4 (может чуть больше) часа в день. Хочется отметить интересный факт, что на клавиатуре, на которой я написал почти половину книги, нет русских букв. Но это так, к слову. Кроме того, я писал почти каждые выходные где-то по 3 часа в день, а также тратил около часа в будние дни.
В сумме на написание 10 глав ушло около 120 часов. Это месяц работы, если бы я писал книгу с понедельника по пятницу с 9 до 6. Надо сказать, что это достаточно медленно. Опытные авторы говорят, что можно написать техническую книгу примерно в два раза быстрее. Но, поверим им на слово.
В процессе написания книги, я не раз ловил себя на мысли, что больше никогда в такую авантюру не ввяжусь. Было ощущение, что книга никогда не напишется, да и вообще, учитывая мою склонность к депрессии, часто настроение было просто ужасным. Но сейчас, по прошествии времени, негативные краски стёрлись, и я иногда задумываюсь: а почему бы не написать ещё одну книгу? Хотя пока получается успешно гнать от себя эти мысли.
Самое трудное в написании чего бы то ни было – это начать. Бывает, ходишь по несколько дней и не можешь написать ни строчки, а потом садишься и пишешь целую главу. Если есть первое предложение, хотя бы несколько слов, – дальше писать уже намного проще. А сидеть же перед пустым документом в Word можно бесконечно. Бывали случаи, когда я по несколько раз открывал и закрывал пустой Word документ.
Кроме того, сложно снова начать после длительных (несколько дней, неделя) перерывов. Идеальный сценарий – это писать немного, но каждый день. В таком режиме работать над книгой становится значительно легче. Но не надо ставить перед собой нереальных целей, например, писать главу в день. Это ведёт только к разочарованию. Поставьте перед собой цель писать в день хотя бы пару страниц. В итоге часто, получается, больше, и это ведёт к хорошему настроению.
При написании книги у меня возникла большая проблема – перфекционизм. Очень хотелось всё сделать идеально. Поэтому я мог по 10 раз перечитывать главу, менять отдельные слова и т.д. Но это очень замедляло работу. В итоге я поставил себе ограничение – не перечитывать написанный материал в процессе написания больше двух раз. И это существенно ускорило работу. А на плохие и непонятные места в итоге указала редактор.
3. Работа с редактором и издание
После того, как я написал свои главы, встала ещё одна важная задача. У книги три автора, все пишут в разном стиле, используя немного различную терминологию и обороты речи. Например, слово «Notifications» в одной главе переводилось как «Оповещения», а в другой как «Уведомления». И таких примеров было множество. Стиль написания примеров кода тоже существенно различался между авторами. Кроме того, изредка встречались повторы между главами разных авторов, когда в двух главах рассказывалось фактически про одно и то же.
Читателю же нужен целостный продукт. Книга должна быть написана в одном стиле и точка. Компромиссов быть не может. Поэтому мне пришлось редактировать как свои, так и главы других авторов.
После написания каждой главы, я посылал её разным знакомым Windows Phone разработчикам, чтобы они высказывали своё мнение. Наибольшую помощь оказали Кирилл Орлов (DiverOfDark) и Шериев Ахмед (Atreides07), которые указали на некоторое количество фактических ошибок.
В процессе написания, мы на каком-то этапе стали посылать главы редактору от издательства. Редактор – это важнейший человек, возможно даже такой же важный, как и авторы книги. Редактор сделала язык более литературным, а также исправила множество ошибок, в том числе фактических, а также терминологических, и даже несколько ошибок в исходном коде.
Работа с редактором выглядела так: я посылал главу редактору, она её возвращала со своими правками и с вопросами. Я комментировал правки и отвечал на вопросы, возможно исправляя сам текст главы. После этого, я снова посылал главу редактору, и цикл повторялся. Обычно хватало одного раза, но некоторые главы гуляли туда-обратно по 2-3 раза.
На предварительное редактирование и работу с редактором ушло где-то по 2 часа на главу. Итого, фактически ещё одна полная рабочая неделя.
Также какое-то время ушло на оформление архива примеров исходных кодов. Но я оформлял исходный код параллельно с написанием глав, поэтому много времени на примеры кода не ушло.
Наступил апрель, я успешно и с первого раза сдал экзамен в ГИБДД, а книга была уже почти готова. Когда были отредактированы все главы, текст был отправлен на вёрстку, и через месяц я держал в руках свежеотпечатанный экземпляр книги.
Когда я приехал на конференцию DevCon 12, прошёл в служебное помещение, распаковал одну из коробок с книгами и взял в руки экземпляр – вот тогда наступило настоящее счастье и ощущение радости от проделанной работы.
На следующий день по экземпляру книги раздали всем участникам конференции, и я очень много раз ставил автограф. Люди подходили и просили расписаться, и это было действительно здорово!
Так в Ногинском районе Подмосковья, где проходила конференция DevCon 12, завершилась история, начавшаяся в далёком Лас-Вегасе в апреле 2010 года.
Пока мы это не обсуждали, но возможно, мы будем адаптировать книгу под новую версию Windows Phone – Windows Phone 8. Поэтому история на этом, на самом деле, не заканчивается.
Спасибо всем, кто помогал в написании книги!»
Сергей Пугачёв