Choisir la (bonne?) Technologie et l'environnement

10

Nous sommes deux développeurs sur le point de commencer le développement de nouveaux produits Web.

Nous sommes tous les deux fans de l'approche Lean Startup et souhaitons pratiquer le déploiement continu.

Voici le dilemme - nous venons tous les deux d'un arrière-plan C # / Windows et nous devons décider entre:

Restez fidèles à .NET et Windows, nous ne perdrons pas de temps à apprendre de nouvelles technologies et mettrons tous nos efforts dans le développement.

Passez à Ruby on Rails et Linux qui a une bonne réputation de montée en puissance rapide et de vaste support open source. Le côté négatif est que nous devrons mettre beaucoup d'efforts dans l'apprentissage de Ruby, Rails et Linux ...

Qu'est-ce que tu ferais? Quelles autres considérations devons-nous prendre?

Tor
la source
Quand prévoyez-vous d'avoir un produit prêt?

Réponses:

11

Eh bien, l'option la plus simple est d'utiliser .NET, car l'effort que vous consacrez à l'apprentissage de l'autre plate-forme est (du point de vue commercial) gaspillé à ne pas apporter le produit à vos clients.


la source
5

Dans une startup, jouez sur vos points forts. Je suggère de rester avec les technologies .NET et de voir si vous pouvez entrer dans le programme BizSpark de Microsoft . Cela vous permettra d'obtenir des licences abordables pour le logiciel dont vous avez besoin, avec un risque minimal impliqué.

Ryan Hayes
la source
Je voudrais souligner que BizSpark expire après 3 ans, ce qui signifie que vous paierez le prix fort pour votre pile MS l'année 4. En fonction de la quantité de logiciels et du nombre de serveurs que vous utilisez, cela peut dépasser de loin tout coût de passer des cycles supplémentaires au début à apprendre l'alternative open source.
Jordan
2

Vous devez tenir compte des facteurs suivants:

1) Le coût du déploiement sur la plate-forme que vous avez choisie (il existe des licences de démarrage pour .NET / Windows, mais vous devrez éventuellement payer, plus les coûts d'hébergement / matériel comparatifs)

2) Le temps requis pour améliorer les compétences (zéro pour .NET dans ce cas)

