Microtask para programadores e um método de pagamento alternativo para criptomoedas

O convidado da segunda edição do Run Loop - um podcast sobre quem fabrica produtos com as próprias mãos - Yegor Bugaenko. Vamos perguntar a ele sobre o objetivo de criar sua própria criptomoeda Zold. Saiba por que Ruby é usado para escrevê-lo. Vamos conversar bastante, começando pela rotina diária e pelos livros, terminando com perguntas provocativas sobre a qualidade do trabalho dos programadores. E, finalmente, discutiremos que desenvolvedores que não sabem participar de projetos de código aberto logo se tornarão inúteis para qualquer pessoa.



Apresentadores: Ilya Tsarev, Alexey Mileev, Roman Busygin.

Ilya Tsarev está envolvido no desenvolvimento de iOS no Alfa Bank, fala em várias reuniões e conferências.

Alexey Mileyev está desenvolvendo a versão Android do App in the Air, lidera o canal Telegram para desenvolvimento do Android e supervisiona os relatórios no AppsConf.

Roman Busygin - um dos principais desenvolvedores do Yandex.Music para iOS, frequentemente fala em conferências e participa de podcasts.

Fora: Yegor Bugaenko - fundador e CEO da Zerocracy, uma empresa que desenvolve robôs de IA para gerenciar programadores; Fundamentalista de OOP; autor de Elegant Objects, uma série de livros sobre programação orientada a objetos; criador de Cactoos, Takes Framework, JCabi e Rultor, além de blogueiro e filantropo.

Alexey : Conte-me o que você está fazendo.

Egor : Eu principalmente programo e gerencio programadores. Essas são duas áreas da minha atividade.

Ilya : Por favor, diga-me como você combina isso. Em que momento você gerencia o desenvolvimento e em que momento está programando? Conte-nos mais sobre sua empresa.

Sobre empresa


Egor : Nossa empresa se chama Zerocracy e é uma troca freelancer onde freelancers, programadores, testadores, designers e todos os tipos de outros talentos técnicos estão conectados. Por outro lado, clientes que precisam desses talentos e desejam concluir um projeto de software.

O núcleo principal do site é a inteligência artificial automatizada. Este é um robô - um bot de bate-papo que controla o processo de desenvolvimento. Ele define tarefas para programadores, coleta os resultados deles, paga-lhes dinheiro, avalia a qualidade de seu trabalho e organiza todo o processo de desenvolvimento. Inicialmente, eu mesmo escrevi esse robô, inteligência artificial. Agora, como parte insignificante de seu desenvolvimento, a equipe de desenvolvimento continua a refinar e melhorar.

Eu sou o CEO da Zerocracia. A maior parte do meu tempo é gasta nisso. No campo da programação, tenho vários projetos que estou desenvolvendo ativamente. Um deles é o nosso projeto piloto zold.io. Esta é uma criptomoeda criada por nós dentro de nossa empresa, que é uma alternativa às soluções de blockchain existentes. Eu sou o arquiteto desta solução. Não sou o único a trabalhar nisso, mas sou arquiteto. Este produto é interessante porque está escrito na versão atual em Ruby.

O projeto zold.io é uma maneira alternativa de resolver o problema dos pagamentos distribuídos . O Blockchain é uma solução bastante conhecida e amplamente popular para organizar dados distribuídos em servidores com zero confiança. Propusemos nossa solução, que não usa blocos, cadeias e tudo o que há na blockchain. Resolvemos esse problema à nossa maneira. Parece-nos que nossa solução também é interessante. É isso que faço na programação ativa.

Por que rubi


Roman : Egor, é muito interessante ouvir sobre blockchain. Isso é uma coisa muito computacionalmente complicada. Você usa Ruby, que é famoso por sua lentidão. Quase todo mundo está tentando evitá-lo em grandes projetos. Por favor me diga por que Ruby?

Egor : Não temos uma blockchain. Temos criptomoeda, mas não blockchain . Muitas vezes, as pessoas conectam dois conceitos. Parece-lhes que criptomoeda = blockchain. Essas coisas podem estar em um pacote, como no bitcoin, por exemplo, mas, de fato, o blockchain é apenas uma maneira de armazenar dados em muitos servidores com confiança zero em cada servidor individual. O Blockchain é realmente uma tecnologia ou método de armazenamento de dados que requer velocidades sérias e recursos de computação.

