LUXE, MODERNE WERKPLEKKEN

LUXE, MODERNE WERKPLEKKEN
samenwerken in een gedreven scrum team

Kennisontwikkeling

Kennisontwikkeling
moderne technieken en goede code

Kennisontwikkeling

Kennisontwikkeling
CONFERENCES EN MEETUPS

Kennisontwikkeling

Kennisontwikkeling
(IN-HOUSE) TRAINING

PB WEB MEDIA BEURSSTAND

PB WEB MEDIA BEURSSTAND
onze stack staat garant voor een echte uitdaging

SCRUM REFINEMENT MEETING

SCRUM REFINEMENT MEETING
in onze mooie vergaderkamer

Planning poker

Planning poker
om complexiteit van stories in te schatten

AmsterdamPHP ELEPHPANTS

AmsterdamPHP ELEPHPANTS
Houden toezicht op onze code

Afdeling Back-end Development

+/- 10.000.000 bezoekers && big data == uitdaging
Door intensief samen te werken in een gedreven en leergierig team, bedenken we de meest veilige en efficiënte oplossingen voor de uitdagende taken die we krijgen gepresenteerd. Op efficiënte wijze mooie code maken in een ontspannen en gezellige sfeer, dat is onze afdeling Back-end Development. Bekijk onze open source projecten op Github.com/PBWebMedia.

Kennisontwikkeling

We maken hoge kwaliteit back-end software voor onze sites die +/- 10.000.000 bezoeken per dag afhandelen, door veel kennis te vergaren en kennis met elkaar te delen. Bij PB Web Media krijg je dan ook alle ruimte om je kennis te ontwikkelen, wat zelfs in verregaande mate wordt gestimuleerd door het bedrijf. 

Alle medewerkers hebben de mogelijkheid om twee weken per jaar te besteden aan (vakgerelateerde) cursussen. Je kunt een online cursus volgen, achter je computer of in een stille ruimte, maar ook een cursus op locatie. We hebben ook een bibliotheek waar je (zo goed als) ongelimiteerd boeken kunt aanvragen. Vooral voor de Development afdelingen biedt dit een uitkomst. Nergens gaan de ontwikkelingen immers zo snel als in de IT.

Ook proberen we zo veel mogelijk grote (en kleine) vakgerelateerde evenementen te bezoeken om onze kennis op niveau te houden en like-minded professionals te ontmoeten. In 2014 hebben we bijvoorbeeld met het hele team de Dutch PHP Conference bezocht, een 3 daags evenement in de RAI in Amsterdam. We zijn ook zeer regelmatig aanwezig bij de AmsterdamPHP Meetup. Als sponsor van de AmsterdamPHP Meetup geeft PB Web Media zelfs elke maand twee boeken (must-reads voor programmeurs) weg tijdens de raffle. In januari 2015 bezochten we de PHPBenelux in Antwerpen en zullen we in juni weer aanwezig zijn bij de Dutch PHP Conference (tutorial day en conference days). Dit jaar zijn we zelfs sponsor van dit leuke en leerzame evenement waar ruim 600 PHP programmeurs samenkomen en zal er een PB Web Media beursstand staan tijdens de conference dagen!

Hoe wij werken

Agile ontwikkelen met scrum

We ontwikkelen onze applicaties Agile, door de scrum methode toe te passen. Je ziet dan snel resultaat omdat er na elke korte iteratie van een week direct werkende software wordt opgeleverd. De functionaliteit wordt per sprint uitgebreid. Twee gecertificeerde Scrum Masters zien erop toe dat we scrum zo efficiënt mogelijk toepassen.

De Refinement

Voordat de sprint begint zijn de features uitgewerkt in duidelijk omschreven stories. Dit gebeurt in de Refinement sessies. Omdat alle teamleden hieraan deelnemen en worden betrokken bij het refinen, weten we precies wat er gemaakt moet worden in de nieuwe sprint en kan iedereen elke taak oppakken. Elke mening en elk idee is dus medebepalend voor de technische implementatie van de feature. Met behulp van Planning Poker kaarten wordt de complexiteit van elke story ingeschat zodat de product owner en de stakeholders kunnen bepalen welke stories in de nieuwe sprint ontwikkeld zullen worden. Luisteren en probleemanalyseren zijn extra belangrijk tijdens deze Refinement sessies, waarbij van alle teamleden inzet, betrokkenheid en samenwerking wordt verwacht.

Pair-programming

