Close

Softwareontwikkeling

Leer de beginselen van softwareontwikkeling


Software verovert de wereld. Niet lang na de beroemde uitspraak van Marc Andreessen in 2011, "software verovert de wereld", heeft deze inderdaad de wereld in beslag genomen. In de huidige digitale economie is elk bedrijf grotendeels afhankelijk van software. Amazon mag dan wel 's werelds grootste retailer zijn, maar het is geen retailbedrijf: het is een softwarebedrijf, aldus Jeff Bezos, de voormalige CEO van Amazon. "Ons bedrijf draait niet om de inhoud van de bruine dozen", zegt hij. "Het draait om de software die de bruine dozen verzendt."

DevOps Infinity Loop

Wat is softwareontwikkeling?

Softwareontwikkeling bestaat uit het ontwerp, de documentatie, de programmering, het testen en het voortdurende onderhoud van een te leveren softwareversie. De combinatie van deze stappen wordt gebruikt om een workflow-pipeline te creëren –ofwel een reeks stappen die, wanneer ze worden gevolgd, tot hoogwaardige software leiden. Deze pipeline staat bekend als de 'levenscyclus van softwareontwikkeling'.

Hoewel er veel nuances bestaan, bevat de levenscyclus van softwareontwikkeling doorgaans algemene elementen zoals hieronder vermeld wordt.


Stappen binnen de levenscyclus voor softwareontwikkeling


Gloeilamp met omloopbanen

Concept

Projecten worden bedacht, ontworpen en geprioriteerd. Een methodologie zoals agile helpt om het werkproces voor het project te geleiden. Werkwijzen zoals DevOps geleiden werkwijzen gedurende de ontwikkeling en handelingen. Confluence is een geweldige tool om in deze fase documenten voor productonderzoek te ontwikkelen en ontwerpbestanden te delen.

Eenvoudige workflow

Planning en roadmap

Belanghebbenden worden in kaart gebracht, budgetten worden vastgesteld en er wordt infrastructuur aangevraagd. Ontwerpdocumenten uit de conceptfase worden opgesplitst in uitvoerbare taken. Jira Software en Trello beheren, volgen en organiseren deze takenlijsten.

Code opslaan

Programmering, beoordeling en testen

Ontwikkelingsteams werken aan de ontwikkeling van software die klaar is voor productie en die aan vereisten en feedback voldoet. CI/CD-pipelines zorgen voor een efficiënte ontwikkelaarservaring. Bitbucket biedt tools voor het gezamenlijk beoordelen van code en CI/CD-pipelines die aansluiten op het codebeoordelingsproces.

Code release

Implementatie, release en hosting

Zodra code is goedgekeurd en samengevoegd, is het tijd om te leveren. Dankzij de CI/CD-pipelines in Bitbucket kunnen implementaties met één druk op de knop worden uitgevoerd. De live productiecode moet ergens worden opgeslagen. Overweeg het gebruik van cloudhosting aangeboden door Amazon AWS, Google Cloud Platform of Microsoft Azure.

Tandwielen

Ondersteuning, bediening en onderhoud

Actieve softwareprojecten vereisen support en onderhoudswerkzaamheden. Jira Service Management biedt krachtige tools om klantenserviceaanvragen vast te leggen, erover te beslissen en op te lossen.

fout

Incidentmanagement

Incidentmanagement wordt gebruikt door DevOps- en IT Operations-teams en bestaat uit het reageren op een ongeplande gebeurtenis of serviceonderbreking en het herstellen van de service naar de operationele status. Teams hebben een betrouwbare methode nodig om prioriteit te geven aan incidenten, sneller tot een oplossing te komen en gebruikers betere service te bieden.

Werkwijzen binnen de levenscyclus voor softwareontwikkeling

CI/CD

Continue feedback

Teams moeten elke release evalueren en rapporten maken om toekomstige releases te verbeteren, klanten vragen om hun mening te geven over de waarde en impact van productkenmerken, en bedrijfsgerelateerde uitkomsten met belanghebbenden delen. Door continue feedback te verzamelen kunnen teams hun processen verbeteren en waarde voor klanten verhogen.

Beveiliging

Beveiliging

Naarmate de complexiteit en schaal van softwaretoepassingen toenemen, is de traditionele beveiliging die aan het eind van een releasecyclus 'vastgeschroefd' is, niet meer voldoende om de software te beveiligen. In plaats daarvan moet beveiliging gedurende de hele levenscyclus van softwareontwikkeling aanwezig zijn om kwetsbaarheden in softwarecode tot een minimum te beperken.

Belangrijkste functies van effectieve softwareontwikkeling


Agile

Agile is een iteratieve benadering van projectmanagement en softwareontwikkeling die teams helpt sneller en met minder hoofdpijn waarde te leveren aan hun klanten. Agile-methoden zijn enorm populair binnen de software-industrie, omdat ze teams in staat stellen om per definitie flexibel zijn, goed georganiseerd en in staat zijn om te reageren op veranderingen.