Nosso projeto não usa blockchain. Portanto, outros aspectos foram importantes. Para nós, a velocidade da computação não desempenha um papel importante. Eu escrevi um artigo em nosso blog chamado " Why Ruby? " E apontei três pontos que respondem a essa pergunta.

  • Ruby é uma linguagem muito compacta em comparação com outras linguagens que eu falo: Java, C ++ e JavaScript. O código Ruby é muito mais curto e fácil de escrever. Isso em Java requer 100 linhas de código, em Ruby pode caber em 20.
  • Devido à sua compacidade, Ruby é muito conveniente para experimentação . A solução não foi criada imediatamente; vários meses foram gastos em amostras, erros e versões quebradas. Conseqüentemente, muita correspondência. Seria menos conveniente fazer isso e reescrevê-lo repetidamente em Java.
  • O Ruby possui um sistema muito conveniente para implantar , instalar e reinstalar uma versão que não está disponível, por exemplo, em Java. Para JavaScript, há npm e, em C ++ e Java, se esses sistemas existirem, eles dependem da plataforma. O Ruby é um sistema multiplataforma e é muito conveniente para reinstalar novas versões. Isso é muito importante para nós, porque estamos lidando com uma comunidade de colaboradores que estão em plataformas diferentes, eles não estão subordinados a nós. Um sistema é, por definição, distribuído e anônimo. Portanto, era muito importante para nós que nossa solução fosse fácil de instalar.

Portanto - Ruby.

O objetivo da criptomoeda criada


Alexei : Qual objetivo você buscou quando criou sua criptomoeda, quando criou o ouro?

Egor : Tivemos vários motivos, os objetivos apareceram mais tarde. Francamente, o primeiro motivo foi puramente técnico. Foi interessante resolver um problema tão técnico. Sou engenheiro e técnico, resolver problemas técnicos complexos me dá prazer.

Eu ouvi muito sobre o blockchain e essa criptomoeda é agora cada vez mais popular. A questão do mercado é uma questão de economia. Ele não estava muito interessado em mim, eu estava mais interessado na questão da tecnologia. Ou seja, como eles tomam a decisão de blockchain para confiarmos em um sistema que não possui um servidor centralizado e um ponto de controle central. Como todo mundo está falando sobre blockchain, foi interessante para mim tentar resolver esse problema do meu jeito. Um desafio tão puramente técnico: vamos tentar, deve dar certo.

Não funcionou imediatamente. Três meses não funcionaram, mas no final foi encontrada uma solução. Já está funcionando agora, e mesmo com essa moeda já pagamos aos programadores que trabalham em nossa plataforma. As transações são ativadas, embora até o momento não tenha havido publicidade, mas para nosso uso interno, no modo de produção, mas em pequenas transações as executamos.

O segundo motivo é grande econômico. Não gostamos dos métodos de pagamento existentes para programadores que trabalham na plataforma Zerocracy. Atualmente, usamos PayPal e Bitcoin. Nos dois casos, as transações são bastante caras. Temos que pagar grandes comissões para transferir fundos para programadores e em micropagamentos em Zerocracia. Para microtask, pagamos micropagamentos aos programadores de até várias dezenas de centavos. Como você sabe, o PayPal, o Bitcoin a esse respeito são muito caros e não são adequados para microtransações. No Bitcoin, a comissão por uma transação será de cerca de 50 centavos, no PayPal, de 30 a 40 centavos. É muito caro se o valor total da transação for de 1 dólar. Portanto, o motivo econômico era tomar uma decisão de pagamento muitas vezes mais barata e muito adequada para micropagamentos , e não para pagamentos grandes, como no bitcoin.

Os objetivos apareceram recentemente. consiste em atrair uma quantidade suficiente de fundos para a plataforma Zerocracy usando criptomoeda , esse instrumento financeiro para atrair fundos de investimento para o projeto. Usando os recursos arrecadados, queremos aumentar os salários dos programadores que trabalham na plataforma. E, assim, torne essa plataforma atraente para uma ampla gama de desenvolvedores profissionais.

Agora, infelizmente, não existem orçamentos tão grandes na plataforma para pagar aos desenvolvedores de US $ 100 a 150 por hora . Com nosso modelo de controle - microtasking, microbudgeting - tudo está no nível micro, temos um trabalho orientado a resultados no nível micro. Portanto, é muito importante que as pessoas trabalhem e queiram trabalhar para o resultado, e não apenas dediquem tempo ao projeto, como costuma acontecer em outros modelos de desenvolvimento, incluindo o Agile. Para que o modelo se torne atraente, as pessoas precisam pagar muito. Chegamos a essa conclusão. No modelo tradicional, uma pessoa está acostumada a trabalhar por US $ 15 a 20 por hora, mas quando paga por 8 horas úteis, independentemente do que fez nessas 8 horas. Em nosso modelo, ele é forçado a fornecer 8 blocos de resultado para receber o pagamento por 8 horas. Portanto, US $ 15 por hora já é desinteressante, porque astronomicamente oito horas, pelas quais pagam por um dia inteiro, as pessoas geralmente trabalham de 15 a 20% do tempo. O resto do tempo é gasto lendo notícias, descanso e outras atividades paralelas de apoio. No nosso caso, essas atividades não são pagas.

Entendemos que em nosso modelo a taxa horária deve ser de 5 a 10 vezes maior que a taxa tradicional. Ainda não temos esses fundos. Usando a criptomoeda Zold, planejamos atrair capital de investimento através do mercado financeiro de criptomoedas, através do interesse em um novo meio de pagamento e usá-los para aumentar as tarifas de nossos desenvolvedores. Isso dará impulso a essa plataforma, uma alavanca de marketing, com a ajuda da qual mais tarde seremos capazes de atrair clientes valiosos.

Como é o dia de trabalho


Alexei : Você mencionou que, como engenheiro, gosta de resolver problemas complexos. Vamos falar um pouco mais sobre você. Como é seu dia de trabalho normalmente?

Roman : estou lhe dando um pequeno detalhe. Talvez você acorde e trabalhe imediatamente. Sugiro não limitar o dia útil ao momento em que você chegar ao escritório.

Egor : Primeiro, não tenho escritório: não vou a lugar nenhum. Em segundo lugar, eu não trabalho. Ou seja, não percebo o que estou fazendo como trabalho e não me percebo como pessoa do escritório. Gosto das coisas que faço. Faço-os porque gosto deles, e não porque cheguei ao escritório e tenho que fazer algo para concluir algumas tarefas. Eu apenas gosto do que faço.

Felizmente, tenho projetos em que posso programar ou gerenciar esses processos. Então, acordo, abro meu laptop e vejo o que estou feliz e o que gostaria de fazer nas próximas 16 horas. Eu não tomo café, tomo chá, então primeiro chá, depois um laptop .

As pessoas costumam me perguntar como eu organizo meu tempo. Tento organizá-lo, mas não funciona bem para mim. Muitas vezes desisto e faço o que quero. Muitas vezes, essa é a maneira mais eficaz de organizar seu tempo. Eu sempre tento ouvir meus desejos internos e faço apenas o que quero, e não o que preciso. Normalmente, o que eu quero me leva na direção certa.

Alexei : Você se concentrou no fato de não ser uma pessoa do escritório. Você nunca trabalhou no escritório ou houve tempo, mas depois mudou para suas tarefas?

Egor : Eu tinha um escritório. Trabalho em escritórios há anos. Parece-me que este trabalho é pessoalmente estressante e deprimente para mim. Ela me deprime muito mais rápido do que sinto qualquer efeito do escritório.

Não entendo por que, no mundo moderno, os escritórios são necessários como tais.

Entendo por que precisamos de alguns lugares onde você pode tomar café e deitar nos sofás. Entendo por que são necessários cachimbos de água e restaurantes. Entendo por que você precisa de lugares onde possa passar algum tempo. Mas eu absolutamente não entendo por que devemos sentar em filas, olhar para os monitores e tomar um café em um determinado ponto, depois voltar e sentar no mesmo lugar novamente. Parece-me irracional. Existem muitos outros lugares onde é mais interessante e mais confortável trabalhar: em um café, em casa, na natureza. Não vejo razão para unir pessoas em espaços de escritórios. Nos livros recentes, critico bastante a idéia de organizar e motivar as pessoas a trabalhar, combinando-as geograficamente. Esse conceito de conectar pessoas em um só lugar e direcioná-las em uma direção, para que elas façam uma coisa e consigam algo juntas, na minha opinião, deve ser uma coisa do passado. Agora não há necessidade específica disso, existem métodos de comunicação de alta qualidade, bom software, ferramentas de gerenciamento de alta qualidade. Só não precisamos mais nos sentar juntos para trabalhar.

