Diensten / Softwareontwikkeling
04 / 08
Softwareontwikkeling · Java, .NET, web en integratie

Software gebouwd voor uw bedrijf. En voor wie ze daarna onderhoudt.

A4IT bouwt maatwerkapplicaties in Java en .NET, de webfrontends erbovenop en de API's ertussen. Het werk steunt op meer dan tien jaar ervaring in enterprisesoftwareontwikkeling en projectmanagement, toegepast op de schaal van een kmo: schaalbare architectuur ontworpen voor groeiende bedrijven, en bestaande systemen die worden gemoderniseerd met naadloze integratie in plaats van weggegooid. U werkt rechtstreeks met Tim De Smedt, zonder tussenpersonen.

Wat u krijgt, wat van u blijft, waar het ophoudt

Gezegd vóór het eerste gesprek
U krijgt
  • Werkende software, getoond in regelmatige demo's, geen statusrapport
  • Broncode in versiebeheer, met geautomatiseerde tests en een buildpipeline
  • Documentatie waarmee een andere ontwikkelaar aan de slag kan
  • Een schriftelijke scope en raming per fase, met de aannames opgelijst
Blijft van u
  • De broncode, de repository en de volledige historiek ervan
  • Uw data, uw database en uw hostingaccounts
  • De domeinkennis: analyse en beslissingen worden voor u uitgeschreven
  • De vrijheid om verder te gaan met uw eigen team of een andere leverancier
Grenzen
  • Geen vaste prijs op een scope die nog niet begrepen is: eerst komt de analyse
  • Geen ingebruikname zonder tests, een back-up en een weg terug
  • Geen native mobiele apps of gameontwikkeling
  • Geen bewering dat software vrij is van fouten: we testen, loggen en herstellen

Wat we leveren

Zeven bouwstenen · neem er één of allemaal
01 · Bouwen

Java en Spring Boot

Java-ontwikkeling: applicaties van enterpriseniveau met Spring, Spring Boot en microservicearchitecturen die op schaal zijn ontworpen.

Bedrijfsapplicaties
Orderverwerking, planning, portalen en backofficesystemen met de regels van uw bedrijf in de code, niet in iemands hoofd.
Spring-ecosysteem
Spring en Spring Boot voor web, beveiliging, datatoegang en batchwerk: breed gebruikt, goed gedocumenteerd en makkelijk om ontwikkelaars voor te vinden.
Datalaag
PostgreSQL of SQL Server met geversioneerde schemamigraties, zodat elke omgeving dezelfde databasestructuur heeft.
Ontworpen op schaal
Een structuur die start als één uitrolbare applicatie en in services kan worden opgesplitst wanneer de belasting of de teamgrootte erom vraagt.
02 · Bouwen

.NET en Azure

.NET-ontwikkeling: full-stack ASP.NET Core, Entity Framework en Azure-clouddiensten. Moderne webapplicaties en robuuste API's.

ASP.NET Core
Webapplicaties en API's in C# op .NET Core, draaiend op Windows Server of Linux.
Entity Framework
Datatoegang met migraties onder versiebeheer, tegen SQL Server of PostgreSQL.
Azure-clouddiensten
Hosting, databases, opslag en identiteit in Azure waar dat bij uw organisatie past. Zie cloud & PaaS.
Bestaande .NET-code
Oudere ASP.NET- en desktopapplicaties worden beoordeeld, gestabiliseerd en stap voor stap naar een ondersteunde versie gebracht.
03 · Bouwen

Webapplicaties en frontend

Schermen die mensen de hele dag gebruiken. Snel, duidelijk en bruikbaar voor iedereen, ook met een toetsenbord of een schermlezer.

JavaScript, HTML en CSS
Frontends gebouwd op webstandaarden, met een framework alleen waar de applicatie er echt een nodig heeft.
Toegankelijk
Semantische markup, bediening met het toetsenbord, voldoende contrast en gelabelde formulieren, gebouwd met de WCAG-richtlijnen als referentie.
Snel
Kleine pagina's, weinig requests en geen overbodige bibliotheken. Snelheid wordt gemeten tijdens de ontwikkeling, niet na klachten.
Bruikbaar
Tabellen die filteren en sorteren, formulieren die valideren terwijl u typt, en een lay-out die werkt op een telefoon en op een groot scherm.
04 · Koppelen

API's en microservices

Robuuste API's waarop andere systemen, partners en uw eigen frontends kunnen rekenen.

REST API's
Consistente resources, duidelijke foutmeldingen, versionering en paginering, zodat een afnemer niet voor verrassingen komt te staan.
OpenAPI-contract
De interface is beschreven in OpenAPI en blijft gelijklopen met de code. Partners kunnen ze lezen en testen zonder ons te bellen.
Beveiliging
Authenticatie, autorisatie per rol, inputvalidatie en rate limiting maken van bij het eerste endpoint deel uit van het ontwerp.
Microservices wanneer het verantwoord is
Aparte services waar delen van het systeem onafhankelijk moeten schalen of veranderen. Voor veel kmo's is één goed gestructureerde applicatie de betere keuze, en dat zeggen we dan.
05 · Moderniseren

Legacy-integratie en modernisering

Legacy-integratie: bestaande systemen moderniseren met naadloze integratie. Het oude systeem blijft zijn geld opbrengen terwijl het stuk voor stuk wordt vervangen. Voor COBOL-, DB2- en JCL-applicaties: zie mainframe-modernisering.

