Product vs project: stel deze vragen tijdens je sollicitatie!

· 05-09-2018
Tijdens sollicitatiegesprekken die ik met beginnende software engineers heb, zie ik regelmatig dat ze niet precies weten wat ze kunnen verwachten van hun werk. Ze kennen hun vakgebied goed, maar de context waarin ze dat gaan uitoefenen kan heel bepalend zijn voor de dagelijkse werkzaamheden. Vooral het verschil tussen een bedrijf dat op projectbasis werkt en een bedrijf dat een product bouwt kan invloed hebben. Ik heb daarom een paar vragen op een rijtje gezet die je kunt stellen bij een sollicitatiegesprek als software engineer of interaction designer.

1. Wat bepaalt het ritme van projecten? #

Het ritme binnen een projectbedrijf zal voornamelijk bepaald worden door de klanten. In de zomermaanden is het rustig, terwijl je in een andere maand weer uren tekort komt. Je bent grotendeels afhankelijk van de opdrachten en kunt niet zelf bepalen hoe druk je wilt zijn. Dit geeft een bepaalde dynamiek die bij je moet passen.

Binnen een productbedrijf, zoals Moneybird, is het ritme anders. In de zomermaanden is het ook bij ons rustiger, maar dat geeft ons juist de gelegenheid om in alle rust aan nieuwe features te werken. In de drukke maanden van bijvoorbeeld een btw-aangifte heeft ons product het wel drukker, maar als engineer hoef je niet gelijk overuren te maken.

2. Hoe worden roadmaps en deadlines bepaald? #

Als je software ontwikkelt in een projectbedrijf, is het vaak een uitdaging om binnen de deadline en kostenplaatje de software op te leveren zoals de klant dat graag ziet. Door gebrek aan kennis over software ontwikkeling en het continu veranderen van de doelen, vergt het veel aanpassingsvermogen. Natuurlijk kun je dat als uitdaging zien om jezelf daarin te ontwikkelen, het is een mooie sport om klanten tevreden te stellen!

Bij Moneybird bepalen we met elkaar de roadmap. Zo kunnen we projecten kiezen die aansluiten bij wat het hele team belangrijk vindt. Deadlines hebben we nog steeds, maar dat is meer ter bescherming tegen onszelf, anders zouden we te lang bezig blijven met één ding. Je hebt gelukkig zelf veel invloed op het behalen van die deadline, bijvoorbeeld door slimme keuzes te maken of de scope te verkleinen.

3. Hoeveel tijd krijg je om technical debt te voorkomen? #

Ik denk dat elke software engineer heel punctueel is. Lelijke code kunnen we allemaal schrijven, maar het zal nooit goed voelen als we zien dat het beter kan. Helaas zullen in een projectbedrijf de tijd en het geld een keer op zijn. Werkt de lelijke code? Dan is het goed genoeg! Gaat dat in de toekomst zeker bugs opleveren? Dat horen we dan wel van de klant!

In een productbedrijf heb je de tijd om je code zo goed mogelijk af te leveren. Lelijke code zal je ook altijd achtervolgen, bijvoorbeeld als je support engineer bent en een bug moet oplossen voor de klant. Of als je de volgende keer een feature moet uitbreiden en je niet meer weet wat je zelf geschreven hebt. Technical debt (opent in nieuw tabblad) is een bekend fenomeen en we proberen dit bij Moneybird zoveel mogelijk te voorkomen.

Dan vraag je je misschien af wat mooie code is? In mijn ogen is mooie code:

- Leesbare code zonder commentaar dat door een collega begrepen kan worden (dat vergt soms een paar iteraties);

- Code die voldoet aan de conventies die we afgesproken hebben, bij voorkeur automatisch gechecked door een linter;

- Code die goed getest is zodat het veilig is om in de toekomst wijzigingen te maken en de code te blijven verbeteren.

4. Hoe krijg je feedback op je werk? #

Als software engineer ben je nooit klaar met leren. In het begin van mijn carrière als engineer dacht ik dat dit voornamelijk ging over alle nieuwe technieken die overal op springen. Maar nu ik tien jaar in het vak zit, realiseer ik mij dat het veel meer gaat om goede code schrijven. Feedback krijgen van andere engineers is daarbij van ongekend belang.

Het doen van een code review is een goede manier om feedback te geven op code. Niet alleen krijg je inzicht in de leesbaarheid van je code, je ontdekt ook fouten. Bij Moneybird gebruiken we de reviews ook om elkaar betere code te leren schrijven. Problemen gelijk oplossen in plaats van technical debt voor later creëren.

5. Met welke technieken wordt gewerkt? #

Bij productbedrijven is de kans groot dat je je meer moet verdiepen in de techniek dan bij projectbedrijven. Zo hebben wij te maken met enorme schaal en de daarbij behorende performance uitdagingen. We kiezen er ook voor om alles in dezelfde taal te schrijven, Ruby in ons geval. Hierdoor leren we de taal zo goed kennen dat we veel sneller worden in het goed opzetten van onze code.

Bij projectbedrijven zul je vaker te maken hebben met nieuwe projecten en met verschillende talen. Hierdoor kan de diepgang in techniek ontbreken, waardoor je nooit je beste werk kunt opleveren omdat je de taal niet volledig onder de knie hebt. Natuurlijk is het wel interessant om veel technieken te leren kennen!

6. Hoe verdient het bedrijf geld? #

Hoewel dit misschien een vreemde vraag is, is het een hele belangrijke om te stellen tijdens een sollicitatie. Elk bedrijf zal op een andere manier zijn geld verdienen, maar uiteindelijk zal dat geld er wel voor zorgen dat ze jouw salaris kunnen betalen.

Een productbedrijf zal waarschijnlijk terugkerende, stabiele omzet hebben. Bij Moneybird hebben we dit ook, doordat we maandelijkse abonnementen hebben. Hierdoor kunnen we investeren in mensen, omdat we weten dat we ze in de toekomst nodig hebben én kunnen betalen.

Bij een projectbedrijf is de omzet vaak afhankelijk van de projecten die er zijn. Hierdoor kunnen we resultaten per maand verschillen. Veel werkgevers zullen je pas aannemen als ze weten dat ze je kunnen betalen, maar het is altijd goed om dit te vragen. Daarnaast is het goed om te controleren of je zelf verantwoordelijk bent voor je eigen salaris: moet je bijvoorbeeld business binnenhalen of een minimaal aantal declarabele uren maken om rendabel te zijn?

Conclusie #

Uiteindelijk is de keuze voor een soort bedrijf volledig afhankelijk van je eigen voorkeuren. Sommige mensen houden van de afwisseling en dynamiek van een projectbedrijf, anderen kiezen juist voor de rust en diepgang van een productbedrijf. Er zijn voldoende bedrijven die een geweldig ritme gevonden hebben in projecten, terwijl er ook zeker bedrijven met een product zijn die hun zaakjes niet goed op orde hebben. De enige manier om daarachter te komen is om het te vragen. Hopelijk helpt dit artikel je om de goede vragen te stellen bij je volgende sollicitatiegesprek zodat je de baan van je leven kunt vinden!

Wil je binnenkort deze vragen kunnen stellen tijdens een sollicitatiegesprek? Bekijk dan onze vacatures en solliciteer voor een positie als interaction designer of software engineer in ons team!

Misschien vind je dit ook interessant ...