A long time ago, in 2014, I made a small utility for myself in order to translate the C # model into the TypeScript code. She saved me a lot of time and nerves. And so, in September 2015, I decided to arrange my “experiments on the knee” in some kind of digestible form and pour them onto GitHub. So began my amateurish participation in the development of open source software. As time went. And so, yesterday in the repository with this project, finally, the anniversary, 300th kommit appeared. In connection with this significant event, I would like to share my amateurish experience about what you will have to face if you suddenly come up with the idea of ​​developing something "for the benefit of the development of the industry." I will state some numbers, tell some cool stories, and share my impressions of what it is to write and maintain an opensource-project without moms, dads and loans company support, payment and ... and free time. Come under the cut, sit down, we begin.
Let's start with the fact that on GitHub more than 90 million repositories . Some of them are known, some are not very, some are generally private. In view of the mass popularity, students began to use Github for assignments, teachers for lectures, authors of books for tutorials, and even enthusiasts for legislation . Just imagine what a fucking abyss of code and projects it is! However, I put a bottle of brandy that if a journalist gets attached to you right now and asks to name known repositories, you will call it offhand ... well, about 15-30. What does this mean? So this is what GitHub is a huge universe of software products, most of which, I am sure, are known only to their authors. And maybe 5-10 to their friends.
Becoming more or less noticeable in this crowd is quite difficult, I tell you.
Even if you steal the data of bank cards of all-all users of the world and put them on GitHub, then I am sure that you are banned and prosecuted This is just no one will notice . Why am I telling such obvious things, you ask? But ... damn they are not obvious! Especially for the author of these lines :) Especially 3 years ago. Then I naively thought that it was enough to do something really useful, specify the tags, write the README and people will find everything themselves, download everything themselves. Well, seriously, since some kind of left-pad , consisting essentially of 47 lines of code, scored a thousand stars, my thing, which objectively simplifies development - well, 300 will be typed, right?
Hmmm ... no. Unfortunately, this does not work. The left-pad was created in 2014 and was completely unknown to anyone until the famous events of 2016 . If you look at the graph of the distribution of stars, then we can observe a rise almost at 90 degrees just at that very ill-fated time. From this marvelous story, there are obviously some sad conclusions:
Without proper marketing, your best idea in the world will go unnoticed.
Black PR is also PR.
Not always a crazy number of stars suggests that the project is good.
But it is not all that bad. If you are already prepared to get depressed about this, then my advice to you is to set aside the handkerchiefs and the pillow for sobbing.
Better do something useful. First of all - useful for yourself.
Estimate without any software product, your life is not a joy. Here to you personally, reading this post. What application, framework, service hell you are lacking? At your work or in your daily life. Estimated? Fine. Hammer in Google and if from the issuance of your request blows melancholy and inaudible - go ahead! Get a repository, open IDE and write. Write what you dreamed about, collect and share. The solution is simple - if specifically your project benefits you, then around the world, most likely, there will be a thousand or other people to whom it will also help and who will be grateful to you. I am sure that for the first time such an audience is more than enough for you. Then it's up to you to bring your work to all these wonderful people and not to spill it along the way.
I heard, in some companies there is such a practice. If at the interview, the candidate mentions his opensource project, then the very next paragraph begins to crucify him on the topic “how many stars?”, “How many downloads?”, “How many live projects are used?”. So, I declare to you responsibly: such questioners should be sent to the stump with a quick and decisive movement of the language, get up and leave the interview, forgetting forever the name of this company and their friends about it. If a manager (or someone interviewing you there) comes up with such a question, then he has never had a chance to develop free software, he hasn’t heard about marketing, and generally gives little attention to sounds that he himself publishes. . Working with this will not work.
Sadly, but apparently, a fact: according to my observations, companies are somehow behind popular and large-scale projects.
For example, in the form of direct financing of development: if the project is done during working hours, then it is de facto paid. Yes, yes, even if you have "Friday-for-your-own projects" - what, do you think it is not in the budget? Or in the form of information support (articles, conferences, videos). Well, or in the form of support "staff", a la "Vasya, go help Oleg to make a feature in his project." And this is not to talk about quite frank cases of funding opensource development like EntityFramework or .NET Core, when there are entire departments involved in such projects. Or all at once (here the conspiracy therapists may ask the question "who benefits from it," but we will come to this).
To me, from the resources, the company provided only free testing of my work on living people. And no, I'm not complaining - I myself insisted on it so that all rights and control over the development remain with me. And for the company with which the contractor relationship has been connecting me for the last 4 years, IT is not so much a core business. It's awkward to distract people somehow. In general, the bottom line is as follows: the company treats with understanding, supports morally and provides its system for checking and running the project on live users. In exchange, it receives the priority right to support and bug fixes, as well as consultations, implementation and staff training. Bozhechki, I speak in the words of a major integrator, although in my project there are only about 5 thousand lines (without tests).
Oh, and there was still such an interesting case. I bought 2015 studio, 2017 Community Edition, but besides that I use JetBrains ReSharper. And he bought me too. Among other things, I also have an account on Azure, where for a nominal money there is a simple website with information about me, links to projects and documentation. So here it is. JetBrains has a free license program for open-source developers. Well, I think - give, zaaplatsya. Penny, but save. I will have a gift ReSharper. Why not? Wrote, then, a letter to the desired address. Like so. I am doing a project like open source. Give, they say, a license. The answer is this:
If you’re meeting your needs, you’ll be able to meet your requirements.
If you’re looking for a program, it’s not worth it.
I can provide you with some commercial services ( http://www.reinforced-sc.com/Info/Contact ), therefore, project.
In short, omitting the details. Essentially, they didn’t like the fact that I wrote on my website (which is visited by 3.5 anonymus) that I’m ready to provide commercial advice and individual commercial support for any of my projects (of two, hehe). Neither the cost of services, nor any specific conditions - simply, they say, "if you suddenly need it - you write, we agree." As you understand, proposals, of course, have not been received. That I am a JetBrains employee and tried to explain in a short correspondence. In the end, I received the following answer:
If your project doesn’t provide a license for you.
“Well, not a fig for myself” - I thought - “does this mean that I’m supposed to remove from the site information about openness to commercial offers in exchange for $ 200 (the cost of a license for ReSharper) per year? , do not". And did not continue the dialogue.
There are, of course, many questions: first, How much mana from heaven is recommended to use during development so as not to get fat? If my project is used in the company in which I work, but I develop it in my spare time - is this considered to be the provision of commercial services? Secondly: if my project is not used in business - is it useless? Is JetBrains ready to fund useless projects? and if I specify my opensource-project in the resume and it increases my chances of being hired - is this also a commercial use? So maybe it also does not indicate in the summary? But it also happens that companies support the distributor informationally - is it also money just in a different form? Need to clarify! I don't understand anything at all.
In general, as you understand, I was confronted with the task of promotion and PR alone. The very first idea that came to my mind was to write how to use it all. Here I decided to cheat and combine the useful with the useful - I wrote the first article about RT for Habr (for which a UFO was invited). The idea was not so much in the "I dodel" -piere, as in how to place on Habré well, at least some Russian-language documentation. My colleagues are still from Russia, so they needed at least a small manual, but I didn’t want to explain to everyone in a correspondence or voice the same thing. So the first three articles were born, which were rather coldly received by the audience. This is understandable - it is unlikely that they were useful to someone from the habr-community, so I don’t worry about it.
The idea that it would be nice to give people some knowledge about how to use my framework did not give me rest, until I finally formulated it in this form:
The documentation is such a thing: it is useless without the project code, and the project code is useless without it.
Great idea, except that I knew very little about writing documentation. In addition to memchiki and jokees about undocumented code, it was clear to the backside that it was necessary to describe verbs for describing methods, and it is not necessary to document designers. On this my knowledge, perhaps, exhausted. I folded the first version of the README , filled out the project description and began to think.
How does an amateur approach to writing documentation? Of course, through doxygen, what else can come up to the programmer? No sooner said than done. I set myself the goal of sifting XMLDOC (this is like javadoc, only in C #) so that the build in Release does not give out the wornings "about missing comments for publicly visible members."
- C# , , "", . , internal
private
C#. : 150 ( — 250), 700 260 . - . , .
20 , - , . , , ? , . . , : — . : MSDN! .
"Gets or sets whether..." — - !
, .
30 , - " ". , , , . , , internal
( package
Java). , ! . , .
, , .
, ! doxygen .
, reference-, doxygen-, 150 , enum-, . — ! XMLDOC- , "" . , .
XMLDOC-, , . Autofac, ReadTheDocs.ord. reStructuredText. , . ? . ? ? , ? ? .
chebureque, . , . , , . , . , … , , ! , , , . . , .
, — . .
: , github wiki markdown- , . , , , , GitHub. . .
. -, , . , - . .
. 9 NuGet, , . , 2016 -. ( ?) !
?
"european it conferences 2016" . C# TypeScript. web, , , , IoT. , . , ! , , , , , " ". " ", " ", " ". , ! ", -, !". .
, , DeveloperDays 2016 . — ? , . , , — , 10 . — , . , , . , . . , , , .
— — — .
— , ! ! —… . , — , . .
. NuGet , 10 . , . , , issues! : . , . , faq, , , , .
StackOverflow! , !
C#- TypeScript, . — ! README , Support policy. StackOverflow , . FAQ. RSS .
, RT StackOverflow — , . ! stargazers Barclays Microsoft. — , , , , , … ! , Insights , JIRA - .
StackOverflow , , . . issues , - . . - . , - . , , ( , — ) , .
TDD — , .
— - , - . ,
, -. ( ), — 10, 99% - .
-, , C# TypeScript . , !
RT, dnx, .NET Standard, 3 .NET Core, 20 TypeScript , .
, - .NET Core :)
, , . , ( !). , , … - ? , : , , , . ( .NET Core, ). ? , .
3 . ? ? ! . , . . zip- — GitHub ! , , , OSS- - .
opensource- ? .
?
OSS : (opensource ) ( ). Microsoft OSS — .NET Core "Microsoft loves Linux" MS-, — Azure . — ! , .
opensource. -, Percona mysql, , " ". , , mysql , . mysql .
, OSS- , , . — : OSS- , . , .
OSS, , — , , , Apache Harmony, Sun Microsystems JRE ( , -).
OSS , . - — , , " " — . . — , , " — , " .. .
OSS — , . — - . , user group, community, , . — , . - . "member of something user group, contributor".
- OSS- , , , . .
, — . , , , . , — .
, , community. — , , , , — , , .
, , , — , , linux. "" Linux. , — . . - , " ", , opensource . . , . , .
. - , - " opensource", — .
, .
opensource, " " opensource- — , .
: OSS- OSS- — . , . .
, , , , " " " opensource". , OSS, . . , , . . , . , — . ? ...
, . :
!
Source: https://habr.com/ru/post/435878/
All Articles