Beoordeling
Wat het systeem doet, welke delen nog worden gebruikt, waar de risico's zitten en wat niet meer wordt ondersteund. Uitgeschreven vóór elke beslissing.
Een interface rond het oude
COBOL-programma's, uitwisselingen op basis van bestanden en oudere databases krijgen een nette API ervoor, zodat nieuwe software ze kan gebruiken. Zie automatisering & data.
Stapsgewijze vervanging
Eén functie per keer verhuist naar het nieuwe platform, met oud en nieuw naast elkaar tot de resultaten overeenkomen. Geen bigbangweekend.
Datamigratie
Mapping, proefdraaien en aansluiting van totalen, zodat er onderweg niets verloren gaat of ongemerkt verandert.
06 · Opleveren

Kwaliteit en oplevering

De gewoontes die bepalen of een release routine is of een gebeurtenis.

Git en code review
Elke wijziging zit in versiebeheer met de reden erbij, en wordt door de buildpipeline gecontroleerd voordat ze wordt gemerged.
Geautomatiseerde tests
Unit- en integratietests lopen bij elke wijziging. Een bug die wordt opgelost krijgt een test, zodat hij niet terugkomt.
CI/CD met Jenkins
Build, test en uitrol vormen een pipeline. Een release is een herhaalbare stap, geen manuele procedure die één persoon kent.
Documentatie en installers
Technische en gebruikersdocumentatie wordt bij de code bewaard, in Confluence als u dat gebruikt. Desktopsoftware wordt geleverd als een degelijke Windows-installer, gebouwd met Inno Setup.
07 · Beheren

Onderhoud en support

Software is niet af bij de ingebruikname. Ze heeft updates nodig, kleine aanpassingen en iemand die antwoordt wanneer ze zich misdraagt.

Updates
Frameworks, bibliotheken en runtimes blijven op ondersteunde versies, met beveiligingsupdates volgens een vaste planning.
Monitoring en logs
Fouten worden gelogd en gemeld, zodat een probleem vaak bekend is voordat een gebruiker belt. Zie infrastructuur.
Wijzigingen en herstellingen
Issues opgevolgd in JIRA of uw eigen tool, elk met een status die u kunt volgen en een release waartoe het behoort.
Schriftelijk afgesproken
Wat gedekt is, hoe u ons bereikt en hoe snel we reageren, staat in een supportovereenkomst, niet impliciet op een webpagina.

Hoe een traject verloopt

Kleine stappen · na elke stap een beslissing
  1. Intake
    Een gesprek van dertig minuten: uw vraag, uw systemen, uw beperkingen.
    30 minuten
  2. Analyse
    Vereisten, bestaande systemen en risico's, met een scope en een raming.
    Scope + raming
  3. Bouwen in iteraties
    Agile: korte cycli, die elk eindigen met een demo van werkende software.
    Regelmatige demo's
  4. Release
    Acceptatie door uw gebruikers, data gemigreerd, uitrol via de pipeline.
    In productie
  5. Onderhouden
    Updates, monitoring en wijzigingen onder een schriftelijke overeenkomst.
    Up-to-date gehouden

Technologie

Gekozen per geval · niets is verplicht
JavaJava, Spring, Spring Boot
.NET.NET Core, C#, ASP.NET, Entity Framework
Web & API'sJavaScript, REST API's, OpenAPI, microservices, XML & XSLT
DataSQL Server, PostgreSQL
OpleveringGit, Jenkins, JIRA, Confluence, Inno Setup
PlatformenLinux, Windows Server, Azure, Jelastic, COBOL voor legacysystemen

Goede match, en geen match

Bespaart ons allebei een vergadering
Een goede match als
  • Standaardsoftware niet dekt hoe uw bedrijf echt werkt
  • Een bestaande applicatie moet worden uitgebreid, gekoppeld of gemoderniseerd
  • U wilt spreken met de persoon die ze ontwerpt en bouwt
  • Iemand in het bedrijf vragen kan beantwoorden en de demo's kan bijwonen
Geen match als
  • Een standaardpakket het werk al doet: koop dan dat
  • U volgende week een groot team ter plaatse nodig hebt
  • De scope een volledige vervanging in één stap is, zonder tijd voor analyse
  • Het project een native mobiele app of een game is

Vragen over softwareontwikkeling

Alle vragen →
01Java of .NET: welke moeten we kiezen?

Meestal de technologie die u al hebt. Als uw systemen en mensen op Microsoft-technologie zitten, past .NET; als u Java draait of platformneutraal wilt blijven, past Java. Beide zijn degelijke keuzes, en we leggen de redenering voor uw geval uit.

02Van wie is de broncode?

Van u. De code staat in een repository waartoe u van de eerste dag toegang hebt, en de voorwaarden staan in de overeenkomst voordat het werk start.

03Kunt u een vaste prijs geven?

Voor een scope die duidelijk beschreven is, ja. Voor al de rest doen we eerst een korte analyse, waarna u een raming per fase krijgt met de aannames erbij. Een prijs op een gok helpt niemand.

04Hoe volgen we de voortgang?

Via regelmatige demo's van werkende software en een issuelijst die u op elk moment kunt openen. Zie hoe we werken en projectmanagement & analyse.

05Kunt u software overnemen die iemand anders schreef?

Vaak wel, na een beoordeling. We hebben de broncode nodig, een manier om ze te builden en toegang tot een testomgeving. U krijgt een schriftelijk beeld van de toestand en de risico's voordat we ons engageren om ze te onderhouden.

06Waar draait de applicatie?

Waar het u past: uw eigen servers, Azure of Jelastic PaaS. Hosting wordt samen met u beslist en gedocumenteerd. Zie cloud & PaaS.

Beschrijf wat uw software moet doen. Wij zeggen u hoe we ze zouden bouwen.

Antwoord binnen drie werkdagen.Bespreek uw project →Hoe we werken