Als je met een team van programmeurs werkt, is alles wat kan helpen om het proces soepel en op schema te laten verlopen, veel tijd en geld waard. We bespreken een paar verschillende tools die je team kunnen helpen om meer georganiseerd te worden.
Hosted Git-oplossing (Gitlab, GitHub, enz.)

Als je met anderen samenwerkt, heb je natuurlijk een vorm van bronbeheer nodig waartoe iedereen toegang heeft. Maar als het gaat om het kiezen van de juiste voor uw team, zijn er een paar opties om te overwegen.
Ten eerste is er GitHub, verreweg de meest voorkomende Git-provider. Het is geweldig en biedt een heleboel functies, maar het richt zich meer op open-source publieke samenwerking in plaats van te voldoen aan de behoeften van privéteams. GitHub biedt sinds vorig jaar gratis onbeperkte privérepo's, wat geschikt zal zijn voor de meeste kleine projecten. Als je het zelf moet hosten of zakelijke functies nodig hebt, kun je GitHub Enterprise betalen, dat $ 21 per gebruiker per maand kost, met een minimum van 10 gebruikers.
Als je iets wilt dat meer gericht is op privéteams, kun je GitLab overwegen. Naast een volledig uitgeruste gehoste Git-oplossing, biedt het ook tal van tools voor teams die een DevOps-workflow willen adopteren. GitLab-problemen is een eenvoudig Kanban-bord, zoals Jira, dat wordt gebruikt om problemen bij te houden. GitLab CI kan geautomatiseerde builds en tests uitvoeren op dezelfde manier als Jenkins, een cruciaal onderdeel van een CI/CD-pijplijn.
Je kunt GitLab's gratis en open-source Community Edition ook draaien op je eigen servers, onder je eigen domein. Als je voor meer functies wilt betalen, kost de basisversie $ 4 per gebruiker, per maand, en de standaardversie kost op dezelfde manier als GitHub $ 19 per gebruiker, per maand.
Dit zijn de grote twee, maar er zijn genoeg andere oplossingen. BitBucket van Atlassian integreert zeer goed met Jira en Confluence, en CodeCommit van AWS werkt soepel met hun CodePipeline CI/CD-oplossing.
Problemen volgen (Jira)

Softwareontwikkeling is rommelig en zonder richting kan het heel moeilijk zijn om samen te werken. Het hebben van een soort van probleemopsporing is een noodzaak om iets gedaan te krijgen.
De meest populaire en aanbevolen oplossing hiervoor is Jira van Atlassian Software. Jira is een Kanban-bord, in feite worden individuele "problemen" weergegeven door kaarten in een lijst. Er staan meerdere lijsten op een bord, zoals Backlogged, In Progress en Done. Kaarten gaan van lijst naar lijst op basis van waar ze zich in ontwikkeling bevinden. Problemen kunnen worden becommentarieerd, aan andere problemen worden gekoppeld, worden gesorteerd in grote blokken met functies en worden toegewezen aan andere teamleden. Je kunt onze handleiding voor het gebruik hier lezen voor meer informatie.
Als je niet voor Jira wilt betalen, zijn GitLab-problemen een gratis alternatief, en Trello is een eenvoudige Kanban-oplossing die niet alleen voor softwareontwikkeling is.
Geautomatiseerde CI/CD (Jenkins, CodePipeline)

Continuous Integration/Continuous Deployment (CI/CD) is het proces waarbij heel vaak nieuwe code-updates worden uitgebracht, meestal minstens één keer per dag. Dit proces is erg moeilijk bij te houden zonder enige vorm van automatisering om de vervelende onderdelen af te handelen, zoals het bouwen en testen van nieuwe releases en het verzenden van updates naar je servers.
Jenkins is een automatiseringsserver, oorspronkelijk geschreven voor Java. Het kan veel dingen doen, maar het wordt vaak gebruikt voor het automatiseren van builds en testen. Met plug-ins kan het worden uitgebreid om de implementatie naar uw servers te automatiseren.
Als je AWS gebruikt, kun je hun eigen CI/CD-pijplijn gebruiken, CodePipeline genaamd. Dit automatiseert elke ontwikkelingsfase, van bronbeheer tot bouwen en testen, en implementatie tot verschillende AWS-services, zoals EC2, ECS en zelfs Lambda.
Bestands- en documentendeling (G Drive en Confluence)

Dit is een belangrijk maar vaak over het hoofd gezien onderdeel van de toolkit van een team - je wilt niet afhankelijk zijn van het e-mailen van elk document aan andere mensen.
Voor veel mensen werkt de G Suite van Google (met name Google Drive) hier goed voor. Als u niet wilt betalen voor accounts voor al uw teamleden, werkt een Google Drive-map die wordt gedeeld met hun persoonlijke e-mails goed. Dropbox is een andere oplossing, die ook een zakelijke versie biedt voor betalende klanten.
Als je op zoek bent naar iets professionelers, kijk dan eens naar Confluence van Atlassian. Confluence is een collaboratieve werkplek om samen aan documenten te werken, net zoals G Drive, maar dan voor zakelijke klanten. Het beste is dat het, net als Jira, gratis is voor maximaal 10 gebruikers en daarna $ 5 per gebruiker per maand kost.
Docker

Docker is een hulpmiddel voor het uitvoeren van apps in containers, die alle afhankelijkheden en code bevatten die uw app nodig heeft om in een enkel gemakkelijk te distribueren bestand te worden uitgevoerd.
Het voordeel van het uitvoeren van uw app op Docker is dat uw ontwikkelomgeving precies hetzelfde zal zijn als uw productieomgeving, en precies hetzelfde als de ontwikkelomgeving van iedereen, waardoor het probleem van "het is kapot op mijn machine!"
Docker maakt implementaties ook heel eenvoudig. Omdat u zich geen zorgen hoeft te maken over de server waarop het draait, kunt u Docker op alles uitvoeren, inclusief services zoals AWS's Elastic Container Service, die containers uitvoeren zonder servers te leveren. Als u een hele vloot containers moet beheren, kunnen orkestratietools zoals Kubernetes dat ook aan.
Het zal niet voor iedereen zijn, omdat je al je ontwikkelaars moet leren hoe ze Docker daadwerkelijk moeten gebruiken, en het kan zeker ingewikkeld worden. Maar de voordelen voor de meeste teams zullen veel groter zijn dan de aanvankelijke hoofdpijn, en het is op zijn minst iets om te overwegen. U kunt onze handleiding over het verpakken van uw applicatie met Docker lezen om aan de slag te gaan.