De Infi Test #
Vlotte steekproef om te checken of je ruwweg The Infi Way volgt. Een soort Joel Test.
- Zien ontwikkelaars échte gebruikers?
- Wordt code gereviewed?
- Worden er automatische builds met tests gedraaid?
- Kun je automatisch uitrollen naar productie?
- Zijn repositories zelfdocumenterend?
- Kiest het team zelf passende technologie?
- Kiest het team zelf een passend proces?
- Wordt het proces periodiek geëvalueerd?
- Wordt werk gerefined voordat het gedaan wordt?
- Worden storingen proactief opgemerkt en afgehandeld?
- Wordt kennis actief gedeeld binnen- en buiten het team?
- Worden secrets correct gemanaged?
- Zijn er (bewezen) werkende, versleutelde back-ups?
We mikken op maximale score, ook al moet je daar soms nog naartoe werken.
Gebruikers centraal #
Wij werken voor de klanten van onze klant. Ze gebruiken software om hun doelen te bereiken, ons doel is hen daarbij te helpen.
Hoe we dat graag doen:
- Direct contact met (eind)gebruikers
- Prototypes, snel itereren
- User-centric werken
- Nauwe samenwerking met designers
- Werken vanuit "waarom"
Denk aan bijvoorbeeld:
- Gebruikerstests
- Google "Design Sprint"
Van onze hand:
- Blog: Walking Skeletons
- Website: Onze klanten (en hun gebruikers, dus!)
Ontwikkelprincipes #
We werken op een moderne manier, gericht op kwaliteit. Goed is op de lange termijn ook het goedkoopst.
Hoe we dat graag doen:
- Alles in versiebeheer
- Up-to-date tools
- Automatiseren waar mogelijk
- Sterke test coverage
- Linting
- Pair programming
- Code reviews
Denk aan bijvoorbeeld:
- Git (flow op project afgestemd)
- Unit tests, integration tests, end-to-end tests
- Sonarqube, ESLint, etc.
- SOLID (of DAMP), YAGNI, KISS
- Domain-Driven Design
Van onze hand:
Code is de bron #
Broncode is dat: de bron. Zelfbeschrijvend en dus bruikbaar voor elke ontwikkelaar, van onszelf of anderszins.
Hoe we dat graag doen:
- Architectuur in de bron
- Clone & run repositories
- Continuous integration, continuous delivery
- OTAP
- Continuous integration, continuous delivery
- Infrastructuur, scripts, en monitoring in de code
Denk aan bijvoorbeeld:
- Architecural Decision Records, C4 Model
- Ansible, Docker, Terraform
- GitLab (SAAS of self-hosted), GitHub
- GitLab CI, GitHub Actions, Azure Devops, CircleCI, Octopus
Van onze hand:
Technologie #
We gebruiken bij voorkeur altijd de "best tool for the job"; we zijn generalisten die zo nodig snel kunnen specialiseren en verdiepen.
Hoe we dat graag doen:
- OS naar keuze voor developers
- Wij leveren maatwerk en helpen bij buy-over-build
- Hosting in de cloud
- Back-end in een moderne stack
- Front-end met volwassen frameworks
- Mobile cross-platform, tenzij "native" écht meerwaarde biedt
Denk aan bijvoorbeeld:
- Azure (vanuit ons Microsoft partnership), AWS, Google Cloud
- .NET Core, PHP (met modern framework), of Node (meestal met TypeScript)
- Vue, Angular, React
- TailwindCSS, Bootstrap
- ReactNative
- SQL, Document-storage, Service Buses, etc.
Van onze hand:
Proces en team #
Teams werken autonoom, maar kiezen vrijwel altijd een vorm van agile werken. Met Product Owner van de klant.
Hoe we dat graag doen:
- Teams bepalen en verbeteren hun eigen proces
- Product Owner vanuit de klant
- Scrum master
- Samen een planning onderhouden
- Werken in kleine teams
- Hulp van interne en externe experts zoeken
- Regelmatig samenwerken met klant in één kantoor
Denk aan bijvoorbeeld:
Van onze hand:
Ambacht #
Maatwerksoftware bouwen is een ambacht. We willen vol vertrouwen (én trots!) een kijkje achter de schermen kunnen geven.
Hoe we dat doen:
- Studie en kennisdeling
- Investeren in goede tools
- Goede hardware
- Experimenteren
- Monitoring en alerting
Denk aan bijvoorbeeld:
- Interne en externe presentaties
- Leergangen, zelfstudie
- Congressen en meetups bezoeken
- Kibana, Sentry, Zabbix, etc.
Van onze hand:
Vaste waardes #
Sommige dingen spreken voor ons voor zichzelf: dit hoort er altijd bij. Denk aan Security, Performance, Back-ups, kritisch meedenken, en jezelf kunnen zijn.
Wat die vaste waardes zijn:
- Back-ups, inclusief versleutelde off-site back-ups
- Security is een kernwaarde in ons werk
- Audits waar logisch
- Performance, bijvoorbeeld via load testing
- Kritisch meedenken over features, alternatieven aandragen
- Open Source gebruiken en ondersteunen
- Meetups hosten en/of organiseren
- Onszelf zijn: "Wij zijn mensen."
Denk aan bijvoorbeeld:
- OWASP
- Wachtwoordbeheer, 2FA, GPG, SSH
- Locust, OctoPerf, JMeter
- Auth0, Stripe, SendGrid, Contentful, Lokalise, etc.
- Onbeheerde laptops altijd vergrendelen