DevOps

DevOps is een aantal procedures, tools en een culturele filosofie die de processen tussen softwareontwikkeling en IT-teams automatiseert en integreert. Het legt de nadruk op team empowerment, communicatie en samenwerking tussen teams en technologie-automatisering.

Continue integratie en levering (CI/CD)

Continue integratie is het automatiseren van de integratie van codewijzigingen in een softwareproject. Het stelt ontwikkelaars in staat om codewijzigingen regelmatig samen te voegen in een centrale repository waar builds en tests worden uitgevoerd.

Continue levering gaat verder dan continue integratie door automatisch codewijzigingen in een test-/productieomgeving te implementeren. Het volgt een pipeline van continue levering, waarbij geautomatiseerde builds, tests en implementaties als één release workflow worden gecoördineerd.

Microservices

Een microservices-architectuur, ook wel gewoon microservices genoemd, is een manier om een toepassing te bouwen als een reeks onafhankelijk inzetbare services die gedecentraliseerd en onafhankelijk van elkaar zijn ontwikkeld. Deze services zijn losjes met elkaar verbonden, onafhankelijk inzetbaar en gemakkelijk te onderhouden.

Met een microservices-architectuur kunnen ontwikkelaars zich organiseren in kleinere teams die gespecialiseerd zijn in verschillende services, met verschillende stacks en losgekoppelde implementaties.

Agile

Agile is een iteratieve benadering van projectmanagement en softwareontwikkeling die teams helpt sneller en met minder hoofdpijn waarde te leveren aan hun klanten. Agile-methoden zijn enorm populair binnen de software-industrie, omdat ze teams in staat stellen om per definitie flexibel zijn, goed georganiseerd en in staat zijn om te reageren op veranderingen.

DevOps

DevOps is een aantal procedures, tools en een culturele filosofie die de processen tussen softwareontwikkeling en IT-teams automatiseert en integreert. Het legt de nadruk op team empowerment, communicatie en samenwerking tussen teams en technologie-automatisering.

Continue integratie en levering (CI/CD)

Continue integratie is het automatiseren van de integratie van codewijzigingen in een softwareproject. Het stelt ontwikkelaars in staat om codewijzigingen regelmatig samen te voegen in een centrale repository waar builds en tests worden uitgevoerd.

Continue levering gaat verder dan continue integratie door automatisch codewijzigingen in een test-/productieomgeving te implementeren. Het volgt een pipeline van continue levering, waarbij geautomatiseerde builds, tests en implementaties als één release workflow worden gecoördineerd.

Microservices

Een microservices-architectuur, ook wel gewoon microservices genoemd, is een manier om een toepassing te bouwen als een reeks onafhankelijk inzetbare services die gedecentraliseerd en onafhankelijk van elkaar zijn ontwikkeld. Deze services zijn losjes met elkaar verbonden, onafhankelijk inzetbaar en gemakkelijk te onderhouden.

Met een microservices-architectuur kunnen ontwikkelaars zich organiseren in kleinere teams die gespecialiseerd zijn in verschillende services, met verschillende stacks en losgekoppelde implementaties.

Softwareontwikkelingstools


Tools voor softwareontwikkeling kunnen helpen in elke stap van de levenscyclus van de softwareontwikkeling. Hieronder vallen toonaangevende agile en DevOps-werkwijzen, codebeheer, automatisering mogelijk maken door middel van CI/CD, incidentrespons, testen en meer.

Logo Jira Software

Jira Software

Jira is de nr. 1 softwareontwikkelingstool die wordt gebruikt door agile teams. Jira Software is een projectmanagementtool voor agile teams om met vertrouwen software van wereldklasse te plannen, volgen en leveren.

Logo Bitbucket

Bitbucket

Bitbucket is meer dan alleen Git-codebeheer. Met Bitbucket kunnen teams centraal projecten plannen, samenwerken aan code, en deze testen en implementeren.

Compass-logo

Kompas

Compass is een ontwikkelaarsplatform dat je helpt met navigeren door je verspreide architectuur. Deze tool brengt alle losse informatie over engineering-output en de teams die hieraan samenwerken op één centrale, doorzoekbare plek samen.

Atlassian Open DevOps

Open DevOps is kant-en-klaar en teams vinden er alles wat ze nodig hebben om software te ontwikkelen en te gebruiken. Open DevOps begint bij Jira Software, Confluence, Bitbucket en Opsgenie. Teams kunnen eenvoudig de tools die ze willen, zoals GitHub en GitLab, met één klik toevoegen.

Atlassian Open DevOps

Open DevOps is kant-en-klaar en teams vinden er alles wat ze nodig hebben om software te ontwikkelen en te gebruiken. Open DevOps begint bij Jira Software, Confluence, Bitbucket en Opsgenie. Teams kunnen eenvoudig de tools die ze willen, zoals GitHub en GitLab, met één klik toevoegen.