Як я писав книги і що з цього вийшло. Досвід QA інженера
Мене звуть Гена, я займаюся автоматизацією тестування з 2003 року (тобто починав ще до того, як це стало модним), а паралельно пишу книги по цій же тематиці. У статті я розповім про все, що може бути цікавим у написанні книг, як кажуть, від ідеї до публікації. Якщо виникнуть інші питання — буду радий відповісти на них у коментарях.
Я автор 5 підручників (3 самвидавних і 2 виданих), так що, думаю, про мене можна сказати: «Ця людина оперує фактами і йому можна довіряти». Спочатку я розповім трошки історії, а вже потім перейду до технічної частини, так що якщо вам цікавий тільки процес створення та супутні питання, сміливо переходьте до розділу «Процес створення».
Отже...
Трохи історії
Від FAQ для новачків до першого підручника
У 2004 році в компанії ISD, де я тоді працював, прийняли рішення перейти зі старого глючного WinRunner'a на новий модний SilkTest. Це був дійсно потужний інструмент, але автоматизація тестування тоді практично не була розвинена, інформації в інтернеті було дуже мало навіть англійською мовою, а вже в рунеті про SilkTest тоді просто ніхто не чув. Навіть на сайті tester.com.ua (самий популярний російськомовний ресурс з тестування на той час не було навіть гілки форуму по цьому інструменту. Її створили на моє прохання, і перший час я сам там задавав питання і сам на них відповідав. Тому нам доводилося вивчати SilkTest методом наукового тику.
З часом команда росла, ми брали нових людей, і їх потрібно було вчити. У нас з'явилася роль AT Tutor, в чиї обов'язки входило навчання новачків в команді, а також співробітників з інших команд. Так пройшло приблизно 2 року, і саме тоді у мене і мого колеги Миколи зародилася ідея: треба створити такий собі FAQ для новачків, який допоможе їм на перших порах. Звичайно, багато в чому цій ідеї сприяла фраза, яку одного разу сказала одна з наших тьюторів: «Та скільки можна їм одне і те ж долдонить?».
Досить швидко (ще на етапі продумування) від ідеї простого FAQ ми перейшли до ідеї написання підручника, який би покривав весь SilkTest: від самих азів (Record & Play) до нетривіальних речей (розподілене тестування, Data-driven Testing, Extensions тощо). Все це було написано приблизно за півроку і викладено на сайті тестувальників у вигляді CHM-файл. Ось як він виглядав:
На той момент нас підстьобувала унікальність проекту: те, що робили ми, в рунеті на той момент не існувало ні в якому вигляді взагалі.
Сів, написав, закинув — доробив!
Далі наші з Колею дороги розійшлися: він зайнявся Selenium'ом, а я поринув у TestComplete. Поодинці важко вивчати новий інструмент, тому я підписався на офіційну news-групу від компанії-розробника TestComplete і спочатку ставив там питання, а потім і сам став відповідати. Паралельно брав участь у обговореннях на російськомовному форумі software-testing.ru . Саме там одного разу прозвучало прохання, яка мені здалася смішною: «Дайте якийсь підручник, який дозволить вивчити TestComplete за один день». Прохання була настільки абсурдною, що я за годину написав підручник «TestComplete за один день». А після того як підручник виявився популярним, я подумав: а адже я можу і краще!
Я сів і написав приблизний зміст, а потім почав писати сам текст. Спершу я писав ті глави, які мені подобалися, потім ті, від яких найменше нудило. Під кінець залишив найогидніше. Весь процес у мене зайняв близько півроку, однак у середині була довга перерва, так що з моменту початку написання і до кінця пройшло близько 1,5 років. Підручник я в підсумку дописав десь на початку 2010-го року і оформив його у вигляді окремого сайту (заодно так само виклав і попередній підручник з SilkTest).
В цей момент я задумав написання грандіозного підручника з автоматизації в цілому, склав план, почав писати... і закинув його до 2017 року. У 2017 я на нього випадково наткнувся і подумав: чого добру пропадати? Трохи доробив по дрібницях і виклав у відкритий доступ.
Тепер до мене звернулося видавництво...
У 2013 році до мене звернулося видавництво Packt Publishing, у якого в планах було видати книжку за TestComplete. Мене вони знайшли за рекомендаціями інших людей, до яких видавництво спочатку звернулось.
Мене в першу чергу хвилювало рівень англійської, так як його було достатньо для простих листувань по пошті, але не для написання повноцінної книги. У видавництві мене запевнили, що у них відмінні пруфридеры і що все буде добре. Я підписав контракт, але тільки після того, як вирішив для себе: нехай книга буде написана мені в збиток, але я не стану писати її відразу англійською, так як це буде дуже довго і якість тексту буде... ну, приблизно як таджики говорять по-російськи. Перед підписанням контракту я домовився зі знайомим перекладачем, чьх здібностях був впевнений на 100%, що він візьметься за переклад книги, а я погоджуся на будь-яку його ціну. Заздалегідь обмовлюся: це було дуже хороше рішення.
Написання книги було розраховано на півроку (за умовами контракту), я впорався за 3 місяці, за що навіть отримав бонус (теж обумовлений контрактом). Досить великий шматок я написав під час лікарняного, так як працювати сил не було, а творити — були :) Як і в минулий раз, саме нецікаве я залишив на самий кінець, коли вже майже все зроблено, але робота не закінчена. Це, до речі, одна з причин, по яких я «гнав коней» під час написання цікавої частини: я хотів якомога більше часу залишити на нецікаве на випадок творчої кризи.
З другою книгою було і простіше, і складніше. Простіше, тому що я спочатку написав її, а потім почалася робота з видавництвом. Складніше з цієї ж причини. Чому так — в наступному розділі.
Процес створення
Самвидавні книжки писати легко: сам вирішуєш, що і як робити, у якому порядку, де і як публікувати, в якому форматі і т. п. Коли працюєш з видавництвом, все стає набагато цікавіше.
Переговори з видавництвом
Існує 3 способу, як можна почати працювати з видавництвом:
- У видавництва є плани по написанню книги по якійсь тематиці. Його представники знаходять вас і пропонують написати книгу.
- Ви самі приходьте у видавництво і пропонуєте написати для нього книгу. У деяких видавництв навіть можна знайти на сайтах інформацію про те, яких авторів вони в даний момент розшукують і що планують публікувати.
- Ви пишете книгу, а потім шукаєте видавництво, якому буде цікаво її опублікувати.
У першому випадку все зрозуміло — видавництво сама зацікавлена у публікації. У двох інших випадках необхідно це саме видавництво зацікавити. Якщо книга не написана, необхідно накидати зміст і пару-трійку голів, щоб було що, власне, показувати.
У кожного видавництва свої вимоги до оформлення пропозицій, всю цю інформацію можна знайти на сайтах. Деякі просять написати лист у вільній формі, деякі — заповнити досить велику форму з купою інформації. Коротше, у всіх по-різному. Для кожного видавництва фактично заново оформляється пропозицію, не можна просто один раз написати текст і надіслати його всім.
Якщо тематика книги в даний момент не на піку інтересу, то потрібно бути готовим до того, що доведеться обійти кілька видавництв, причому не всі утрудняють себе навіть відповісти відмовою, просто мовчать. В моєму випадку з другою книгою було саме так: я зв'язався з чотирма видавництвами: два просто промовчали, одне відповіло, що не зацікавлене, четверте зацікавилося. Якщо б я писав про Big Data, нейронних мережах та штучному інтелекті, то швидше за все зацікавилося б перше ж видавництво (а ще точніше, що можна було б вибирати між різними видавцями, у кого кращі умови контракту).
Якщо зацікавилося видавництво, то ви підписуєте контракт (онлайн, ніяких папірців) і починаєте працювати. У контракті прописані всі нюанси: терміни подання розділів, оплата, штрафи, бонуси і зобов'язання сторін.
Написання книги
Книга відправляється у видавництво поступово, по мірі написання. Для кожної голови в контракті прописаний дедлайн відправлення. Так як затягування терміну написання однієї глави затягує процес публікації в цілому, краще спланувати роботу так, щоб робити все трохи раніше, ніж заплановано. Наприклад, я спочатку писав ті глави, які було писати легко і цікаво, а складне лишив на потім, щоб точно знати, скільки у мене залишилося часу.
У кожного видавництва є свій шаблон (файл .dot) для написання книг (взагалі-то правильно говорити «чернетка», так як книга є саме чернеткою, поки не буде опублікована). Цим шаблоном потрібно користуватися в роботі. В ньому є багато різних стилів, які треба застосовувати до різних частин тексту: назви вікон або елементів керування, вихідний код, текст, який користувач бачить на екрані, новий важливий термін і т. д. В результаті у видавництво відправляються тексти приблизно такого вигляду:
Виділення кольором потрібно виключно на виробничій стадії. В самій книзі, природно, ніяких квітів не буде. Ось як виглядає той же текст в опублікованій книзі:
Раніше, коли читав технічну літературу, мені завжди було цікаво, хто займається цією нудною роботою — виділяти різними шрифтами слова в тексті, їх же так багато. Виявляється — автор :)
Далі йде 3 стадії вичитки: редактором, технічними редакторами (т. зв. reviewers) і пруфридинг (виправлення помилок, пунктуація і т. п.). Всі правки вносяться в режимі Рецензування, при якому видно всі зроблені зміни. Якщо ви раніше не стикалися з цим режимом, то спочатку ним може бути незручно працювати, так як все виглядає приблизно так:
Іноді переносяться цілі шматки тексту, переписуються пропозиції. Коротше кажучи, текст схожий на купу малу букв і цифр. Все це редактор або робить сам, або залишає коментарі про те, що потрібно додати, видалити, змінити. По мірі написання нових голів таких виправлень стає все менше, так як починаєш враховувати помилки і коментарі попередніх глав. Наприклад, у другій моїй книзі часто зустрічалися абзаци, що складаються з одного речення. Мені це здавалося нормальним, я як би висловлював окрему думку. Однак редактор вважав, що це виглядає як незакінчена думка, тому довелося виправляти подібні місця у всій книзі. Якщо б я писав цю книгу поступово, а не прийшов до видавця з вже готовим чернеткою, то, починаючи з другої глави, я б вже таких помилок не робив.
З часом розумієш, що для кожної глави необхідно не забувати робити ряд речей перед відправкою редактору. Все запам'ятати неможливо, тому створюється чекліст. Ось приклад мого чеклиста, по якому я проходив кожен раз при написанні першої книги (ще один подібний чекліст є і для стадії review):
Всі картинки та приклади коду потрібно надавати в тексті книги, так і з окремими файлами. Для картинок існують правила їх іменування, щоб при верстці все правильно скомпоновалось.
Чернетка може пройти кілька стадій змін (1st draft, 2nd draft тощо), перш ніж буде прийнятий редактором. Після цього його відправляють на прочитання технічним редакторам.
Технічні редактори — це люди, що розбираються в тематиці книги. Їх знаходить видавництво або пропонує автор. В моїх випадках був і перший, і другий варіант. Завдання технічних редакторів полягає в тому, щоб знайти і вказати на «вузькі» місця книги: помилки, можливі поліпшення, зміни і т. п.
Технічні редактори не роблять змін в чернетці, вони лише залишають коментарі з пропозиціями, які потім розглядає автор. В принципі автор не зобов'язаний робити якісь зміни, якщо не вважає це за потрібне, однак у моєму випадку 99% коментарів у справі і суттєво покращили книгу. Ось як виглядають коментарі технічних редакторів:
Для кожного коментаря я внизу писав, було щось зроблено, а якщо ні, то чому. Іноді бувало так, що коментар залишається в кінці глави, а відповідні зміни потрібні на її початку, тому будь-які зміни необхідно коментувати.
Після всіх змін згідно коментарям редактора і технічних редакторів чернеткою присвоюється статус Final, і він відправляється на вичитку корректорам. Сам чернетка до цього моменту виглядає як книжка-розмальовка трирічної дитини :)
Після коректорів змін не так вже й багато, в основному вони виправляють граматику. Однак після них потрібно повністю вичитувати всю книгу. В моєму випадку невеликі зміни коректорів в одному місці призвели до повного спотворення сенсу пропозиції. У цілому після написання книги автор читає її ще три рази :)
Під час роботи над книгою є ще одна стадія: написання додаткових матеріалів. Сюди входять розділи типу подяки, софт, необхідний для роботи, тексти описів для сайту і для самої книги (зазвичай цей текст розташовується ззаду на обкладинці), передмова і т. п. Для цього всього теж є шаблон, який надається видавництвом, його потрібно тільки заповнити. Додаткові матеріали також проходять стадії чернетки, рев'ю і фінальної версії.
Нарешті, останній етап — верстка. Тут автор не приймає ніякої участі, це роблять спеціально навчені люди і надсилають фінальну версію книги. Її теж треба віднімати, причому на цій стадії можна лише незначні зміни (виправлення помилок). Потім книга відправляється в друк.
Насправді верстка — не зовсім остання стадія. Є ще маркетинг. Звичайно, це завдання лежить на видавництві (в тому числі і за умовами контракту), проте зазвичай автора просять внести в цю справу посильну частку. Ну, воно і зрозуміло: хто краще прорекламує книгу, крім автора? У видавництва Apress, наприклад, є ціла інструкція, що, де і як краще робити. Особисто я викладав новини в соцмережах, на профільних сайтах і форумах, залишав посилання в підписах і профайлах на різних ресурсах, а також в підписі у скайпі.
Ось тепер — все. Раз в квартал отримуй звіт і гроші від видавництва.
Відповіді на питання
Тут я розгляну різні питання, які не торкнувся в основній частині.
Перше питання, яке зазвичай задають: скільки грошей ? У кожного видавництва своя схема виплати гонорарів і відсоток відрахувань, причому не завжди ця інформація доступна на сайті. Видавництва платять авторам 10-20% від свого прибутку. Природно, чим популярніший книга — тим більше буде грошей.
Наприклад, видавництво Packt платить авторам 14% і стверджує, що це найвищий відсоток серед видавців (не знаю, як зараз, але у 2013 році ця інформація була на їхньому сайті). Але є нюанс, про який вони мовчать: вони платять 14% завжди, в той час як в інших видавництвах може бути більш гнучка система. Наприклад, за перші продані 10 тисяч примірників — 10% автору, за 20 тисяч — 12% і т. д. Якщо продажі перевищують, скажімо, 100 тисяч примірників, то відсоток може доходити до 20.
Крім відсотка від продажів є первісна виплата, типу авансу. Як пишуть самі видавництва про цей аванс: він не замінить вам зарплату, його завдання — підтримувати інтерес під час написання книги. Сума авансу може бути різною: від зовсім мізерною до приблизно однієї середньої зарплати програміста. Причому цей аванс потім буде вирахуваний при отриманні відсотків від продажу, так що ніякої благодійності тут немає.
Другий момент пов'язаний з отриманням грошей. Видавництва роблять прямий банківський переказ, або (рідко) переказ грошей на PayPal. Так як в нашій країні отримання грошей через PayPal неможливо, залишається тільки банківський переказ. І ось тут-то починається найцікавіше.
SWIFT-переказ від фізичної особи здійснюється без проблем. А ось якщо він від юрособи, то обов'язково має бути зазначене призначення платежу, причому це може бути або «зарплата», або «авторська винагорода». Здавалося б, усе просто? Я — автор, це моє авторське винагороду, але немає. По-перше, дуже складно пояснити закордонним бухгалтерам, що тобі від них треба. По-друге, від наших банківських працівників неможливо домогтися простих відповідей. Наприклад, я запитав, як на їх думку, англійською мовою повинно звучати «авторська винагорода», щоб вони (банківські працівники) однозначно його інтерпретували як авторську винагороду? Ще я питав, як же називається поле «призначення платежу» в англійській версії? Що саме я повинен попросити заповнити видавництво і як?
На момент написання цієї статті однозначного рішення немає. Я працював з трьома різними банками і кожен раз стикався з цими проблемами. Кожен раз відбуваються якісь дикі речі, у мене немає пристойних слів, якими можна було б описати моє ставлення до банкам і державі в цьому питанні. Якщо вам буде потрібно — стукайте в приват, може до того моменту я зможу дати нормальну відповідь.
Ще одне питання, яке мені часто задають: - чи буде ця книга опублікована російською мовою? За умовами контракту всі права на розповсюдження (включаючи інші мови) належить видавництву. Це означає, що для публікації російській версії необхідно знайти російськомовне видавництво , яке буде зацікавлене в публікації (або ж саме видавництво зацікавиться перекладом). Далі видавництва домовляються між собою, а які там умови для авторів — я не знаю, не стикався.
Сам я не пробував працювати з російськомовними видавництвами (і взагалі з видавництвами країн СНД), у мене до них... дуже слабка довіра :) найпростіша схема обману автора, про яку я чув: довипуск тиражу. Тобто надрукували 10 тисяч примірників, вони швидко розійшлися, видавництво друкує ще 10 тисяч, але суму тиражу залишає тією ж. У підсумку автор отримує прибуток тільки за перших 10 тисяч. Проконтролювати це нереально. Не знаю, може і зарубіжні видавництва роблять подібні речі, але до них все ж більше довіри, ніж до наших. Тому свої російськомовні підручники я поширюю безкоштовно.
Якою мовою публікувати? Як по мені, то публікувати книги краще англійською мовою. Аудиторія більше: США, Європа, Канада, Індія, та й купа інших країн. По своєму досвіду скажу: писати відразу англійською мовою зовсім не обов'язково. Потрібно лише знати англійську мову досить добре для того, щоб вичитати книгу після переведення. Рідкісний перекладач знає специфіку IT, але навіть якщо знає — краще віднімати, помилки є завжди.
Якщо у вас немає таких знайомих, то просто візьміть одну сторінку тексту навмання і відправте в кілька бюро перекладів з проханням перевести його для оцінки і прийняття рішення. Природно, вам доведеться заплатити їм усім за переклад цієї сторінки, але воно того варто. Ви зможете вибрати варіант, який вас влаштує найбільше, і продовжите працювати вже з перекладачем, який його робив. В цілому вартість перекладу для айтішників не дуже висока (навіть враховуючи, що переклад таких текстів найдорожчий), але обов'язково вычитывайте перекладений текст. Якщо ж ваш англійський недостатньо хороший для вичитування, то краще подумати про публікації на рідному для вас мовою.
Робота з видавництвами теж ведеться по-різному . У першому видавництві всі голови і зміни ми пересилали поштою, при цьому перейменовуючи файли (Chapter_1_first_draft, Chapter_1_second_draft). Я тоді ще подумав, а чому вони не використовують систему контролю версій? І вуаля — у другому видавництві все робилося через таку систему, причому з можливістю взагалі всю роботу робити онлайн.
Висновок
У висновку спробую відповісти на питання: «А чи варто цим займатися?». Для мене це питання взагалі не стоїть. Наприклад, коли я почав писати останню книгу, я відразу вирішив, що спочатку докладу максимум зусиль, щоб знайти видавця, а якщо ніхто не зацікавиться — викладу її безкоштовно. Тобто мені цікавий сам процес створення таких підручників, можна сказати, що це моє хобі. Отримання грошей за цю діяльність вдруге, важливий процес і результат. Навіть зараз, тільки опублікувавши одну книгу, я вже обдумую наступну :)
Але в цілому процес роботи з видавництвом — сам по собі унікальний і цікавий досвід, тому якщо у вас виникне такий шанс — рекомендую спробувати. У гіршому випадку ви просто нічого не отримаєте (якщо, приміром, зірвете терміни або просто зупиніться на півдорозі). Ніяких штрафів з вас ніхто стягувати не буде, так як збитків по суті немає. Ви просто не состоитесь, як автор. Але це вже зовсім песимістичний варіант.
Я знаю, що зараз вже декілька осіб з країн СНД стали авторами англомовних підручників (були статті про них на Habrahabr і Ain), а вже російськомовних авторів взагалі величезна кількість. Так що якщо у вас є ідея або навіть якісь напрацювання, то чому б і не спробувати? Просто не треба розглядати це як основну роботу, це, швидше, хобі. Дуже небагато автори пишуть бестселери :) Але хто знає, раптом ви станете одним з них?
P. S. Якщо кому цікаво, то мій сайт alpaev.com . Там є всі посилання на книги, мої контакти та інше.
Опубліковано: 29/11/17 @ 08:00
Розділ Різне
Рекомендуємо:
Junior дайджест: курси, стажування, вакансії. Грудень'17
Зарплата IT-фахівця. Що її обмежує і як збільшити?
PHP дайджест #10: готуємося до PHP 7.2, бенчмарки популярних PHP функцій, реліз Bolt 3.4.0
.NET дайджест #21: фічі .NET Framework 4.7.1, Ben.Demystifier, доступний пререлиз Rider 2017.3
Поради сеньйорів: як прокачати знання junior PHP