Selecionando a tecnologia e o ambiente (certo?)

10

Somos dois desenvolvedores prestes a iniciar o desenvolvimento de novos produtos da web.

Nós dois somos fãs da abordagem de inicialização enxuta e gostaríamos de praticar a implantação contínua.

Aí vem o dilema - ambos somos provenientes de um background em C # / Windows e precisamos decidir entre:

Atenha-se ao .NET e Windows, não perderemos tempo aprendendo novas tecnologias e colocaremos todo o nosso esforço no desenvolvimento.

Mude para Ruby on Rails e Linux, que tem uma boa reputação de aceleração rápida e amplo suporte a código aberto. O lado negativo é que precisaremos fazer muito esforço para aprender Ruby, Rails e Linux ...

O que você faria? Que outras considerações devemos tomar?

Tor
fonte
Quando você planeja ter um produto pronto?

Respostas:

11

Bem, a opção mais enxuta é usar o .NET, já que o esforço que você gasta em aprender a outra plataforma é (do ponto de vista comercial) gasto em não levar o produto aos seus clientes.


fonte
5

Em uma startup, jogue com seus pontos fortes. Eu sugeriria continuar com as tecnologias .NET e ver se você pode entrar no programa BizSpark da Microsoft . Isso lhe dará licenças acessíveis para o software que você precisa, com o mínimo de riscos envolvidos.

Ryan Hayes
fonte
Gostaria de salientar que o BizSpark expira após três anos, o que significa que você pagará o preço total pela sua pilha do MS no ano 4. Dependendo da quantidade de software e de quantos servidores você está executando, isso pode superar em muito qualquer custo. gastando ciclos extras no começo aprendendo a alternativa de código aberto.
Jordânia
2

Você precisa considerar os seguintes fatores:

1) O custo da implantação na plataforma escolhida (existem licenças de inicialização para .NET / Windows, mas você precisará pagar eventualmente, mais os custos comparativos de hospedagem / hardware)

2) O tempo necessário para aumentar a qualificação (zero para .NET nesta instância)

3) O que você está construindo e a adequação da plataforma para isso a curto prazo (protótipo, uso de baixo volume etc.) e a longo prazo (será escalável e, de fato, você pretende escalar ou é, digamos, B2B, caso em que os volumes sempre podem ser comparativamente baixos)

Meu instinto é manter o que você sabe, pois você terá muita coisa sem precisar aprender outra coisa, mas é necessário ponderar os outros fatores com base nas especificidades da sua ideia.

Jon Hopkins
fonte
2

O Stackoverflow é feito em .Net . Portanto, nada de ruim na tecnologia C # .Net ou Windows.

Minha primeira inicialização foi em C # .net porque a) todos os fundadores estão familiarizados com C #. b) o visual studio era e ainda é muito amigável para desenvolvedores para depuração etc.

A startup foi um fracasso maciço por razões comerciais e tecnológicas.

Qualquer que seja a tecnologia escolhida, é necessário considerar se você é habilidoso / bom o suficiente para usar essa tecnologia para lançar em X anos.

Como você pode ver, os critérios que tínhamos acima não eram suficientemente rígidos. Não tínhamos ideia de quanto tempo precisamos para construir a coisa. Por acaso, estamos familiarizados com o C # .Net.

Nenhum de nós tem experiência em construir algo parecido com o que queríamos construir.

Depois de um tempo, as taxas do servidor etc. nos fazem abandonar o C # e reescrever tudo no php. Essa é outra história e outro erro em termos de negócios.

O ponto é essa tecnologia que você vai usar, que NÃO precisa ser legal, nervosa. Você deseja criar um aplicativo da web. Então escolha um que lhe dê a melhor chance . O que lhe dá a melhor chance?

Escolha a tecnologia que a (s) pessoa (s) que executam a maior parte da programação possui experiência REAL na criação de um aplicativo igualmente complexo ANTES

Por favor, leia o acima 10 vezes.

Se eu me dirigisse ao meu eu mais jovem de 3 a 4 anos atrás, e ele dissesse: "Mas não tenho experiência em fazer nada da complexidade que tenho em mente EM QUALQUER LÍNGUA. Então, como faço para escolher?"

A resposta de US $ 50.000 é: (sim, é isso que eu perdi aprendendo com meus erros):

Escolha a que mais perdoa o seu desenvolvimento de aprendizado.

Como definimos perdão ?

Por exemplo, .Net depende do servidor Windows. E o servidor Windows é mais caro que os servidores Linux. Isso é um fato. Mesmo se você tiver as licenças do Bizspark, é melhor garantir o recebimento de dinheiro assim que suas licenças expirarem.

NÃO presuma que você seria capaz de aprender C # .net em 3 anos. É difícil dizer. Para mim, simplesmente não funcionou.

Eu tentei o RoR antes. Certa vez, li um artigo sobre dois banqueiros de investimento com experiência em programação ZERO, bem-sucedidos em alguns aplicativos da web sobre viagens no programa Techstars.

Eles usam RoR.

Eu tenho experiência em programação. Mas o RoR simplesmente não funcionou para mim.

Comprei livros da amazon etc. Tentei. Sério, deu o meu melhor.

Finalmente, decidi pelo Cakephp. É bom o suficiente para eu ter a melhor chance de relançar outro aplicativo da web. Perdoar o suficiente para eu aprender no meu próprio ritmo.

