Software volledig opnieuw schrijven in het bedrijfsleven

Ik ben een programmeur met tien jaar ervaring. Ik heb in deze tien jaar als softwareontwikkelaar gewerkt als fulltime programmeur in 2 bedrijven.

Ik heb altijd graag mijn eigen bedrijf gehad. Mijn vraag is, is het goed om vanuit het niets een bedrijfsproject te starten en schrijf elk stukje code van nul?

Onthoud bijvoorbeeld dat er sommige open source-apps in de buurt van mijn project zijn en dat doe ik het liefst haal de bron en wanneer de klanten in mijn bedrijf komen, begin ik van programma te veranderen. Niet om enkele maanden door te brengen en de markt te verliezen.

Ik heb gezien in bedrijven die ik heb gewerkt, het schrijven van een nieuw project is slechte marketing gewoonte en zal eindigen om alle klanten te verliezen, gebaseerd op lange tijd van uitkomst en enorm en gedetailleerde bugs die binnenkomen.

0
@ st2000 Een van de belangrijkste dingen is time.yes.En zou je SE en SW beschrijven die je hier hebt gebruikt?
toegevoegd de auteur Anu, de bron
toegevoegd de auteur Peter LeFanu Lumsdaine, de bron
Dit is een adviesvraag, toch? De meeste andere SE-sites wenden zich hiertegen. Maar ik kan het niet helpen erover na te denken. Wat bedoel je met het verliezen van de markt? Kan geen tijd zijn. Ik denk dat de meeste bedrijfssoftware ouder is dan de machines waarop het draait. U bedoelt dat "iemand" het uiteindelijk goedkoper zal doen? Dan zul je altijd in de problemen zitten. Ik zeg dat het is wat je naar de tafel brengt. En het is (moet zijn) meer dan alleen de SW, omdat alle mensen denken dat sommige SW verschrikkelijk zijn (S.A.P komt voor de geest). Doe er vervolgens niets aan.
toegevoegd de auteur Ella, de bron
SE == stackexchange-websites (er zijn veel stackexchange -websites). SW == SoftWare.
toegevoegd de auteur Ella, de bron

5 antwoord

is het goed om vanuit nul een bedrijfsproject te starten en elk stukje code vanaf nul te schrijven?

Het is, als dit waarde toevoegt voor de klant. Het probleem is dat dit vaak wordt gedaan alleen omdat de ontwikkelaars een gevoel van controle willen. Ze vinden het niet leuk om rondgeduwd te worden door bestaande code. Ze weten niet hoe ze de bestaande code moeten gebruiken zonder dat ze het overnemen.

Er is een fascinerende TED vertelt over het helemaal opnieuw bouwen van een broodrooster . Het illustreert prachtig dat alles zelf doen een hoop werk is om zelfs kleine dingen gedaan te krijgen.

Het punt is, dat is prima als dat is wat de klant wil. Als je iemand kunt vinden die dat op prijs stelt en ervoor betaalt, prima. Als het ze niet interesseert en het vandaag gewoon wil, dan is dit een vreselijk plan.

Wat u kunt doen is isolatietechnieken zoals afhankelijkheidsinversie, dockercontainers en pakketbeheerders gebruiken om de code die u schrijft te omzeilen van de frameworks, hulpprogramma's en bibliotheken die u gebruikt, zodat er geïsoleerde plaatsen in uw codebasis zijn die noch kennen noch schelen over dingen die door anderen zijn gemaakt. Als je dit doet, kun je die andere dingen vervangen door nieuwe spullen of zelfs je eigen spullen wanneer je liever alles opnieuw moet doen omdat er een nieuwe versie van hun stront uitkwam.

Als je dat doet, heb je alle controle die je nodig hebt, zonder alles zelf te hoeven schrijven. Als dat alles is wat u nodig hebt, bent u klaar want als u eenmaal weet hoe u dit moet doen, kunt u het product nog steeds op tijd ontvangen.

Als je echt alles zelf wilt schrijven, gewoon om te zien of je het kunt, dan moet je misschien beginnen met heel kleine klusjes die het doelwit zijn. Microcontrollers brengen je dicht bij het metaal. Kijk of iemand een op maat gemaakte Hardware Abstraction Layer nodig heeft en zal ervoor betalen.

5
toegevoegd

is het goed om een ​​zakelijk project helemaal opnieuw te starten en elk bericht te schrijven   stuk code van nul?

Ja, als dat is wat u wilt doen.

