We’ve tried a lot of project management/issue tracking systems over the years (Pivotal Tracker, RedMine, Basecamp, Podio). In some way, they have always seemed lacking, confusing or just a pain in one place . If they had good tools for project managers, they were confusing to developers and vice versa. It was extremely important for us that developers enjoy using certain toolset, as the result they do a better job.
From the beginning we mostly used SVN and Beanstalk, but in the last 1.5 years we’ve completely switched to Git. In parallel we’ve started using GitHub for project management after the developers started raving about how much they loved it for managing code. Read our previous article about it. To our surprise, GitHub has proven a solid option for project management and issue tracking. With a little bit of something for each team member, GitHub is starting to come out on top as the tool of choice for hosting code, managing projects, and facilitating project communication.
GitHub is pretty developer-centric. As such, the first thing a developer sees when they open a project, is a view of the code repository and README file below. It’s a good practice to have this file in place. Some of things we usually include in there:
- quick project overview
- how to quickly get started developing
- outline development/deployment process
GitHub has a pretty simple issue tracking system. You can:
- reference issues (issues can be associated with each other by simply throwing an #issue-number )
- add labels (meta data) to your issues (but honestly we do not like to use them)
- attach code to your issues (refer issue from commit; thus you know if something has been implemented under concrete issue and review exact piece of code)
- easy to write using advanced markdown syntax
- milestones for grouping and focusing on issues within time blocks (sprints, backlog, other versions etc.)
- pull requests = code + issue + code comments (useful for peer review and helps to keep the quality of code up to everyone’s standards )
- search with impunity (issue titles, descriptions, and comments are all indexed. If someone wrote something, you can find it)
GitHub has an activity stream(-s) which shows you everything important that’s happening on your project (-s) so you can easily and quickly track progress.
GitHub provides with git-powered wiki system that we often use for every project. They’re backed by Git, clonable, usable offline, and accept a variety of text formats
Couple not bad examples to better understand concepts:
Code reviews. GitHub allows you to have a detailed discussion about each and every commit that is pushed to your project. Should it be included? Was it done correctly? Should something else be added? Talk about each change to your code with everyone involved before releasing or incorporating them.
Other tiny, yet very useful things.
- email notifications and reply via email directly
- iOS/Android apps
- ask collaborators directly and only they will be notified (start typing from “@” and you’ll see suggestions)
- use smiles (start typing from “:” and you’ll see suggestions)
- image thumbnails; just type ‘![alt text](image path.jpg)‘ and you see not just a link but thumbnail; in case of dropbox, ‘!(dropbox url?dl=1)‘ you have to add extra param at the end ?dl=1
And not to say it is extremely secured, fast and stable. Yes, we have faced couple down times but at least we could know about it on a special status page.
If you don’t use DropBox, I will shake my head at you in disapproval. It’s “shared network drives” taken into this millennium. Nothing to set up, works across firewalls, brilliantly easy to use, insanely cheap. If they go public one day, I’ll be buying stock . We use it for sharing all of our project files: graphic assets, UI mockups, documents, screenshots, videos, DB dumps etc. Rather than try and upload those all into Basecamp and require logins, uploads, tagging, etc… it is much easier to drop them into a folder you share with the project team and be on your merry way. That way when someone updates a file you are instantly privy to the changes. This is especially useful if you have well documented processes / instructions where new team members can quickly jump in, learn what they need to know and get moving with out tying up another resource.
Where to begin. Our phone number +1 (424) 625.5131 is a Skype number, meaning that if you call it from your cell phone our Skype at all computers will ring. When one of us answers, the others will stop ringing. How cool is that? We use Skype internally for:
- our daily catch-up meetings cross all projects,
- quick files sharing
- as an instant messenger (certain things better to discuss in chat thus do not disturb other team members)
- use Skype chats as “war room” for development (all our projects usually have group chats)
- we use screen sharing feature all the time (see team members in person, share emotions, show whiteboards, interviews etc.)
If there was one piece of installed software in the last 9 years that changed the World we live in forever, Skype might be it.
Google Docs allows us to collaborate in real-time. Multiple users can edit documents simultaneously, discuss changes and revisions as they are happening. It’s a super efficient way to “get together” to brainstorm. What we do here:
- work breakdowns
- time/cost estimate
- time reports
- outline project scope
I’ve mentioned that our primary tool for files sharing is DropBox, but what if you need to quickly do a screenshot, share with your teammates and it becomes useless in couple hours? Droplr handles this simply. It’s a little Mac app that patiently sits in your menu bar and waits for you to throw files, images, notes or screenshots at it. You can also use it as your personal URL shortener. There are also apps available for Windows and iOS. We love Droplr.
And what do you use?