
Olá pessoal!
Faz três anos desde que comecei a trabalhar na biblioteca
imaskjs . Embora o código-fonte aberto seja um processo interminável, pode-se dizer que, no geral, o trabalho é concluído e movido para uma correção de bug lenta. No momento, fiz tudo o que queria, não há outras idéias, exceto testes de xixi, mas preguiça.
Não foi uma maneira fácil: muitas vezes eu queria desistir de tudo e muitas vezes pensei que tudo já estava perfeito. Agora tudo se acalmou e posso, com uma alma calma e consciência limpa, lembrar como era e filosofar sobre o assunto sobre se valeu a pena e por quê.
Antecedentes
Tudo começou com o fato de que, para o trabalho, precisávamos de uma biblioteca para mascarar uma variedade de campos em uma variedade de formas. O formato da máscara foi fornecido a partir de um sistema externo, a validação já estava no back-end, mas isso não foi suficiente para testes insaciáveis. Poucos de nós se mostraram soluções existentes para mascarar. Nós brigamos com eles por um longo tempo, bifurcamos, terminamos, conseguimos insetos. Como resultado, nunca alcançamos o que desejávamos idealmente, mas todos concordaram com o que temos e esquecemos. Mas então pareceu-me que algo estava errado aqui - na verdade, deveria ser diferente. Vi tantos lugares para melhorias nos códigos-fonte de praticamente todas as bibliotecas populares. Por que não escrever minha própria solução? Foi terrivelmente interessante ver o que aconteceu, mas a ideia parecia insana. Agora eu sei que o medo de um novo negócio é um bom sinal.
Há muito debate sobre se você deve escrever sua bicicleta ou não. No meu caso, eu também não tinha muita certeza: depois de meio ano atrás, quando eu apenas comecei meu caminho de desenvolvimento na empresa e era considerado um júnior, parece que ninguém precisa dele, e é apenas uma perda de tempo, ninguém por perto escreve algo assim, talvez é melhor ganhar mais dinheiro ... Sim, perdi muito tempo, não apreciei no trabalho e não ganhei dinheiro com isso. Mas tenho certeza que definitivamente valeu a pena. Eu queria falar sobre isso.
Motivação
O próprio projeto dá ingenuidade e descuido à escola, é esse sentimento quando você está completamente absorvido no processo, suas mãos coçam, seus olhos ardem e nada mais existe por aí. Foi demais. Obviamente, eu não podia estar envolvido na biblioteca o tempo todo, como eu a entendia e isso não era necessário - você precisa dar um tempo à comunidade entre os lançamentos para ouvir feedback e ajustar o vetor de desenvolvimento. Mas assim que voltei ao desenvolvimento, esse mesmo sentimento voltou novamente, o interesse não desapareceu e não havia razão para parar. Talvez alguém tenha tido mais sorte com o trabalho, mas meu trabalho rapidamente se transforma em rotina - o mundo da empresa é bastante monótono e monótono. E quanto mais você permanecer nele, mais experiência e mais rotina. Seus projetos economizam e ajudam a não se esgotar. Obviamente, isso não precisa ser de código aberto, mas é mais fácil obter atenção e obter feedback.
Personalidade e Sociedade
Eu acho que a comunicação e o feedback são de grande importância, tanto para o projeto quanto para o desenvolvimento do indivíduo. Enquanto você não está na sociedade, não está claro quem você é e o que pode fazer, é difícil avaliar a si mesmo e suas realizações do exterior. E sem isso, é difícil crescer. Além disso, o valor do projeto é difícil de avaliar sozinho. Anteriormente, eu queria pensar que não me importava com a opinião da sociedade, não preciso de ninguém e isso não é importante. Eu teria me lembrado, mas felizmente o desejo de fama e estrelas no github se mostrou mais forte. Felizmente, o assunto não se limitou a isso. Mas quando as opiniões dos outros começaram, isso significou muito - se alguém encontrou falhas ou iniciou um bug, você começa a se mexer e tenta corrigi-lo mais rapidamente para que ninguém mais veja - depois de 5 minutos, lança a nova versão - mas não há testes e vai ainda mais longe. E quando você publica um artigo, geralmente não é possível adormecer à noite. Talvez eu esteja exagerando um pouco, mas em geral - um circo no projeto, um hospício na minha cabeça e cada versão é um enorme estresse. Agora tudo isso causa um sorriso, mas acho que pela primeira vez, muitos que não se importam com o que ele faz terão que passar por isso.
Como em qualquer empresa, gradualmente a influência de fatores externos diminui, e eu quero entender, você realmente fez algo valioso e útil ou outra embalagem de doces que será descartada em seis meses. Você se acostuma gradualmente ao trabalho regular com as pessoas e já deseja receber feedback não de todos, mas de quem realmente é do assunto e que utiliza ao máximo os recursos da biblioteca. A opinião das pessoas é importante, mas este é apenas um momento de trabalho.
Por outro lado, não se deve superestimar a opinião da sociedade. Quando você começa, tudo parece que tudo está contra você. Nem obrigado, nem bem-feito, só que aí não é assim e não é assim. Eu pensei que tinha feito uma grande coisa, eu poderia ter colocado minha alma nela, e agora todos deveriam admirar, mas em resposta apenas críticas. Para mim, foi um ponto dolorido, não estava pronta para essa atitude e, a princípio, reagi com bastante clareza aos comentários, tentando me defender. Então comecei a perceber que as pessoas eram normais, que eu não as entendia, estava de alguma forma deprimido e até me desculpei. Mas se não houver experiência, você terá que se defender primeiro, caso contrário suas mãos podem cair e tudo pode terminar em nada.
Além disso, do ponto de vista do mantenedor, é preciso distinguir os motivos das pessoas. Todo mundo tem sua própria opinião e todo mundo está enganado. Portanto, você precisa filtrar as dicas, especialmente aqueles que estão tentando puxar um cobertor sobre si mesmos, buscando interesses exclusivamente pessoais. Algumas pessoas pensam que tudo deve ser feito de maneira diferente, por exemplo, no meu caso:
- cara, por que você não tem a capacidade de exibir a máscara fora da caixa somente quando o campo foca?
- por que sua data padrão funciona apenas com o formato dd.mm.aaaa, que não é o mais comum, mas para outros é necessário alterar a serialização?
- Onde conseguir a máscara para o telefone do Brasil?
Etc.
O fato é que eu, como pessoa, tenho minha própria visão do projeto e isso é completamente normal. O fato de a biblioteca ser de domínio público não significa que ela é adequada para absolutamente todos e que você precisa tentar agradar a todos. Pode-se observar como, sob a influência da sociedade, alguns projetos são simplesmente separados em diferentes direções, privando-o de integridade, o que leva ao caos, bugs e, geralmente, à morte lenta do projeto. No entanto, para mim, tento consertar as necessidades da sociedade, especialmente se elas começarem a se repetir. Mas a solução não é necessariamente uma alteração na própria biblioteca, pode ser um código de amostra, uma parte da documentação ou um comentário no código. Agora, estou pensando em adicionar exemplos de perguntas comuns à documentação, como as acima. Mas, no começo, eu também reagi de maneira bastante aguda a essas perguntas, considerando-as inadequadas e em algum lugar possivelmente estúpidas. Uma das razões para esse comportamento é que eu também queria impor meu ponto de vista. Porque minha biblioteca é a melhor!
Seja o melhor
Isso inevitavelmente causa conflitos. O tempo passou, mas ainda acho que minha biblioteca é linda, a ideia e a implementação são simplesmente brilhantes! Não descreva em palavras !!! 1 Mas com uma ressalva: é o melhor para mim e para aqueles que estão em circunstâncias semelhantes. É improvável que exista uma biblioteca universal para tudo: sempre existem algumas peculiaridades e casos especiais. E é maravilhoso que haja uma variedade de soluções para vários casos, e uma pessoa possa não apenas ser expulsa, mas também o que realmente lhe convém. Infelizmente, apenas um momento é esquecido nesse idílio: QUALIDADE NÃO É SUGERIDA. Confesso que escrevi alguns testes. Mas é necessário distinguir estritamente o gosto dos erros de produção, especialmente na fase de design. Você não pode comprometer a qualidade - é aqui que você pode realmente pegar suas inclinações perfeccionistas e se refrescar com isso. Bem, sim, você deve reescrevê-lo uma vez, talvez dois, pode quebrar a API. Mas acredito que, em geral, é útil tanto para a pessoa quanto para o projeto, se abordado com sabedoria. De um jeito ou de outro, a conclusão que tirei para mim - “tudo tem seu próprio nicho” - me ajuda em todos os lugares. Posso dizer com certeza que a vida se tornou mais fácil. Quando você começa a se comunicar normalmente com as pessoas, começa a perceber que muitas pessoas realmente querem ajudar e começam a apreciar essa ajuda e relacionamentos.
Relacionamento
E as pessoas estão respondendo. Provavelmente para mim foi mais valioso. Eu conheci e mantenho contato com pessoas realmente interessadas no que fazem. Existem poucos e muito menos com quem você pode construir relacionamentos. De uma forma ou de outra, o código aberto oferece essa oportunidade e, lentamente, uma equipe é formada para despertar algo realmente legal. Que outra alternativa existe? Se eu realmente quero investir no que faço, e não apenas apodrecer no cabeçote, copiando outro CRUD ou formulário de interface.
Benefício
Tópico dolorido. Sinto que nem todo mundo vai gostar do que escrevo aqui, mas devo dizer que não gosto e não concordo em avaliar tudo com dinheiro. O dinheiro é bom, mas não em primeiro lugar. Hoje em dia, a ênfase no dinheiro, prestígio, etc. coisas externas é muito tendenciosa. Parece que não há diferença em como obtê-los, se pagarem, isso é bom. Isso apenas leva ao fato de que a qualidade é perdida, uma bela embalagem de doces permanece, mas o significado é perdido.
No começo, eu também pensei que eles se sacrificariam e viveriam para mim agora, mas depois as prioridades mudaram. A propósito, por três anos de desenvolvimento, eles me deram 3.500 rublos (rublos russos, KARL!), Dos quais 3.000 foram dados por uma pessoa boa a quem sou muito grato. Não muito. Mas, acima, escrevi muitos valores que adquiri durante o desenvolvimento do projeto. Outra coisa que eu esqueci de dizer é que muitas ofertas de emprego de uma grande variedade de empresas, pequenas e grandes, caíram em mim. Se você deseja encontrar ou mudar de emprego, o opensource é uma ótima maneira de falar sobre você. Então, no geral, acho lucrativo. Apenas decida por si mesmo o que é importante para você e defina prioridades. Eu não queria que isso se transformasse em outro trabalho, então não me concentrei nisso. Eu gosto do outro código aberto como ele é - abertura, liberdade, ideologia, entusiasmo e motivação. Provavelmente eu o sacudiria e não o diluiria com dinheiro. Embora talvez eu não saiba cozinhar. Talvez Sitnik ensine.