Tijdens de sprint werken we veel samen en wordt veel kennis gedeeld. Dit gebeurt o.a. door pair-programming, waarbij twee programmeurs om beurten typen en samen een (ingewikkelde) feature ontwikkelen. Het toetsenbord wordt dus letterlijk doorgegeven, bijvoorbeeld om het kwartier, zodat elk van de ontwikkelaars aan de beurt komt. Het eindresultaat van de pair-programming is code die minder bugs bevat, omdat er minimaal twee mensen naar hebben gekeken.

Pull Requests / Peer reviews

Onze Pull Requests handelen we af via Bitbucket server. Zo zorgen we ervoor dat elke story door minstens één peer wordt gecontroleerd en getest voordat deze de status 'Done' krijgt toegewezen.

Refactoring

Technical Debt voorkomen we door regelmatig onze code te refactoren. We hebben een lijst waar we bijhouden waar in onze code refactoring is vereist, zodat we dit bijvoorbeeld kunnen oppakken in een sprint waar we wat tijd over houden.

Continuous Integration & Continuous Delivery

We werken in zeer korte iteraties van een week, waardoor continuous integration en continuous delivery een noodzaak zijn. Voor de CI gebruiken we Jenkins, die onze Philips Hue lampen rood laat kleuren op het moment dat de build niet is geslaagd.

De Demo

Na elke sprint toont het ontwikkelteam de nieuw ontwikkelde features tijdens de Demo. Het team krijgt dan direct feedback van de stakeholders die bij de demo aanwezig zijn, dus we weten direct of de gemaakte software naar wens is.

De Retrospective

Aansluitend op de demo volgt de Retrospective. Tijdens de Retrospective kijkt het team terug op de afgelopen sprint en zoekt vooral verbeterpunten. Sprint na sprint wordt het proces beter en frustraties worden snel uit de wereld geholpen.

Codekwaliteit

We letten continu op de veiligheid van onze code, maar ook of de code op lange termijn goed is te onderhouden en we zorgen dat de code leesbaar is zodat het hele team er fijn mee kan werken. Daarnaast zijn we met meer dan 10.000.000 bezoeken per dag natuurlijk gericht op de efficiëntie/optimalisatie van de code. Het gebruik van OOP, het op de juiste manier toepassen van design patterns, de keuze van functies, de architectuur van onze applicaties en unit testing zijn een aantal voor ons belangrijke aspecten. Om ons werk zo makkelijk mogelijk te maken, gebruiken we o.a. PHPStorm, MessDetector, CodeSniffer en PHPUnit.

Eigen inbreng

Voor alle afdelingen van PB Web Media geldt dat we de eigen inbreng en ideeën van de teamleden waarderen en koesteren. Dat is een van de redenen waarom we hebben gekozen voor de scrum methode. Het team bespreekt tijdens de scrum Refinement sessies uitvoerig hoe de features die door de product owner worden aangedragen, technisch geimplementeerd moeten worden. Hoe precies de implementatie plaatsvindt, is normaal gesproken de keuze van (dus ook de verantwoordelijkheid van) het development team als geheel. Slechts in uitzonderlijke gevallen zijn er functionele requirements die een bepaalde aanpak noodzakelijk maken. De rol van Lead programmeur zien wij (op dit moment) dan ook als overbodig, want elk teamlid excelleert op een ander gebied. Dit kan zijn databases, maar ook code kwaliteit of optimalisatie van het ontwikkelproces. Een leidende rol, voor zover nodig, wordt bij ons op natuurlijke wijze vervuld.

Software

We gebruiken veel verschillende (open source) software als basis voor onze applicaties en ter ondersteuning van het ontwikkelproces. Denk aan Linux, Symfony, PHP, MySQL, Couchbase, Elasticsearch, Hadoop, HBase, Varnish, Nginx, Apache, jQuery, Jenkins, Git, PHPUnit, Vagrant, Ansible, Jira, Bitbucket en al het andere dat ons kan helpen de meest efficiënte oplossing te realiseren. Momenteel gebruiken we PhpStorm als IDE.

Hardware en werkplek

We werken achter moderne, snelle iMacs met 2 extra schermen van 27". Deze machines zijn voorzien van veel RAM zodat onze development omgevingen in Vagrant soepel blijven draaien. Bij specifieke wensen met betrekking tot het OS of computer zijn we flexibel, zodat we tegemoet komen aan de wensen van de medewerker en er efficiënt gewerkt kan worden. Informatie over onze ergonimische werkplekken vind je hier: werkomgeving.

Kom jij ons team versterken?

We zijn altijd op zoek naar gedreven PHP programmeurs die ons team kunnen versterken, zodat we samen naar een hoger niveau kunnen groeien. Denk je dat jij in ons team past? Bekijk dan onze vacatures.
Back to Top