Een basisgids voor het kiezen van de juiste technische stapel voor clientwerk

Foto door Robert Anasch op Unsplash

Inzicht in de impact van het kiezen van de juiste technologie-stack is een belangrijke succesfactor voor freelance-ontwikkelaars. Deze gids onderzoekt de belangrijkste vragen die u moet beantwoorden bij het kiezen van de beste technologieën voor de applicatie of website van uw klant. We raden u aan het te lezen voordat u onzorgvuldig op het nieuwste JavaScript-framework springt.

Zoals de meeste ontwikkelaars met een beetje ervaring weten, gaat het bij het professioneel bouwen van software niet alleen om snel verzenden. Het gaat ook over het optimaliseren voor onderhoudbaarheid, schaalbaarheid en beveiliging, en het niveau van elk hangt af van het bedrijf van de klant.

Een goede analyse van het project zal bepalen welke technologieën u zou moeten gebruiken, en niet andersom. Dit eenvoudige principe zal goede, langdurige zakelijke relaties bevorderen.

De impact van uw technische keuzes is voelbaar in bijna elke bedrijfslaag, van HR tot financiën, van management tot marketing. Een gebrek aan visie kan uw reputatie verpesten - een troef die geen freelancer in gevaar mag brengen.

Om de volgende lijst samen te stellen, hebben we senior freelance ontwikkelaars geïnterviewd over de belangrijke vragen die ze zichzelf stellen voordat ze een enkele coderegel schrijven. We verdeelden de resultaten in 3 blokken: het project begrijpen (zakelijk perspectief), de stapel kiezen (technisch perspectief) en de fakkel doorgeven (HR-perspectief).

Laten we beginnen.

Inzicht in het project

Het is verplicht dat u de productvisie, het bedrijf van de klant en het tijdsbestek van het project begrijpt.

Wat is de reikwijdte, het budget en het tijdsbestek van het project?

Heeft uw klant alles nodig dat binnen 2 weken wordt geleverd om te overleven, of is het een langetermijnproject dat robuustheid en maximale onderhoudbaarheid vereist?

Je zou moeten weten:

  • Wanneer moet het worden afgeleverd?
  • Hoeveel van uw uren kunnen ze betalen?
  • Wat is het verwachte resultaat?

De antwoorden bepalen het ruwe kader voor de volgende vragen. Het is ook een zeer goede manier om te weten of uw klant realistische verwachtingen heeft voordat u begint (lees dit bericht voor meer informatie over signalen om vreselijke klanten te identificeren).

Is het een one-timer of een langdurig project?

Een kortstondig project dat na een evenement of een bepaalde mijlpaal onmiddellijk wordt vernietigd, moet niet als een project van tien jaar worden benaderd.

Het heeft geen zin om de architectuur van een prototype te over-engineeren - het is gewoon een geweldige manier om kostbaar budget te verspillen. Aan de andere kant, als de klant van plan is in de komende 5 jaar 20 ontwikkelaars in te huren om uw codebase te herhalen, moet u robuuste pijlers bouwen op uitgebreid geteste technologieën.

Kunnen zij de technische schuld aan?

Een klant die onder druk staat om inkomsten te genereren, tolereert een beetje technische schuld om zo snel mogelijk op de markt te komen. Als het verzamelen van marketinggegevens het hoofddoel is, zullen ze niet geïnteresseerd zijn in continue integratie en het percentage testdekking. Eerst zakelijke doelstellingen, tweede technische doelstellingen.

Een beetje opleiding kan hier nodig zijn. Het is uw verantwoordelijkheid om hen te laten begrijpen wat de gevolgen zijn van het opbouwen van technische schulden op de lange termijn. Het tonen van een dergelijke vooruitziende blik is een goede manier om geloofwaardigheid op te bouwen.

Hoe veilig moet het zijn?

Denk nu even na over het werkveld van je klant. De kans is groot dat de gevoeligheid van hun gegevens varieert, toch? Welnu, de technologieën die u kiest, moeten deze unieke realiteit weerspiegelen. Je hebt geen 4096-bit RSA- en DDoS-bescherming nodig voor de website van het lokale festival.

Maar een experimentele plug-in integreren met bekende exploits voor een app met financiële informatie? Een beetje riskant, makker.

Maar toch, draad licht als het gaat om door veiligheid geobsedeerde klanten. Sommigen horen buitenaardse horrorverhalen die hen 's nachts wakker houden:

"Maar ik ben ervan overtuigd dat deze Russische hackers die ik op tv heb gezien de mailinglijst van ons restaurant zullen stelen."

Nee, beste klant. Dat zullen ze waarschijnlijk niet doen.

Kan ik het project aan?

Het kiezen van een project dat ver boven je vaardigheidsniveau ligt, zal vrijwel zeker in een puinhoop eindigen.

Uw ongeschoolde keuzes belasten de workflow en mijlpalen worden gemist. Wees niet roekeloos met het geld van uw klant - juridische consequenties zijn nooit te ver weg.

Als je twijfels hebt over je vermogen om een ​​project op te leveren, zorg er dan voor dat je je onderzoek doet voordat je aan boord gaat.

De juiste stapel kiezen

