вторник, 10 января 2012 г.

Про TeamLab и все-все-все!

Не так давно я, в который уже раз, искал удобную для меня систему управления проектами. Пробовал разные варианты: начиная от простых таск-менеджеров до профессиональных систем. Теперь я нашел лучшую(для себя!) систему управления проектами. Но обо всем по-порядку.

Таск-менеджеры
Первое на что я обратил внимание были менеджеры задач. Вернее, сначала это были просто бумажка, на которой я записывал задачи и вычеркивал их по мере выполнения. Затем это был экселевский файлик. Но все это было не удобно, потому что бумажки постоянно терялись, да и их получалось довольно много(если на каждый проект по бумажке, да еще бумажку на "не проектные" дела - встречи, звонки и пр.), а экселевский файлик все пух, множился, а искать что-то в нем становилось все сложнее и сложнее.
Тогда я обратил внимание на такс-менеджеры! Мне нужны были следующие возможности: 

  • иерархичность задач
  • разделение по проектам
  • состояние задачи(планируется, в работе, завершена)
  • визуализация прогресса по проектам(желательно!)
  • учет времени(желательно!)
  • возможность задавать приоритеты как проектам, так и задачам.
На основе всех этих требований я нашел 2 оптимальных для себя таск-трекера: ToDo List и My Life Organized(MLO). ToDo List бесплатный и portable, MLO - платный, но имеет ряд доп. функций, более приятный и юзабельный интерфейс и возможность синхронизации с сервером. Использовал я, в основном, ToDo List, т.к. с него все началось, а когда захотелось перейти на MLO, оказалось, что довольно накладно переводить таски из одной системы в другую. У них хоть и есть импорт\экспорт, но корректно друг с другом они не работают, а допиливать напильником список задач не хотелось. К тому же, использовать таск-менеджеры для управления проектами более-менее удобно для своих проектов, на которых ты работаешь один. Если появляется проект на нескольких людей, то становится достаточно не удобно. 
Именно из-за этого неудобства возникла у меня идея написать свой такс-менеджер. Забегая вперед, скажу, что от этой идеи я быстро отказался.

Собственная реализация такс-менеджера
В свое время я занимался фрилансом в свободное время и захотелось мне делиться с заказчиком информацией о тасках, однако, с существующими таск-менеджерами это было не очень удобно - хотелось, что б клацнуть по кнопке и все само делалось. Тогда и родилась идея собственного таск-менеджера. Он должен был уметь все что умеют ToDo List и MLO + ряд специфических функций. Например, я хотел сделать сервис + программу, что бы в программе можно было удобно и быстро управлять задачами, а на сервисе это все хранилось, синхронизировалось с ним и выдавало заказчику или прочим людям нужную им информацию. Т.е. заказчику выдавался логин\пароль для входа на сайт, а там он мог просмотреть текущий статус по задачам, связаться со мной, поставить свои таски и т.д. Само собой, каждый проект привязывался к конкретным заказчикам и они могли видеть только то, что им предназначается!
Идея мне понравилась и я даже начал что-то делать, но вскоре забросил фриланс, а вместе с ним и этот проект. Через некоторое время мне понадобился какой-то новый сервис, причем, таск-менеджеры меня уже не устраивали. Я решил не искать программы, а воспользоваться сервисом в Сети. Так я начал искать сервисы управления проектами.

Gravity
Так в приложениях Google Chrome был найден Gravity. Довольно удобный сервис управления проектами, основанный на agile разработке. В нем можно ставить задачи, разбивать их по итерациям, вести wiki проекта и много чего еще. Пару месяцев я использовал Gravity, но, поскольку, я не придерживаюсь agile методики, то для меня этот сервис был довольно не удобен. Впрочем, очень качественный сервис, попробуйте обязательно! Я уверен, что вам понравится! Но, мне понадобилось вести несколько проектов и подключать туда разработчиков, тестеров и прочий люд. Тогда я пошел искать дальше и нашел...

TeamLab
Наконец, был найден TeamLab - сервис, который меня полностью устроил! Во-первых, он пока бесплатный, впрочем, разработчики говорят, что в дальнейшем они планируют монетезировать проект, но базовый функционал останется бесплатным. Во-вторых, он очень удобен и гибок. В-третьих, он сочетает в себе несколько сервисов для управления разработкой, командой и клиентами.  Вы можете: 
  • создавать проекты
  • вехи
  • задачи(жаль нет иерархии задач)
  • создавать документы, таблицы и презентации и совместно работать над ними
  • вести корпоративный блог
  • управлять командой(переключать пользователей между задачами, формировать группы пользователей и т.д.)
  • смотреть статистику по проектам, задачам и пользователям
  • вести мониторинг выполнения задач
  • создать корпоративную wiki
  • и многое другое.