Roman : Eu vou esclarecer um pouco quando falei sobre o escritório, eu quis dizer trabalhar para alguém. Você trabalhou para alguém e o que começou a fazer por si mesmo? Em que momento e por que a transição de trabalhadores independentes para trabalhadores independentes aconteceu?

Egor : Eu trabalhei um pouco por conta própria, mas nunca trabalhei para alguém. Eu sempre trabalhei para mim. A questão é: quem me paga o dinheiro, em cujos fundos eu o faço. Isso muda em certos pontos da minha vida. Uma vez pago por uma empresa, depois outra. Agora meu trabalho é pago por meus clientes. Amanhã meus investidores podem pagar por isso, depois de amanhã os leitores do meu livro. A pergunta "De onde vem o dinheiro?" sempre tem opções . Sempre pode haver uma resposta diferente para essa pergunta. Eu sempre trabalhei apenas para mim.

É difícil para mim imaginar que gastaria meu tempo, meus esforços e minha energia em algo que iria para outra pessoa. Isso é inaceitável para mim. Isso vai me desmotivar muito, e não vou durar muito: alguns dias, talvez algumas semanas, mas vou tentar romper com isso. Enquanto estou no escritório, trabalhando no projeto de outra pessoa, fazendo algo que parece trabalhar para alguém, eu sempre trabalho para mim. Descobri como essa atividade pode ser pessoalmente útil para mim . Se eu estiver em um projeto e precisar instalar um novo sistema de implantação nele, eles me pagarão por isso, definitivamente criarei esse sistema para que eu possa escrever sobre isso em algum momento mais tarde, me diga para que eu possa usar algum produto de código aberto suportá-lo, para que eu possa pessoalmente suportar algo por mim nisso. Além disso, todo o trabalho nesse sistema parece funcionar para mim. Os clientes também receberão, é claro, um sistema de trabalho como resultado. Mas antes de tudo, eu pessoalmente recebo o benefício . Então eu sempre faço.

Ilya : Egor, por favor, diga-me, se você não tem nenhum lugar para trabalhar, você ainda escolhe: hoje você está em um café, amanhã em casa ou na natureza. Você tem um cronograma ou está apenas acordando e para onde quer que vá?

Egor : Antes, onde você quiser. Tento não planejar isso, porque se você ouvir seus desejos e motivos internos, muitas vezes inexplicáveis, no final, tudo ficará melhor. Não sei, talvez seja mais conveniente que alguém cumpra o cronograma, de acordo com o plano, mas tento ouvir a minha voz interior, que diz: "Estou cansado de casa, vamos a algum lugar". Pego um laptop e saio . Às vezes, apenas ando pela rua e vou a qualquer café que vejo, peço alguma coisa e três ou quatro horas, até o laptop sentar, eu trabalho. Então fico entediado e volto para casa.

Código à frente


Alexei : Você mencionou seu último livro. É chamado de código à frente. Vamos, Egor, vamos tentar formular brevemente em uma frase o que é o seu último livro.

Egor : Boa pergunta. De fato, no início de julho foi publicado um livro, que escrevi por mais tempo que todos os outros; passei 8 meses escrevendo. No total, começou há 1 ano e 8 meses. Eu me preparei por um longo tempo e depois por quase 8 meses escrevi, reescrevendo muito, mudando e jogando capítulos inteiros. Ele fez um grande esforço . Não posso julgar o que aconteceu. Gostaria muito de receber feedback, mas ainda não há comentários sobre a Amazon.

Curiosamente, Code Ahead é um livro de arte . Ou seja, não foi escrito em linguagem técnica, existem personagens e um enredo, diálogos, monólogos, conversas. Mas, ao mesmo tempo, é claro que esse é um gênero misto. Eu nunca vi isso antes, mas escolhi esse gênero. Em uma apresentação artística gratuita, um grande número de referências técnicas e científicas. Os personagens conversam entre si e, no decorrer do diálogo com suas declarações, comentários e fatos em questão, na parte inferior da página há um grande número de notas de rodapé que confirmam ou refutam as declarações feitas pelos personagens.

No total, o livro contém mais de trezentas referências a livros, artigos, artigos científicos e tudo mais. Combinei o gênero artístico e quase semi-científico. Como aconteceu - eu não sei. Tente comprar e ler. Parece-me interessante. Eu o li muitas vezes, o que não aconteceu com os livros anteriores. Escrevi livros anteriores, li e publiquei uma vez. Eu li este corte dez.

Romano : Para escrever livros, você precisa ler muitos livros, bombeie-se nessa direção. Egor, o que você recomendaria ler aos nossos leitores, mas não do que você escreveu, mas de outro. O que primeiro vem à mente?

Egor : Há um artigo no meu blog chamado " Meus livros favoritos ". Existem 16 livros que eu definitivamente recomendo a leitura. São livros que li mais de uma vez. Eles são valiosos para mim, e eu sempre volto para eles. Além disso, eu recomendaria o livro Code Ahead. Cerca de dez por cento desses trezentos links são marcados com um ícone especial de asterisco. Outros links simplesmente confirmam os fatos ou os refutam. Os links com um asterisco são literatura que eu recomendaria definitivamente ler, e até mais de uma vez.

Relatório AppsConf


Ilya : Conte-nos sobre o tópico do seu relatório. Em breve você estará falando no AppsConf, sobre o que você vai falar?

Egor : Vou dar uma olhada na situação com a programação e sua qualidade, e tentarei oferecer minha própria solução para esse conflito. Parece-me que o conflito reside no fato de que as expectativas padrão de gerenciamento, técnicas e organizacionais, dos programadores se resumem ao fato de que o programador deve escrever um código no qual não haja erros . Essa expectativa é bastante tradicional e popular. Eu o conheci tanto na prática real quanto na literatura, e posso dar vários links para livros que dizem que um bom programador escreve código em que não há bugs. Se usarmos esse conceito como fundamental e o basearmos, na prática chegamos rapidamente ao problema: o que fazer para que os programadores escrevam código sem erros? Como encontrar um bom programador e se o programador for ruim?

Existem duas soluções:

  • contratar "bons programadores";
  • para fazer bom dos ruins, reforçando o negativo em torno da própria idéia de erro ou bug que eles podem potencialmente criar.

Contratamos os bons, por um lado, e por outro lado, assustamos os ruins para que eles se tornem bons. Eu acho essa abordagem em todos os lugares. No relatório, tentarei oferecer uma solução alternativa que funcione em nossa empresa e trabalhamos em nossos projetos. Temos uma atitude positiva em relação aos bugs . Acreditamos que os erros e defeitos criados pelos programadores são um componente natural de qualquer processo de criação de um produto de software. Erros são necessários, devem ser, são necessários. , Production, , . , , , — . , - . .



: , , ? , , ?

: . , , , . . — , , . , , . . .

, , , , , , , 100%? , , , . , , , . . . , , , , - , , - , , . . , . , , .

: , . , - Production, , - . , ? -, ?

: , , . . , , , , —. . , , , , Code review. , Code review-, contribution , , Production.



: , ?

: . . , .

: , ,

: : « Big Data ? ?» , , , . , web. , . , . , , , , . Big Data .



: , GitHub, 1700 300 , . . , , ? , - , ?

: -, . 2009 GitHub. , , . - , Open Source , , . , , . , , , .

, , , , . Open Source. , . , , . , - , , , 10 . , . , Open Source .

, , Java , , . , , , . - , , — . , , pull request production.

Open Source. pull request. A pull request , , . , Open Source . , . , , . , . , , , , , . . , , . , deployment, . , .

, , : «, ? , ». . — 15% , 85% — . , . , , , , . — .

. , . . , , . . , : « , . , , Open Source, - Open Source».

- . - . Open Source, GitHub Stack Overflow. , , . , , pull request-, , , pull request-. , . . — . 10-15 , , . , GitHub.

deployment


: , , . , , - , . , - . ?

: . , 25 . . — 70, , , 70 . , . — Zold, Ruby gem, .

deployment, , , . . 70 e-mail, Bitcoin, , . . . , , . , , . , . , , -- , 5-7 . . deployment . - , . , , , .

: , AppsConf , 8-9 . , , .

: , . , , . , , . , .

, , .

Source: https://habr.com/ru/post/pt418371/


All Articles