Laten we nu verder gaan met de zorgen over projectbeheer. Laten we het hebben over wat er echt toe doet: de stapel. Het kiezen van de juiste technologieën moet vrij natuurlijk komen als je een beetje ervaring hebt en een duidelijke visie hebt op wat je moet bouwen.

Hoe kan ik niet coderen?

Honderden frameworks en duizenden plug-ins worden beheerd door actieve communities van ontwikkelaars. Verspil uw kostbare tijd niet aan het opnieuw ontwikkelen van iets dat in de loop der jaren al is gepolijst.

Misschien heeft u niet eens een server nodig! Gulle en gepassioneerde mensen proberen uw werk gemakkelijker te maken - negeer hun inspanningen niet. Het wiel opnieuw uitvinden is dom.

De ontwikkelingstijd moet altijd gericht zijn op wat het project uniek maakt: de aangepaste bedrijfslogica. Voordat u een enkele coderegel schrijft, moet u controleren of deze waarde toevoegt aan het project.

Is het te veel of te weinig vermogen?

Uw klant is van plan aangepaste t-shirts te verkopen aan lokale klanten via een kleine e-commerce? U hebt geen hoge beschikbaarheid, load-balanced, geclusterd, no-SQL front-end caching-mechanisme nodig, klaar om een ​​miljoen gelijktijdige klanten te ondersteunen. Dit zou hetzelfde zijn als met een vrachtschip uw appartement verlaten.

Aan de andere kant is het niet super effectief om een ​​stier met een katapult neer te halen. Een klant die van plan is dagelijks duizenden artikelen te verkopen, zal u kwalijk nemen voor het kiezen van een gratis CMS-oplossing die op een goedkope instantie is geïmplementeerd.

Kies het juiste gereedschap voor de taak.

Zijn deze technologieën goed gedocumenteerd en ondersteund?

In een Japanse codebase zonder commentaar graven omdat een mysterieuze plug-in plotseling niet meer werkte, is niet de beste manier om een ​​nacht door te brengen. Zorg voor een actieve community rond elke technologie die u kiest. Maak je zorgen als de laatste repository-update 4 jaar geleden was.

Dat gevoel van hulpeloosheid wanneer je 3 nutteloze Google-resultaten voor je technische vraag krijgt, is nog erger wanneer de klant je aan de telefoon schreeuwt.

Begrijp ik de risico's van de nieuwe technologie?

Dat trending framework op HackerNews is waarschijnlijk niet goed getest. Je voelt je misschien gespannen omdat je het gebruikt als de centrale pijler van een productieproject, maar weet alleen dat het veel onnodig extern risico met zich meebrengt.

Als u zich nog steeds onzorgvuldig voelt, experimenteer er dan in ieder geval voldoende mee om te weten of het de use cases van uw klant ondersteunt. Ze geven er niet om dat je framework 300 stemmen krijgt als je het de dag voor een belangrijke mijlpaal moet veranderen.

De fakkel doorgeven: dit gaat niet alleen over jou

Bron

Ik haat het om het op deze manier op te splitsen, maar je klant wil niet voor altijd op je vertrouwen. Natuurlijk, je stapel is misschien robuust, goed gedocumenteerd, veilig en razendsnel.

Maar als slechts een kleine gemeenschap van ontwikkelaars over de hele wereld weet hoe het te laten werken, bent u bezig met een impasse. Klanten haten impasses.

Zullen ze ontwikkelaars kunnen vinden om met uw Stack te werken?

Het kan zijn omdat je niet meer met hen kunt werken, of omdat ze het team willen opschalen, of misschien willen ze de ontwikkelingsinspanningen intern repatriëren. Maar uiteindelijk heeft uw client een andere ontwikkelaar nodig om code naar de codebase te pushen.

Als ze alle vacaturesites ter wereld moeten doorlopen om één ontwikkelaar met een specifieke expertise te vinden, raad eens wie de schuld krijgt?

Krijgen zij het geld om voor dergelijke ontwikkelaars te betalen?

Als de enige mensen die ze kunnen inhuren om aan je te gecompliceerde tech-stack te werken, dure goeroes zijn met 20 jaar ervaring, is het misschien kosteneffectiever om iemand anders alles opnieuw te laten doen met reguliere technologieën.

Tunnelvisie niet op de ontwikkelingsinspanningen, het gaat niet alleen om jou.

Gevolgtrekking

We hopen dat dit korte artikel je helpt om horrorverhalen, stressvolle nachten en lastige discussies te voorkomen. Als u de technische beslissingen bespoedigt voordat u belangrijke vragen beantwoordt, bespaart u op de lange termijn geen tijd. Dit is ervaring praten.

Neem de tijd om de situatie goed te beoordelen, zelfs als u al uw IDE of code-editor wilt openen.

Tevreden klanten = Herhalen / doorverwijzen Zakelijk = Minder Bizdev-inspanningen = Meer tijd besteed aan ontwikkeling.

Opmerking: dit bericht is gemaakt in nauwe samenwerking met Philip Barclay, een goede vriend van mij. Phil maakt al jaren digitale producten en bouwt nu geweldige dingen bij Mirego en Picks.

Laat het ons weten als we belangrijke vragen in de reacties hebben gemist!

Oorspronkelijk gepubliceerd op de Snipcart-blog en gedeeld in onze nieuwsbrief.