Например, такой сервис как "Календарь" покажет вам какие задачи и на когда запланированы, когда надо завершать веху, личные события и пр. Жаль, что нет возможности синхронизировать календарь с Google Calendar. В общем, замечательный сервис, если вы ищете что-то подобное, то обязательно попробуйте этот сервис!

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО


Хабра:

Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

Тема перевода зарубежной профессиональной IT-литературы стоит достаточно остро, многие любят читать книги в оригинале по различным причинам, таким так время выхода русского перевода с запозданием на годы, недостаточный профессионализм переводчика и соответствующая потеря тонкостей и авторского стиля и т.д.

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.

1. Первое место с результатом ~1700 голосов заняла книга:
Совершенный код
Автор: С. Макконнелл

Тот самый Стив Макконнелл, которому приписывают фразу: "Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."

Первое издание этой книги вышло в 1993 году, второе — в 2004. Первый русский перевод — в 2005 году.

«Энциклопедия хороших практик программирования. Совершенный код фокусируется на личном искусстве, мастерстве — тех вещах, которые мы интуитивно называем writing clean code. Это та книга, которая может 50 страниц описывать правильное форматирование кода и количество пробелов». Джо Спольски.

2. Второе место с близким результатом ~1500 голосов заняла книга:
Программист-прагматик. Путь от подмастерья к мастеру
Авторы: Э. Хант, Д. Томас

Первое англоязычное издание этой книги вышло в 1999 году. Первое русское издание — в 2004 году в серии «Библиотека программиста».

«Это великая книга для программистов, которые где-то как-то научились программировать, может быть, в институте, но не совсем уверены что и как делать. Это как разница между наброском и готовым произведением. То, что вы изучали в университете — это наброски, эскизы, и вы вроде бы можете рисовать красиво, но если всё ещё чувствуете, что не вполне знаете с чего начать, если кто-то предложил вам написать программу для обмена музыкой через P2P-сети, то эта книга для вас». Джо Спольски.

3. Третье место уже со значительным отставанием ~930 голосов заняла книга:
Структура и Интерпретация Компьютерных Программ
Авторы: Харольд Абельсон, Джеральд Джей Сассман

Книга на английском языке выложена авторами в свободный онлайн доступ и даже снабжена видео-лекциями.

Структура и интерпретация компьютерных программ преподавалась в Массачусетском технологическом институте, и этот курс имел влияние на весь мир по учебным программам компьютерных наук в течение последних двух десятилетий. На stackoverflow пишут, что книга буквально просветлит нас (will enlighten you) и после нее появится стремление писать великолепные программы. И что если все остальные книги делают из нас лучшего (better) программиста, то конкретно эта — сделает из читателя программиста.

4. Четвертое место со счетом ~790 голосов заняла книга:
Язык программирования C
Авторы: Брайан Керниган, Деннис Ритчи

Честно говоря, мне не до конца ясно, почему книга об определенном языке программирования попала на столь высокое место, тем более в наше время высокоуровневых языков и фреймворков. Быть может потому, что книга Кернигана и Ритчи – это культовая книга по программированию на языке Си от создателей языка, где они рассказывают своим читателям о широких возможностях Си и особенностях, отличающих его от других языков структурного программирования. Ведь в свое время язык Си разрабатывали специально для операционной системы Unix, но созданный язык был настолько универсален, что нашел свое применение и в других сферах программирования. 

5. И завершает пятёрку лидеров со счетом ~680 голосов книга:
Алгоритмы. Построение и анализ
Авторы: Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн

Книга представляет собой перевод учебника по курсу построения и анализа эффективных алгоритмов, написанного в Массачусетском технологическом институте; в ней разбираются важнейшие классы быстрых алгоритмов и приёмы их построения. Изложение подробное и математически строгое. Книгу можно использовать в качестве учебника и справочника; она будет полезна как студентам, так и профессионалам в области IT.

На последующих местах расположились не менее замечательные книги, такие как "Паттерны проектирования" GoF, "Рефакторинг" Мартина Фаулера, "Мифический человеко-месяц" Ф.Брукса и т.д., книги действительно отличные, все их просто невозможно перечислить в одном обзоре.

Надеюсь, данный небольшой обзор поможет кому-нибудь найти себе интересную книгу для последующего прочтения.

Немного ссылок:

Оригинальное голосование.

Обзоры компьютерной литературы от Джо Спольски.