3) Ce que vous construisez et la pertinence de la plate-forme pour cela à court terme (prototype, utilisation à faible volume, etc.) et à long terme (va-t-elle évoluer et avez-vous l'intention de la faire évoluer ou est-ce, disons, B2B, auquel cas les volumes peuvent toujours être relativement bas)

Mon instinct est de rester avec ce que vous savez, car vous aurez beaucoup de choses à faire sans avoir à apprendre autre chose, mais vous devez peser les autres facteurs en fonction des spécificités de votre idée.

Jon Hopkins
la source
2

Stackoverflow se fait en .Net . Donc rien de mal à propos de C # .Net ou de la technologie Windows.

Mon premier démarrage était en C # .net car a) tous les fondateurs connaissent C #. b) visual studio était et est toujours très convivial pour les développeurs pour le débogage, etc.

Le démarrage a été un échec massif pour des raisons commerciales ET technologiques.

Quelle que soit la technologie que vous choisissez, vous devez vous demander si vous êtes suffisamment habile / bon pour utiliser cette technologie pour le lancer dans X ans.

Comme vous pouvez le voir, les critères que nous avions ci-dessus n'étaient pas assez stricts. Nous ne savions pas combien de temps nous avons besoin pour construire la chose. Nous connaissons justement C # .Net, c'est tout.

Aucun de nous n'a d'expérience dans la construction de quelque chose de proche de ce que nous voulions construire.

Après un certain temps, les frais de serveur, etc. nous font abandonner C # et réécrire le tout en php. C'est une autre histoire et une autre erreur commerciale.

Le fait est que cette technologie que vous allez utiliser, elle n'a PAS besoin d'être cool, énervée. Vous souhaitez créer une webapp. Alors choisissez celui qui vous donne la meilleure chance . Qu'est-ce qui vous donne la meilleure chance?

Choisissez la technologie que la ou les personnes réalisant la plupart des programmes ont RÉELLE expérience dans la construction d'une application similaire complexe AVANT

Veuillez lire les 10 fois ci-dessus.

Si je devais m'adresser à moi-même plus jeune il y a 3-4 ans, et il dirait: "Mais je n'ai aucune expérience de la complexité que j'ai à l'esprit DANS N'IMPORTE QUELLE LANGUE. Alors, comment dois-je choisir?"

La réponse de 50 000 $ est (oui, c'est combien j'ai gaspillé à apprendre de mes erreurs):

Choisissez celui qui est le plus indulgent pour votre développement d'apprentissage.

Comment définissons-nous le pardon ?

Par exemple, .Net repose sur le serveur Windows. Et les serveurs Windows sont plus chers que les serveurs Linux. C'est un fait. Même si vous avez des licences Bizspark, vous feriez mieux de vous assurer que vous devez prendre en compte l'argent une fois vos licences expirées.

Ne supposez PAS que vous seriez en mesure d'apprendre C # .net dans 3 ans. C'est dur à dire. Pour moi, cela n'a tout simplement pas fonctionné.

J'ai déjà essayé RoR. J'ai lu une fois un article sur 2 banquiers d'investissement avec une expérience de programmation ZERO réussie avec une webapp sur les voyages dans le programme Techstars.

Ils utilisent RoR.

J'ai de l'expérience en programmation. Mais RoR n'a tout simplement pas fonctionné pour moi.

J'ai acheté des livres d'Amazon, etc. J'ai essayé. Sérieusement, j'ai fait de mon mieux.

Enfin, je me suis installé sur Cakephp. C'est assez bon pour moi d'avoir les meilleures chances de relancer une autre webapp. Pardonner suffisamment pour que j'apprenne à mon rythme.

Tout comme vous avez trouvé de meilleures petites amies non pas parce qu'elles sont meilleures, mais parce que vous êtes une meilleure personne après plus d'expérience, peut-être que je m'étais aussi améliorée en tant que programmeuse

Il ne s'agit donc pas de savoir ce qu'est un meilleur cadre / langage. Ou que Cakephp est le meilleur que j'ai utilisé. Peut-être que je suis enfin devenu un programmeur assez bon pour construire la webapp que j'avais en tête.

Il s'agit de ce qui vous convient le mieux pour vous rapprocher du lancement.

Oh, voici un cadeau.

Après 6 mois, lorsque vous débutez avec une version alpha ou bêta privée et que vous recevez les commentaires des clients, et que vous avez envie de réécrire le tout dans une nouvelle langue, devriez-vous?

Réponse:

JAMAIS. JAMAIS. JAMAIS.

Il y a un article de JoelOnSoftware sur la réécriture des logiciels par rapport aux logiciels de refactorisation. Je suis trop paresseux pour le trouver.

Il suggère la même chose.

Prenez-le de quelqu'un qui a choisi la mauvaise technologie, puis réécrivez le tout en php (pas de cadre), puis videz le démarrage à la fin. Et dépensé 50 000 $ dans le processus.

C'est comme le mariage. Choisissez une technologie et jusqu'à la mort, faites votre démarrage et la partie technologique.

D'accord, j'exagère, mais seulement parce qu'il est beaucoup trop facile de penser que toutes vos situations de programmation peuvent être résolues par un autre langage / framework. Tout comme penser que vous auriez un meilleur mariage en changeant une autre personne. Il est préférable de travailler davantage sur vous-même ou sur vos pratiques de programmation .

Bonne chance. Et continuez à apprendre. S'il vous plaît pour votre santé mentale, dépouillez les fonctionnalités au strict minimum. Allez sur google pour un produit minimum viable (MVP).

C'est plus important que la technologie que vous choisissez.

Passez donc suffisamment de temps à planifier / concevoir ce MVP.

La planification est importante. Les plans ne le sont pas. Vous devrez peut-être abandonner vos plans après avoir passé 4 mois à planifier ce MVP, car vous devez réagir à des circonstances changeantes ou à la concurrence.

C'est d'accord. Le planning de 4 mois ne s'est pas perdu.

Vous auriez maintenant plus de connaissances sur le domaine que vous n'en aviez avant les 4 mois.

Donc, même si c'est un plan redessiné à la hâte à ce stade, il devrait être nettement meilleur que votre premier projet il y a 4 mois.

Bonne chance!

Kim Stacks
la source
1

Je vais aller à contre-courant de tout le monde ici et dire que vous seriez mieux servi pour emprunter la voie open source.

Je travaille dans .NET depuis environ 8 ans, et j'ai utilisé à peu près tous les langages et cadres Web open source les plus connus sur la même période.

Si vous voulez vraiment adopter l'approche Lean, vous constaterez probablement que la facilité d'intégration, le coût des serveurs et des logiciels et la productivité seront à long terme plus prudents financièrement et en fonction de votre niveau de capacité et de temps à consacrer cette entreprise, peut porter ses fruits à court terme.

BizSpark est une route dangereuse à descendre. Vous finirez par payer le prix fort pour cette pile logicielle lourde, alors que l'open source est toujours bon marché ou gratuit.

J'ai des serveurs configurés sur la configuration du serveur cloud de Rackspace. Vous pouvez obtenir votre propre nouveau serveur Linux brillant avec un stockage CDN pour 11 $ / mois + une bande passante mineure et des coûts de stockage. C'est l'argent du café.

Apprendre Linux et l'environnement open source peut prendre un certain temps pour s'y habituer, mais ce n'est pas un projet pluriannuel pour devenir compétent. Il existe d'innombrables forums, procédures pas à pas et personnes capables et désireuses de vous aider à vous améliorer.

Jordan
la source
1
Si vous vous développez professionnellement (c'est-à-dire afin de fournir votre revenu personnel), si le coût des licences logicielles est un facteur important, vous vous sous-payez vraiment. Même MSDN-Universal (obtenez le VL, inutile d'être stupide) est une fraction du coût des personnes.
Richard
@Richard: mais pourquoi payer des gens + des licences de logiciel si vous pouvez simplement payer des gens? Et je fais vraiment référence aux coûts de licence du serveur, pas à l'argent des développeurs IDE, qui, comme vous l'avez mentionné, est relativement bon marché. Sauf si je viens de le voir mal faire, une fois que vous commencez à essayer de faire évoluer le matériel de votre serveur, vous devez payer pour quelques licences de serveur et licences d'accès client. Voilà le tueur. Bien sûr, cela ne vous mordra pas lorsque vous exécutez des hôtes locaux de débogage, mais encore une fois, si vous essayez vraiment de gérer une entreprise allégée, pourquoi payer même 1000 $ supplémentaires si vous avez d'autres options viables?
Jordan
0

Si j'étais dans votre situation, j'utiliserais la technologie qui me convient le mieux. Nous avions une situation similaire dans mon entreprise où le client demandait Java et nous étions tous des développeurs .net.

Au début, tout allait bien, mais plus tard, de petites choses nous ont posé de tels problèmes et à un moment donné, les délais étaient SciFi.

D'après mon expérience, il est facile d'apprendre de nouveaux langages de programmation et de nouvelles technologies, mais pour vraiment savoir qu'il faut du temps.

Vladica Ognjanovic
la source
-2

Faites-le simplement en c # et dot net .

  • Vous êtes déjà bon
  • c'est mieux que le rubis sur les rails
NimChimpsky
la source
2
Quelles données utilisez-vous pour soutenir votre affirmation selon laquelle C # est meilleur? Et quels sont vos critères?
Walter
1
beaucoup de données très importantes et statistiquement significatives
NimChimpsky