Het is niet typisch de meest praktische manier om dingen te doen, en u vindt het misschien handig om bibliotheken of componenten van derde partijen te gebruiken om functionaliteit te behandelen die geen kernonderdeel van uw product is. Maar uiteindelijk is het uw project/bedrijf, dus doe wat u denkt dat het beste is. Je hebt geen toestemming van iemand nodig.

2
toegevoegd

Wat is de waarde die u op de markt wilt brengen? Wat kun je beter doen dan je concurrenten?

  • Als het softwareframeworks schrijft, verberg ze dan niet in een eindproduct met één markt, maar maak uw bedrijf van het aanbieden van dat framework aan de markt.

  • Als het de klant begrijpt en snel oplossingen voor zijn behoeften biedt, hergebruik dan wat u het beste uitkomt. Verspil geen tijd aan het schrijven van frameworks.

  • Als u een klant hebt waarbij de kant-en-klare oplossingen niet passen en alle andere "box-combiner" -concurrenten faalden, doe dan beide, het gebruiksspecifieke raamwerk en het einde -gebruiker. De klant zal geduldig zijn als u hem kunt overtuigen.

  • Als u alleen maar de beschikbare kaders van andere groepen wilt combineren, dan zult u het moeilijk hebben tegen de ontelbare concurrenten die hetzelfde doen, maar meer kracht van de mens hebben.

    p>

Dat gezegd hebbende, welk raamwerk/bibliotheek/componenten u ook kiest, beslis wijs. Het feit dat een framework een prachtige whitepaper heeft, zegt niets over de hoeveelheid werk die je moet uitgeven om het in je project te integreren. Sommige vragen kunnen zijn:

  • Hoeveel dagen zou ik moeten besteden voor de implementatie van het onderdeel dat ik nodig heb, vanaf nul? Als het maar een paar dagen duurt, ga je voor je eigen implementatie.
  • Frameworks hebben altijd invloed op de code die ze gebruikt. Verbetert het gebruik van het framework de kwaliteit (leesbaarheid, robuustheid, prestaties, draagbaarheid, testbaarheid, gemak van debuggen, ...) van uw applicatiesoftware?
  • Hoeveel dagen moet ik besteden om het framework te begrijpen, voordat ik het kan gebruiken?
  • Hoeveel dagen zal het duren om het framework in mijn project te integreren?
  • Hoe buggy is het framework?
  • Hoe goed is ondersteuning en documentatie?
  • Zal het raamwerk volgend jaar nog bestaan?
  • Behouden nieuwe versies van het framework compatibiliteit of doen de ontwikkelaars vaak wijzigingen in het framework?

Ja, het gebruik van bestaande frameworks kan je veel helpen, en het negeren ervan is zeker verkeerd, maar denk niet "framework = benefit gebruiken".

2
toegevoegd

Is het goed dat een bedrijfsproject het helemaal opnieuw opstart en elk stuk code van nul schrijft?

Nee, dat is een vreselijk idee om de redenen die u al hebt geïdentificeerd: u wint uw bedrijf door uw product of dienst op de markt te krijgen . De manier om dat te doen is om bestaande tools te gebruiken (of ze nu open source of proprietary zijn) waar ze de juiste optie zijn en bouw de bits op waar geen goede optie is. Anders besteed je een enorme hoeveelheid tijd en moeite aan het bouwen van een buggy, minder functionele vervanger voor Spring, ASP.NET of wat dan ook terwijl je concurrenten al je potentiële klanten hebben.

Als je dit tot het uiterste gaat, ga je dan je eigen besturingssysteem, je eigen hardwarestuurprogramma's, je eigen compilers, enzovoort schrijven? Nee, want dat zou stom zijn. Dus aangezien u niet alles vanuit het niets gaat schrijven, hoeft u zich geen zorgen te maken over het opnieuw gebruiken van code op toepassingsniveau van andere mensen.

1
toegevoegd
zou je het gedeelte minder functionele vervanger voor Spring, ASP.NET, willen uitleggen. Ik zit in dit deel en ik schrijf een nieuw project in MVC en ik denk dat er open source C# CMS zou zijn zoals Umbraco die mijn werk aankan met heel veel minder bugs
toegevoegd de auteur Anu, de bron

Als je om de zoveel tijd wilt eten, beschouw dat dan als een metafoor voor wat er zal gebeuren met een bedrijf dat geen product verkoopt gedurende een langere periode.

Om tijd te besparen, kunt u opensourcesoftware gebruiken, de community ondersteunen door deze te verbeteren ten voordele van de opensource-community en vervolgens een eigen shell rond het product te schrijven om dit als het product met toegevoegde waarde te verkopen.

The recently purchased by Microsoft github.com & the BitBucket offering by Atlassian come to mind as examples of this approach.

1
toegevoegd