Click here to Skip to main content
Click here to Skip to main content

How to Find the Right Tools to Manage Your Open Source Project

A series of tips that help you find the right tools to manage your open source project.

Editorial Note

This article is in the Product Showcase section for our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.

Introduction

DNN is coming up on our 11 year anniversary and even after all these years, we still have not found the perfect set of management tools for our project. There are so many different options available, and more are becoming available every year. None of the current market leaders even existed when DNN first started.

Recently, we made the decision to move our source code repository to GitHub and moved our issue tracker to Jira. Our previous source repository and issue tracker were great tools, but they no longer fit the needs of our project.

Finding the Right Tool is Like Finding the Right Home

I remember fondly when I first started apartment hunting. My budget didn’t extend quite as far as I wanted it to. There was no fancy pool, manicured lawns or even covered parking spaces. I quickly made a list of must-haves and nice-to-haves and then matched that up with the available housing.

Even though I didn’t exactly find my dream home, I did find a place that suited my needs. Eventually, I moved out of that apartment into a bigger apartment, and ultimately into a house of my own. DNN has followed a similar path, moving from one project hosting service to another as our needs changed.

Finding a good project hosting service for your Open Source project is a lot like searching for an apartment or house. The features you can live without as a small project can become critical as your project grows. Below are five tips that I learned managing an open source project over the last decade.

Tip #1: Location, Location, Location

The key to any successful open source project is your community. Part of building your community is making it easy for new people to find your project. Just like houses, having a project hosted at a popular location and using popular tools will make it easier for users to find and participate in your project.

Your choice of issue tracker and project hosting says a lot about your project. If your project caters to developers on the Microsoft stack, then you might be able to host on a site like CodePlex. However, if you want to attract PHP, Ruby or NodeJS developers, then there are much better project hosting options available for those environments.

When choosing a home for your project, take a look around the neighborhood to see what other projects are there. Is it a ghost town or an up and coming community of projects? For many years, SourceForge hosted many of the newest and largest Open Source projects; in recent years, however, you will find most of the hottest projects being hosted at GitHub.

Tip #2: Don’t Forget Your Community

Many open source projects start out by serving the needs of just a couple of people. As the project grows, it begins developing a community of users and project contributors. When looking for the perfect set of management tools for your project, make sure you think about the community members who will be using those tools.

Does your community prefer using TFS, SVN, Mercurial or GIT? How easy is it for your users to create new bug reports? What about communication between the community and project team – does the project hosting service support forums, a wiki or even project pages? When deciding what tools are best suited for your project, take a few minutes to think about it from the perspective of your community members.

Tip #3: Plan for Growth

Every Open Source project starts out pretty small. You may just have a few code files and some simple instructions for installation and usage. As your project grows and the community gets larger, the tools that were once acceptable will start to cause problems for your project.

When looking for management tools and a hosting location for your project, make sure you think about what you might need as your project grows. How well will the integrated issue tracker handle dozens or even hundreds of issues? Are you limited in the number of contributors who can participate on the project? Can you disable features you have outgrown?

Tip #4: Plan for Migration

Eventually, your project may be faced with the prospect of moving all or part of your management toolset. If your project becomes super successful, you may eventually outgrow the capabilities offered by many of the current crop of project hosting services.

Your current service provider might not keep up with modern development trends or maybe your provider becomes a sleepy backwater and all of the new open source projects have moved to a new neighborhood.

Whatever the reason, you need to think about how you would move your code and data to another service. Over the course of the DNN project we have used four different open source project hosting providers, four different source code repositories and three different issue trackers.

Each move has required us to evaluate not only how easy it was to move our data into the new tool, but potentially how easy it would be to migrate data out of the tool when we eventually outgrow it. We did not think about this for our first two project hosting providers and we ended up losing a lot of project history and data.

Don’t let this happen to you. Plan for the migration up front and it will make it much easier when it becomes time to move.

Tip #5: Integration

Every open source project finds that it relies very heavily on four or five key project management tools: source code repository, issue tracker, discussion forum, project pages and a wiki. Your project may not need all of these tools or may have alternative tools that you want to substitute for the tools that are provided out of the box.

The benefit of using the tools provided by a single provider is that they are all integrated and easily accessible to your community members. When your project outgrows the capabilities of the integrated tools, how easy is it to turn off that tool and integrate a third party solution? What if you want to develop custom reporting tools for your project – can you access the underlying project data to develop your reports? Maybe you want custom processes kicked off whenever someone checks in some code – is that possible with your chosen project hosting service? These are just a couple of the integration scenarios you will want to investigate when choosing where to host your project.

Bonus Tip: There is No Perfect Tool

Regardless of how well you research project management tools and hosting services, you will eventually find that there is no perfect tool that will match 100% of your needs. Even if you find something that is close to your requirements, you will often find that, just like your first apartment, you will eventually outgrow that space. So instead of looking for the perfect solution, look for a solution that solves most of your current challenges while still having some room to grow. Given the pace of change in the industry, it is likely that there will be even better choices by the time you are ready to move.

Conclusion

The DNN team has been very happy with our move to GitHub and Jira. Jira has made it much easier to manage our issues – whether it is the stories created by our product managers when developing new features, or the enhancement requests submitted by our community or even the bugs logged by our QA team and community members.

Jira has the flexibility to handle all of our requirements and even has some integration with GitHub so that we can easily see which commits and files were changed to deal with a specific issue.

Likewise, GitHub has made it easier for us to open up our repository for public inspection and contribution. In addition, GitHub (being based on Git) has made it much easier to handle multiple branches and a distributed development team consisting of both internal and external contributors.

Overall, we are very happy with our recent move, but we know that in another 3 or 4 years we may just be looking for another set of management tools for our project. If that happens, we are well prepared to make the move.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Joe_Brinkman
Founder DNN Corp.
United States United States
Joe brings more than 25 years of experience in software development and network administration and broad expertise in a variety of software and hardware architectures to his role at DNN Corp. He blogs at The Accidental Geek and is co-author of two best-selling WROX books on DotNetNuke. Joe holds a degree in Computer Science from the United States Naval Academy.
Follow on   Twitter

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 2 Jan 2014
Article Copyright 2014 by Joe_Brinkman
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid