Com os produtos de software levando equipes inteiras de pessoas a se desenvolver, quanto um programador pode realizar sozinho? Em outras palavras, uma única pessoa poderia escrever Photoshop, MS Word, etc ...? E se não pudessem, o desenvolvimento web seria uma área em que um programador poderia fazer muito?
web-development
project-management
fender1901
fonte
fonte
Respostas:
Comece pequeno
Atualmente, o Linux é muito maior do que suas primeiras iterações, mas o importante é que ele tenha material suficiente para ganhar tração.
Somente se vale a pena
Eu tenho a regra pessoal de que vale a pena fazer coisas grandes se for fundamentalmente diferente das demais. Caso contrário, você estará mergulhando em um oceano vermelho .
Bom para começar, mas nem sempre sustentável
Se o seu software for bom o suficiente, convém levar a sério. Tomemos, por exemplo, Markus "Notch" Persson, criador do Minecraft. No IIRC, ele começou o jogo sozinho e, quando ganhou força, começou a procurar colaboradores e até fundou uma empresa.
Embora seja gratificante conseguir algo sozinho, os grandes projetos cumprem seu potencial com a colaboração do desenvolvedor, e não um único gênio, o que me leva ao próximo ponto.
Um mito
Confira The Myth of the Genius Programmer , uma palestra de Ben Collins-Sussman e Brian Fitzpatrick no Google I / O 2009. Você deve ter todas as falsas expectativas lá. O ponto principal que quero destacar aqui é que, às vezes, um único desenvolvedor recebe o crédito pela coisa toda, enquanto havia mais pessoas por trás.
É definitivamente possível
Outro exemplo, além de Linus Torvalds, é John Carmack. Ele foi portador de Wolfenstein em apenas quatro dias, quando a EA estimou uma equipe completa por dois meses.
Não é a quantidade de código, é o conhecimento arquitetônico e técnico que permite obter grandes coisas com menos código do que você esperaria.
Dada a habilidade e o conhecimento (além do nível médio), você pode fazer muito trabalho parecer pouco.
fonte
Devido à natureza do trabalho que estou desenvolvendo, desenvolvi algumas aplicações bastante grandes por conta própria. Então, sim, é factível. Eu poderia continuar falando nisso por horas, mas não tenho muito tempo agora, então aqui estão alguns prós e contras da experiência pessoal.
Prós:
Contras:
fonte
Com alguma dedicação e habilidade, uma única pessoa pode definitivamente conseguir muito. No entanto, não é fácil, apenas ser um bom programador não é suficiente. Para um projeto bem-sucedido, você geralmente precisa pensar em casos de uso, design de interface do usuário, documentação, suporte e muito mais. Quando as coisas começarem a rolar e os números de usuários aumentarem, tudo sozinhos se tornará irrealista - esse é o ponto em que mais pessoas entrarão no projeto (através da participação da comunidade, contratação de pessoas ou outros) ou o projeto morrerá.
fonte
Depende do software que ele / ela está tentando desenvolver, restrição de tempo e habilidades. Se ele / ela estiver desenvolvendo um aplicativo MIS simples, é muito possível que ele possa fazê-lo em pouco tempo. Tentando desenvolver um software tão complicado quanto Photoshop, MS Word, Blender, Flash e etc, é possível, mas leva muito tempo e possui a função mais básica e os recursos são simples.
fonte
Tudo depende da habilidade, do tempo gasto e da vontade de fazê-lo. Quanto mais conhecimento você tiver, menos tempo levará para realizar alguma coisa. Você obterá um conhecimento extremamente íntimo da base de código como o único desenvolvedor que também pode acelerar o processo de descobrir / refatorar / depurar.
Pessoalmente, estou trabalhando em um aplicativo de transferência de desktop para servidor. Eu codifiquei o aplicativo do servidor, o aplicativo de desktop e testei tudo sozinho. Eu escrevi o instalador para o aplicativo mesmo. Eu descobri uma maneira de permitir arrastar e soltar nos ícones da bandeja do sistema no Windows e até acabei escrevendo uma nova biblioteca Java do zero. Eu fiz isso ao longo de um ano e ainda está em desenvolvimento e teste.
Todo esse projeto foi uma provação principal. Todos os dias, depois da escola, eu trabalhava no projeto e nos fins de semana. É tão grande quanto o MS Word, Photoshop, etc? Não. O projeto ainda é grande e sempre em crescimento, e é possível alcançar muito.
fonte
Atualmente, estou trabalhando nesse projeto em meu tempo livre (é um aplicativo da Web, não um aplicativo de desktop, mas os princípios são os mesmos). Aqui está o que eu encontrei até agora:
1) Não reinvente a roda . Use bibliotecas / estruturas existentes, em vez de fazer tudo do zero. Uma ressalva aqui: preste atenção às licenças, pois elas se aplicam à sua distribuição / release / modelo desejado. Algumas licenças copyleft exigirão que você abra seu "trabalho derivado" de código-fonte aberto. Algumas licenças permitem apenas o uso não comercial. Acompanhe as bibliotecas / estruturas que você usa, para poder fornecer a atribuição apropriada na tela / área "Créditos" / qualquer outra coisa
2) Trabalhe iterativamente . Isso está relacionado ao que a dukeofgaming disse com "Start Small" . É muito mais provável que você fique com um projeto se conseguir ver resultados. Até que você possa ver algo funcionando, qualquer desenvolvimento que você fizer é equivalente a pintar no escuro.
3) Não tenha medo de pedir feedback / ajuda desde o início . As chances são de que você não seja bom em tudo. Se você é ótimo no nível básico da codificação, provavelmente é péssimo na interface do usuário. O inverso também se aplica. Nunca é demais receber conselhos daqueles que são melhores que você em uma determinada área. Muitas pessoas evitam isso porque estão preocupadas com alguém que rouba sua ideia. Não se preocupe com isso - se alguém tentar copiar você, isso significa que você gosta de algo que vale a pena. As idéias são baratas, a implementação é fundamental. A Apple não inventou o MP3 player, a Microsoft não inventou o sistema operacional, o Facebook não inventou a rede social e o Google não inventou o mecanismo de busca. O que eles fizeram foi torná-lo atraente para os usuários (e não ruim).
fonte