Beat the "blocking tiger" in the corner of personal open source - my road to open source

From participating in the Apache open source project, to developing a personal open source project independently based on business needs; from the open source of the project, no one cares about it to 500+ stars, and many enterprise users. Give up, but still choose to persevere to this day.

What kind of difficulties did I encounter along the way, and what did I gain? I want to use this to share the ups and downs and gains I encountered in the process of open source dataCompare, don't let the open source corner squat "blocking tigers".

Pave the way for career development, open source and accumulate strength

First of all, let me talk about why I want to participate in open source. Since I entered the IT industry, many people in the industry think that "the IT industry is a youth meal", and they will be laid off at the age of 35, and there will be no company after that. I have also worked in several big factories, including JD.com and BAT, and I have seen many excellent technicians. I have been thinking, is it possible that no company will want it at the age of 35?

I have also seen many excellent technical talents. Some people entered a fast-growing company and followed the company's development all the way up; In addition, participating in open source projects and gaining huge influence in the industry without worrying about work, job-hopping at the age of 40 is still the favorite of many companies.

Participating in open source is a very good path for individuals, whether it is job hunting or subsequent career development. To be honest, I was very fortunate to participate in an Apache open source project when I first graduated and became a contributor. During the interview, they all benefited from it more or less.

Getting to know open source for the first time, making a breakthrough

Taking myself as an example, I will talk about my first experience of participating in open source. The following will mainly introduce some of my own experiences of participating in open source.

I still remember that the first time I participated in open source was when I first started an internship. At that time, I was an intern at a well-known domestic e-commerce company and participated in a data quality project, which was open sourced by eBay.

As an intern, I don't know many things very well, but ebay colleagues are very enthusiastic and willing to spend time guiding us in the configuration and construction of the project, ensuring that the project can run, and they also go to our company to explain. I didn't feel anything at the time, but in retrospect, they are not in the same company as us, and they are so enthusiastic. Thinking about it, sometimes colleagues in the same company may not be able to do it. Perhaps this is the power behind open source.

 

The last submitted code has also been merged, and I am very honored to be a contributor to the project.

Later, I have more or less participated in some open source projects, some because I want to understand the principles of the technologies used, and some may be rewarded for open source projects and so on. But it is very obvious that the group of people in the community are very enthusiastic, willing to take the time to review the code for you, and patiently answer your own questions. In the process, I also gained a lot. In the process of participating in open source projects, if you encounter problems, some friends in the community are very happy to guide you how to do it, help you solve the problem, and you can learn a lot from it.

Use your strength to solve many problems, don't let the open source corner squatting "blocking tiger"

The difficult part of personal open source aims to highlight the real personal experience of participating in open source projects and the difficulties found in practice, especially the specific thoughts.

Some time ago, I developed a simple tool because of a need in the company. At that time, I was thinking about whether other companies had similar needs, so I tried to open source it.

It is still difficult for individuals to open source, compared to enterprises. Since I am doing big data and back-end, I haven't done front-end for a long time, so I have almost forgotten about the front-end. This open source project also uses some open source frameworks on the Internet to avoid too much front-end development work. So I have to learn the whole stack, not only know the front-end, back-end, data, but also operation and maintenance. And these are basically a team participating in the enterprise.

Then there is how to promote it, which is also a long-standing problem. A normal company's products are supported by an operations team. But as a personal open source, you have to do 87 of these things. Write product and usage documents, write code for operation and maintenance, and even product promotion and operation. And these tasks are supported by multiple teams in the company, or at least a small team to support them. Finally, how to ensure the continuous update and iteration of open source projects, that is, to ensure the sustainability of the project instead of not updating it.

Tell me how I solved these problems when I was open source.

a. Development operation and maintenance, this can use some tools on the Internet, such as using docker to quickly build a development environment, and use some ready-made open source frameworks on the Internet to avoid some technical stacks that are not good at (like I am not good at front-end, but with the help of open source The framework is still fully capable of implementing its own products).

b. Promotion is mainly based on some of my previous accumulation. Since I have summarized the projects I have done for a long time, I have accumulated a group of fans through online output, so I use these resources to promote, and at the same time, there are many people around me. Technology development Those who have also used them to carry out some, so it is still barely able to promote.

c. Next is to write product usage documents. This part is actually quite sloppy due to frequent blogging and summarization. The written documents can be understood by others, and then improve the incomplete parts of the documents according to the feedback of some users. In this way, the written documentation can be guaranteed to be accessible to others when they start the project.

d. The last and most difficult point is that one person’s energy is really limited, and he has to do open source while completing the company’s own work. If it is done full-time, it may be much better. I hope more developers can come in Develop together.

The way I am currently trying here is to first develop the core functions of the project to ensure that the project is available, and then promote it to obtain the first batch of users or enterprises, so that iteratively proceeds based on user feedback. Instead of developing a large and complete product as soon as it comes up, after all, manpower is still limited.

