So, you want to create a project. That’s great! Welcome to the party. I’d like to pass along some general knowledge about how best to approach creating/running a project. Also, I’m not going to say that I know everything there is to know about running a successful project. I have run a few projects in my time, some successful, some less so; I also have some hard-fought lessons learned that I am going to share. Perhaps you’ll use some of this knowledge to improve your projects.
One side note on what I am teaching/advocating here: I am not telling you some secret to making your project the next docker or requests. I’m showing you best practices for success. These ideas and concepts are good for any size or purpose of a software project. They have been successfully used on single-person projects all the way up to projects with 70+ contributors. Good ideas and buy-in from your team are critical to success, but they are never going to be enough to replace plain old elbow grease to write the code, docs, and tests for a project. That stuff takes discipline and time.
General Project Structure Rules
- If you want you (and your project) to be taken seriously? Be organized.
- Tests are non-optional.
- Documentation is also non-optional.
- Documentation should read like it was written by someone with knowledge who cares about informing a newcomer to the project.
- You should understand contributor roles if any.
- You MUST understand the licenses that are in regular use and decide which license to use. This is more about long-term CYA than anything else.
Well, there’s the first entry in this series. I hope people find it interesting.