SOHO и Apple

Development for iOS

Уже третий месяц я работаю в команде, используя для решения управленческих задач технологии Apple. Решил поделиться некоторыми моментами, на которых мы застревали, и которые приходилось решать.

В команде нас четыре человека, работаем, в основном, удаленно друг от друга (это основная занятость только для одного человека). Разрабатываем софт под маки, ифоны и делаем веб-сервисы.

В качестве первичной платформы для «коллаборативности» были выбраны сервисы от Google: Google Hosted Apps (почта и календарь) и Google Wave. Все мы пользуемся жаббером, так что Gtalk отдельно я не поднимал. Собственно и почта для всех ограничилась редиректами на основные ящики, благо Gmail позволяет добиться почти полной прозрачности в этом вопросе.

Вопросы, которые затрагивали несколько человек, и общее планирование отдали на откуп Волне. В целом, получилось неплохо. Почему в целом? Во-первых, для некоторых встал вопрос использования отдельного броузера (Google Wave не очень хорошо ведет себя в сафари, и приходится паралельно использовать Chrome). Во-вторых, сервис подвержен некоторой нестабильности. Но с возложенной на него нагрузкой Волна справляется, даже командные переговоры с заказчиками мы проводим через нее, и обе стороны довольны. Также, Волна стала решать вопросы отслеживания багов, так как Bugzilla имеет очень уж суровый интерфейс, и Eclipse+Mylyn не спасают.

Google Calendar стал камнем преткновения. Веб-интерфейс, безусловно, удобен, особенно если учесть, что один человек бо́льшую часть времени проводит с виндой, и для него актуальны именно веб-приложения. Уведомления по СМС позволяют не забывать о запланированных событиях. Но когда дело доходит до нескольких календарей, ситуация меняется. iCal вообще не очень хорошо вообще себя ведет с гугловой синхронизацией (BusyCal появился уже позже), некоторые проблемы возникали и при синхронизации с ифоном. Я начал искать другие решения.

К этому моменту появилась необходимость CI-сервера, так как тесты коллеги писали из-под палки, убеждая меня в полной бесполезности оных. Надо было придумать какой-то механизм наглядного воздействия. Коллективным решением был приобретен Mac Mini, на котором развернули Snow Leopard Server.

Немного вернувшись назад, отмечу, что нашими основными средствами разработки являются: Xcode, TextMate и vim. Первый используется для mac/iphone проектов, TM — это идеальный «универсальный» редактор, а vim используется там, где нет макоси под рукой. Для хранения информации мы используем Git-репозитории, развернутые через gitosis, а для передачи файлов — Dropbox. Редкие голосовые переговоры решаем через Skype, а при необходимости «удаленно порулить» используем эппловый VNC (машинки видят друг друга через MobileMe/Wide Area Bonjour).

Возвращаясь к теме сервера. Первым делом я посмотрел, что мы можем перенести на него. Вдоволь назанимавшись сексом с OpenDirectory в разных положениях и настройках в виртуалке, я решил, что мы вполне переживем отсутствие кербероса, так как настроить его не смог. Таким образом, OD стал управлять общими учетками только с точки зрения доступа и общих паролей на все сервисы.

Первым делом я прикрутил iCal Server и Push Notifications. Должен сказать, что iCal с ним, что не удивительно, работает идеально, функционально и очень удобно. Не завелись уведомления по почте (которая так и осталась у гугла), но это с лихвой было покрыто Push-сервером. Кстати, BusyCal с iCal Server не работает. Для возможности достучатся до календарей через веб был поднят штатный Apache, где обнаружилась комфортная и красивая веб-морда (а еще, до кучи, блоги и вики, но они повторяют функциональность Google Wave).

Следующим сервисом был поднят опять же штатный VPN (L2TP over IPsec), который решил проблемы WAB и недоступности машин, если некуда было пробросить порт через NAT-PMP или uPNP (напоминаю, что макось регистрируется в WAB только если может договорится с вышестоящим роутером).

Потом я взялся за CI, в качестве которого был выбран TeamCity (выбирал практически наугад). Первичным критерием была цена, которая полностью меня устроила (Pro-версия бесплатна, правда, в Enterprise есть замечательная возможность авторизироваться через LDAP, в том числе и эпплово-вымеченный OD). Попробовав отдельную установку и встроенный в OSX Tomcat, я остановился на последнем, вот только к штатному апачу прикрутить уже его не вышло. Решился вопрос установкой из портов nginx'а, за который были спрятаны Apache и Tomcat. TeamCity отлично прикрутился к тестированию Python (Django), PHP и xcodebuild-проектов (через тесты из Google Toolbox Mac). Еще у Jetbrains есть просто таки офигительный багтрекер YouTrack, главная фишка которого — полноценное управление с клавиатуры, что нам, как vim-ерам, очень приятно :). Кроме того, он интегрируется с TeamCity и тоже может работать с LDAP, но через жуткую пень-колоду. Да и в целом он оставляет ощущения некоторой сыроватости. В общем, я буду наблюдать за его развитием, и если мы решим таки завести отдельный багтрекер, я к нему вернусь. Кстати, нормально завести его под Tomcat и Jetty у меня не вышло, равно как и прикрутить Standalone к nginx'у в общий домен к остальным приложениям.

Потом стало как-то немного накладно управлять проектами на базе одного только iCal, и я посмотрел в сторону Daylite. Полноценная CRM-ка с приятным маковым интерфейсом. Вот только она начала дублировать уже существующие сервисы (iCal, Address Book) без возможности интеграции, да и еще не дружит с обще-LDAP-овой базой пользователей. Так что немного поиспользовав ее, я решил попробовать что-то другое. Пока что глаз лежит на Merlin, буду пробовать.

Еще пару слов о финансах. Поскольку вся бухгалтерия проходит через мои руки, то особой коллаборативности тут не требуется, так что Billings отлично справляется с учетом денег. Небольшое опасение у меня вызывают финотчеты iTunes Connect, так как я не смог превратить их в читабельную форму в Numbers, а ставить Excel жутко не хочется. Общее представление я получаю через AppFigures, но когда заходит вопрос о дележе прибыли, хочется иметь более конкретные цифры. Скорее всего, будем писать свой процессор и анализатор отчетов iTunes Connect и банкинга.

Вот пожалуй и все на сегодняшний день. Поделитесь, чем вы пользуетесь для управления своим бизнесом?

P.S.: В данный момент я играюсь с DNS-SD, чтобы устроить полную замену Back to My Mac. Надеюсь по результатам собрать отдельную статью, потому что там уйма тонких моментов в настройке.
Tags:appleosxsohodevelopmentmanagementbillingteam managementintegration
Hubs: Development for iOS
+39
1.2k 54
Comments 31

Popular right now

Analyst-developer (.NET)
from 180,000 to 350,000 ₽C-Executives LLCМоскваRemote job
Frontend developer/ Angular
from 200,000 ₽VMS SoftwareСанкт-ПетербургRemote job
Technical Project Manager
to 3,000 $Virtual HealthRemote job
iOS Team Lead
from 6,000 $Omega BankЛондонRemote job
Software Developer (WebTeam)
from 180,000 ₽JetBrainsСанкт-Петербург

Top of the last 24 hours