As a personal open source, I think we need to concentrate on doing big things, that is, spending time on the core of the project. In this way, we can ensure that the project is bright and usable, so as to attract users. After the first batch of users, we can continue to iterate up.

 e. How to ensure the sustainability of open source projects. In this regard, I am currently trying to iterate in small steps. First, complete the core functions of dataCompare, and then promote it. Later, I found that some users and enterprises are trying or after some requirements Then follow up the feedback to improve, and build a project community or community to understand the user's usage faster, so as to achieve the sustainability of the project.

In fact, when I first prepared to open source dataCompare, it was only a personal interest and combined with my own needs. I was still worried about whether someone would use it and pay attention to it. Because I haven't written the front-end for a long time, I use the layui framework. Overall, the front-end is definitely not as good as professional front-end developers. So I also had the mentality of trying, pushed the code to GitHub, and then made some simple publicity, but found that some people were paying attention, which made me more motivated to optimize.

The most critical point is that an enterprise user was found to start using dataCompare, and I communicated with this user for a long time, and found that there is still a certain market. In addition, I also found that the CEO of a company is also more interested in this project and throws an olive branch to himself. So far, I have understood that doing open source can really benefit from it. I think doing open source is quite beneficial to me personally, and this is also the driving force for me to continue to persevere.

Experience a new journey: 0 to 1, a small step to a big step

In this part, I want to talk to you about what I have gained from participating in open source.

a. First of all, I have greatly improved my ability, and I need to do more things, instead of only being responsible for part of the content in the company. In the process of development and promotion of open source projects, it is not only necessary to be able to write codes, but also to be able to write product documents and operate products. This is often not paid much attention to by technology developers in companies. But it's great for personal improvement.

b. Knowing a lot of technical friends and understanding some situations of companies in the same industry can broaden one's horizons and not only limit to one's own company.

c. I am very happy to find that other companies are using their own open source projects, and at the same time, their technical influence has also been greatly improved. In this way, it is also a very big blessing no matter in your subsequent job hunting or as a technical KOL.

Practice of Open Source Practitioners: "Martial Arts Cheats" under Personal Open Source

This part can be regarded as some of my personal open source suggestions, I hope it can bring you more or less thinking.

Looking back, I am very happy that I have been preparing to open source dataCompare since the beginning, and now I can get the attention of some users, and there are also 1-2 enterprise users using and trying it.

Looking back on the whole process now, it can solve 1-2 problems of users, and then polish it, plus proper operation and long-term persistence. These three points are the key to the development of personal open source projects.

When I first launched dataCompare, just because I had similar needs in my work, I wanted to try to develop a simple version to assist my work and improve work efficiency. It can also be understood as dataCompare 1.0 version, and there is no interface version. Then I started to think about whether other companies have similar needs, so I tried to use some open source platforms on the Internet to create an interface and open source it, namely: dataCompare 2.0 version.

From version 1.0 to version 2.0, it took nearly a month overall, because I was worried that my code was not perfect enough, whether there would be problems if it was open sourced, etc., and whether other people were interested in this project was also very tangled at the time. Later, with the attitude of giving it a try, it was released as an open source, and at the same time, an article was written to introduce it, which gained a small wave of user attention. However, there are still no actual users. Later, due to busy work, there was not much time to continue operation and promotion. It was not until nearly 3 to 4 months later that I found this article on the Internet (https:// mp .weixin.qq.com/s/3KQdp1smgqwHfLGy1ASK_A ) added me and wanted to try this product, so far I feel that this product is in demand. Then guide the user to install and deploy, and finally make some adjustments based on the user's needs, and finally harvest the first enterprise-level user as a whole. It took about 7-8 months so far, from the development of version 1.0 To the end there are enterprise users. Through the above user attention and feedback, I can continue to push myself and have the motivation to continue doing it.

 Now recall the whole process. The following three points are the key to the development of an open source project:

a. It can solve 1-2 problems of users, and then polish it. It is best to combine some needs in the work, and then try to develop it abstractly, and improve the core functions, and polish the core functions.

b. Appropriate promotion and operation, "the smell of wine is also afraid of deep alleys", appropriate promotion and operation, so that the project can find the first batch of users, and then try to build together with users. By participating in some open source communities and being recommended by some friends, the project will gradually gain more attention, polish the core functions, and find the first batch of users, so that the development of the project can build a virtuous circle.

c. Long-term investment and persistence, through promotion and operation, will gain the attention and feedback of some users, which will also be more motivated to continue.

Open source project address:

https://github.com/zhugezifang/dataCompare

https://github.com/zhugezifang/dataService

About the author: Zhuge Zifang, worked in Jingdong and BAT successively, has many years of working experience in the field of big data, Apache Griffin&&Apache Zeppelin Contributor, author of dataCompare and dataService, WeChat: zhugezifang001

Guess you like

Origin blog.csdn.net/weixin_43291055/article/details/130992680