Também, assim como você encontrou namoradas melhores, não porque elas são melhores, mas porque você é uma pessoa melhor após mais experiência, talvez eu também tenha melhorado como programador.

Portanto, não se trata de uma estrutura / linguagem melhor. Ou que o Cakephp é o melhor que já usei. Talvez eu tenha finalmente me tornado um programador bom o suficiente para criar o aplicativo da web que eu tinha em mente.

É sobre o que funciona melhor para você se aproximar do lançamento.

Oh, aqui está um brinde.

Depois de 6 meses, quando você estrear com um alfa ou beta privado, obtém feedback dos clientes e deseja reescrever tudo em um novo idioma, não é?

Responda:

NUNCA. NUNCA. NUNCA.

Há um artigo da JoelOnSoftware sobre reescrever software versus software de refatoração. Estou com preguiça de encontrá-lo.

Ele sugere o mesmo.

Escolha alguém que escolheu a tecnologia errada e depois reescreva tudo em php (sem estrutura) e depois despeje a inicialização no final. E gastou US $ 50.000 no processo.

É como casamento. Escolha uma tecnologia e, até a morte, faça sua inicialização e a parte da tecnologia.

Ok, exagerei, mas apenas porque é muito fácil pensar que todas as suas situações de programação podem ser resolvidas por outra linguagem / estrutura. Assim como pensar que você teria um casamento melhor mudando outra pessoa. É muito melhor que haja mais trabalho para você ou suas práticas de programação .

Boa sorte. E continue aprendendo. Por favor, pelo bem da sua sanidade, reduza os recursos ao mínimo absoluto. Acesse o google para o produto mínimo viável (MVP).

Isso é mais importante do que a tecnologia que você escolhe.

Portanto, gaste tempo adequado planejando / projetando esse MVP.

O planejamento é importante. Planos não são. Pode ser necessário abandonar seus planos depois de passar 4 meses planejando esse MVP, porque você precisa reagir às mudanças nas circunstâncias ou à concorrência.

Está bem. O planejamento de quatro meses não foi desperdiçado.

Agora você teria mais conhecimento de domínio do que antes dos 4 meses.

Portanto, mesmo que seja um plano redesenhado às pressas nesse estágio, ele deve ser notavelmente melhor do que seu primeiro rascunho, há 4 meses.

Boa sorte!

Kim Stacks
fonte
1

Eu vou contra a corrente de todos os outros aqui e dizer que você estaria melhor servido para seguir a rota do código aberto.

Trabalho com .NET há cerca de 8 anos e usei praticamente todas as linguagens e estruturas da Web de código-fonte aberto comumente conhecidas, bem como geralmente no mesmo período.

Se você realmente deseja seguir a abordagem enxuta, provavelmente descobrirá que a facilidade de integração, o custo dos servidores e do software e a produtividade a longo prazo serão mais prudentes financeiramente e dependendo do seu nível de habilidade e tempo para colocar em prática. este negócio, pode render a curto prazo.

BizSpark é uma estrada perigosa a percorrer. Você acabará pagando o preço total por essa pilha robusta de software, enquanto o código aberto é sempre barato ou gratuito.

Eu tenho servidores configurados na configuração do servidor em nuvem da Rackspace. Você pode obter seu próprio servidor Linux novo e brilhante com armazenamento CDN por US $ 11 / mês + largura de banda menor e custos de armazenamento. Isso é dinheiro do café.

Aprender o Linux e o ambiente de código aberto pode levar algum tempo para se acostumar, mas não é um projeto de vários anos para se tornar proficiente. Existem inúmeros fóruns, orientações e pessoas capazes e dispostas a ajudá-lo a melhorar.

Jordânia
fonte
11
Se você desenvolver profissionalmente (isto é, fornecer sua renda pessoal) se o custo das licenças de software for um fator significativo, você estará realmente se pagando mal. Até o MSDN-Universal (obtenha a VL, não faz sentido ser bobo) é uma fração do custo das pessoas.
Richard
@ Richard: mas por que pagar pessoas + licenças de software se você pode apenas pagar pessoas? E estou realmente me referindo aos custos de licenciamento de servidores, não ao dinheiro do IDE do desenvolvedor, que, como você mencionou, é relativamente barato. A menos que eu tenha acabado de ver isso errado, quando você começar a tentar expandir o hardware do servidor, precisará pagar por algumas licenças e CALs de servidor. Esse é o assassino. Claro, isso não vai incomodá-lo quando você está executando localhosts de depuração, mas, novamente, se você está realmente tentando administrar um negócio enxuto, por que pagar até US $ 1000 extras se você tiver outras opções viáveis?
Jordânia
0

Se eu estivesse na sua situação, usaria a melhor tecnologia. Tivemos uma situação semelhante na minha empresa em que o cliente solicitou java e éramos todos desenvolvedores .net.

No começo, tudo estava bem, mas mais tarde algumas pequenas coisas nos deram esses problemas e, a certa altura, os prazos foram SciFi.

Na minha experiência, é fácil aprender nova linguagem de programação e nova tecnologia, mas realmente saber que você precisa de muito tempo.

Vladica Ognjanovic
fonte
-2

Basta fazê-lo em c # e dot net .

  • Você já é bom
  • é melhor do que ruby ​​on trilhos
NimChimpsky
fonte
2
Quais dados você está usando para apoiar sua alegação de que o C # é melhor? E quais são seus critérios?
21710 Walter Walter
11
lotes de dados muito importantes e estatisticamente significativas
Nim Chimpsky