How to start creating an Open Source project in the new year



    Hello everybody! The time for the New Year holidays is coming up and this is a great opportunity to start your open source project. My name is Dima and I am a Ruby developer, today I want to share my experience in creating an open source solution, I will tell you in more detail what stages the project should go through, how to choose the right functionality for the first release and what errors I personally encountered when creating my project.

    Six months ago, I came up with the idea of ​​creating my own open source project. Instead of test tasks for an interview, it would be enough for me to send a link to the repository, and the prospect of helping my colleagues with the solution of their everyday problems energized me even more.

    I always did not like gems for creating administrative panels, any unnecessary movement requires redefining classes, for changing fields you need to make changes in files. After reflection and conversation with colleagues, it was decided to create a new library that would be flexible and would not require dashboards or configuration files.

    Define goals


    Each open source project solves a specific problem. Communicate with colleagues, chats, forums, tell about your idea - all this will help you at an early stage to form a picture of what solutions already exist and hear criticism from the outside. Chat with people who already have their own open source projects, they can give very valuable advice, do not be afraid to ask and take the initiative.

    One of the valuable tips that I received at this stage is to pay attention primarily to the project documentation. You may have a very good project, but no one will read the source and try to understand how it works.

    The most important aspect without which further steps are impossible is motivation. The idea of ​​the project should first of all catch you. Most often, people get used to the tools with which they work and fall into the comfort zone.

    Planning


    Tasks should be fixed and have a clear picture at what stage the project as a whole is now. Break tasks into subtasks, ideally so that the performance of one task does not take more than 3-4 hours, it is important to enjoy small tasks, this will help to avoid burnout and loss of motivation.

    The choice of a specific task manager is a matter of taste. I use the pivotal tracker, the main advantage is the availability of a free version for open source projects, there is a sorting of tasks by type (feature, bug, chore, release), tasks can be grouped into releases and define a deadline.

    Another nice feature of pivotal tracker is integration with github. If you follow a certain convention in the naming of commits, then all related changes to this task will be automatically displayed inside the task.

    Decor


    Every open source project should have the following things:

    • Readme
    • open source license
    • Contributing guidelines

    The README file not only explains how to use your project, but also what the purpose of your project is, how to start using it. If you don’t know how to properly execute README, you can look at other well-known open source projects or use the template .

    The license guarantees that others can use, copy and modify the source code of the project. You need to add this file to each repository with your open source project. MIT, Apache 2.0 GPLv3 the most popular licenses for open source projects, if you are not sure which one to choose, you can use the convenient service .

    The CONTRIBUTING file will help other developers contribute to the project. At the first steps of the project, it is not necessary to pay close attention to this file, you can use a ready-made template from another project.

    My mistakes


    If you analyze the initial stage, I had an idea, but there was no clear plan. I decided that I want to do this without having a clear idea of ​​how much time it may take and the concrete presentation of the functionality that will be in the first version of the library.

    I just had a lot of desire and lack of a clear plan
    . Having also read the history of other projects, not only open source, I noticed that at the early stage there are too optimistic plans and a reassessment of my strengths and capabilities. It is not so easy to find time every day to write a new feature in the project. Most of the tasks had to be weeded out and left the necessary minimum for MVP .

    At the moment, my project is simple-admin is in alpha version, further plans include creating a separate library version for hanami.

    Also popular now: