Pijnpunten bij software design en software architecture
Lucid Content
Leestijd: ongeveer 10 min
Onderwerpen:
Het softwareontwikkelingsproces kan soepel voorlopen of geplaagd worden door problemen. Vaak is het verschil tussen deze uitkomsten te herleiden tot hoe je het project gepland hebt. Met de juiste benadering kun je het risico verkleinen dat je project zijn budget of reikwijdte overschrijdt.
Gebruik deze best practices om op koers te blijven.
Het ontwikkelingsproces van softwarearchitectuur
Voordat je technische team kan beginnen met het ontwikkelen van software heb je een softwarearchitectuurontwerp nodig. Je softwarearchitectuur biedt een blauwdruk die je helpt een systeem te organiseren en te conceptualiseren. Dit omvat de operationele omgeving van je software, de onderdelen die je software moet bevatten en alle structurele elementen en beperkingen waar je rekening mee moet houden.
Zonder een duidelijk gedefinieerd softwarearchitectuurproces kan je team tijdens de ontwikkelingsfase met teveel onzekerheid en complexiteit te maken krijgen. Dat kan onbedoelde problemen veroorzaken voor je technische team.
De meest voorkomende pijnpunten bij softwareontwikkeling
Softwareprojecten lijden vaak onder deze pijnpunten, maar dit hoeft voor jouw project niet het geval te zijn. We delen hier tips en best practices om je te helpen deze problemen op te lossen voordat ze uit de hand lopen.
Onrealistische verwachtingen
In de echte wereld kan geen enkel softwareproject helemaal perfect zijn, maar iedere projectmanager of softwareontwikkelaar wil het best mogelijke resultaat bereiken. Maar soms moet je bij het streven naar perfectie voor een vereiste of functie concessies doen wat betreft de kwaliteit van andere delen. Projectmiddelen zijn niet oneindig en verschillende ontwerpfuncties kunnen tegenstrijdig zijn. Stakeholders en leden van het projectteam kunnen onrealistische verwachtingen hebben over wat het eindproduct kan leveren.
En onjuiste verwachtingen spelen niet alleen op bij projectvereisten. Het kan zijn dat je team te weinig tijd krijgt om functies en mijlpalen te leveren. Als zich problemen of uitdagingen voordoen, is daar misschien niet afdoende voor gepland, zodat de stakeholders verrast worden wanneer er iets misgaat.
Deze verschillen in verwachtingen kunnen ontstaan wanneer een gedeelte van het projectplanningsproces wordt overgeslagen. Voordat er van alles misgaat, moet je brainstormen over welke obstakels er tijdens de ontwikkeling kunnen opdoemen.
-
Brainstorm over mogelijke problemen: overweeg bij het plannen van je project een SWOT-analyse (SWOT staat voor sterktes, zwaktes, kansen en bedreigingen). Sommige teams merken de sterktes en kansen op maar vergeten om goed naar de zwaktes en bedreigingen te kijken. Je kunt zwaktes zien als interne obstakels of uitdagingen, en bedreigingen als externe factoren die de weg naar succes voor je project kunnen versperren.
-
Bedenk van tevoren oplossingen: kies problemen die je hebt geïdentificeerd en begin mogelijke oplossingen te documenteren, om je team te helpen risico's te beheren, te verkleinen, te elimineren of te vermijden. Hoewel je niet altijd van tevoren ieder mogelijk risico en iedere oplossing kunt aanwijzen, help het doen van je huiswerk je om op mogelijke uitdagingen te anticiperen en je hierop voor te bereiden.
Begin goed door functionele vereisten en andere essentiële informatie in een softwareontwerpdocument vast te leggen.
Meer informatieIntegratieproblemen
Compatibiliteitsproblemen kunnen een softwareproject laten ontsporen. Als het uiteindelijke systeem niet goed samenwerkt met de bestaande tools waar je gebruikers van afhankelijk zijn, kan je project in het algemeen minder bruikbaar blijken of kun je aanzienlijke vertraging oplopen.
Voorkom dat je last krijgt van integratieproblemen door een API (application programming interface) of andere technologieën te gebruiken en strategische partnerschappen aan te gaan.
-
Maak gebruik van API's: met API's die de interactie tussen jouw systeem en de andere applicaties van je gebruikers stroomlijnen, kun je de focus van je technische teams op andere punten blijven richten, zoals de gebruikersinterface en de functionaliteit van de app.
-
Ga technologische partnerschappen aan: werk direct samen met de ontwikkelaars van andere software waar je gebruikers van afhankelijk zijn, om geïntegreerde softwarepakketen te bouwen waarvan zowel bedrijven als eindgebruikers profiteren.
Gebrek aan communicatie
Projectleiders, ontwikkelaars en designers hebben allemaal een ander begrip van de vereisten van een project. Dat kan het ontwikkelingsproces behoorlijk wat ingewikkelder maken en leiden tot verwarring en misverstanden die het project kunnen laten ontsporen of belangrijke mijlpalen kunnen vertragen. Als een team bijvoorbeeld de visie die wordt gepresenteerd door de projectkampioen niet helemaal begrijpt, kan de implementatie van die visie resulteren in een eindproduct dat niet aan de opdracht voldoet.
Om te voorkomen dat een gebrek aan communicatie een project ruïneert, moet je al in een vroeg stadium een communicatieplan ontwikkelen en verwachtingen stellen.
-
Voorkom vooronderstellingen: communicatiefouten worden vaak veroorzaakt door onterechte vooronderstellingen. Vragen blijven stellen is de beste manier om aannames tegen te gaan.
-
Betrek gebruikers: je gebruikers en belangrijkste stakeholders moeten feedback kunnen geven en zo kunnen helpen de visie en implementatie van het project te sturen.
Verkeerd ingeschatte totale kosten
Een onjuiste kostenraming aan het begin van het project kan direct leiden tot verspilde of verkeerd toegewezen middelen. Uiteindelijk kan je project het budget overschrijden en veel meer kosten dan je projectleiders hadden gepland. In het beste geval is je project een beetje duurder, maar verder wel geslaagd. Maar als je project veel te duur wordt om uitvoerbaar te zijn, moet je organisatie het misschien annuleren of kijken welke functies er kunnen worden weggelaten en dat is zeker geen positieve uitkomst.
Je kunt het risico op een verkeerde kostenraming verkleinen door al het mogelijke te doen om kosten van te voren vast te stellen en door tijdens het project de cijfers bij te houden om te zien hoe de uitgaven zich verhouden tot de budgetten voor ieder onderdeel van het project.
-
Wees flexibel: weet wanneer je flexibel moet zijn met je budget. Een goede projectplanning moet uitgaan van een zekere flexibiliteit in het budget en houdt rekening met mogelijk stijgende of zich wijzigende kosten.
-
Maak een prijsschatting: wijs potentieel dure onderdelen van je project al vroeg aan en stel een prijsscenario op dat rekening houdt met het slechtst mogelijke verloop.
Geen doelgroep gedefinieerd
Gebruikers en belangrijke stakeholders zijn belangrijk tijdens het hele ontwerp- en ontwikkelingsproces, maar bij sommige softwareprojecten worden de doelgroepen niet goed gedefinieerd. Regelmatige inbreng van gebruikers bij ieder deel van het ontwikkelingsproces is een kenmerkend onderdeel van agile projecten. Zonder een gedefinieerde doelgroep kun je uiteindelijk software bouwen die voor niemand in het bijzonder of voor iedereen geschikt is.
Veel vragen stellen, doen wat je kunt om echte gebruikers te vinden en andere delen van je organisatie bij het project betrekken: dit kan hier allemaal bij helpen.
-
Praat met gebruikers: laat je team het gesprek aangaan met echte gebruikers om te leren van hun behoeften, interesses en verwachtingen. Deze praktijk is van onschatbare waarde om de gebruikerservaring beter te begrijpen. Gebruik naast interviews en bètatests op uitnodiging ook focusgroepen en meetups om je team te voorzien van essentiële gegevens en anecdotes om meer vorm te geven aan je doelgroep en om de koers van je ontwerp en ontwikkeling bij te stellen.
-
Maak een kaart van de user journey: bekijk je onderzoek naar het gebruikerstraject en plan hoe je softwaregebruikers het eindproduct zullen gebruiken. Een diagram kan je helpen deze stappen vanuit het perspectief van de gebruiker te visualiseren.
-
Communiceer tussen silo's: naast design en techniek kan ook de inbreng van andere afdelingen essentieel zijn om je doelgroep te definiëren. Zo hebben bijvoorbeeld de sales- en klantenondersteuningsteams waarschijnlijk al veel gesprekken met de doelgroep waar je software voor bouwt. Betrek ze bij het proces.
Invloeden op het ontwerp
Ieder project met een groot aantal stakeholders ervaart waarschijnlijk aanzienlijke druk. Klanten, de externe zakelijke omgeving en interne factoren kunnen van invloed zijn op het ontwerp. Projectmanagers en ontwikkelaars hebben de taak verwachtingen te managen en verschillende invloeden onder controle te houden, zodat het uiteindelijke product ieders invloed op het juiste niveau en in de juiste mate samenbrengt. Te veel invloed uit een enkele bron kan een negatief effect hebben op het hele project.
Door je ontwerp te focussen en een samenhangende ervaring op verschillende platforms en kanalen te creëren, kun je zorgen dat de invloeden die je via je project beheert niet onbedoeld in de weg staan van het succes van je project.
-
Plan voor consistentie: laat consistentie een onderdeel zijn van je planning. Wees vanaf het begin duidelijk over waarom consistentie belangrijk is.
-
Manage verwachtingen: verschillende verwachtingen omtrent het ontwerp onder teamleden kunnen het project meerdere kanten tegelijk op trekken, dus werk hard om de verwachtingen van het team op het doel gericht te houden.
Duidelijkheid over resultaten en gebrek aan documentatie
Zorgvuldige documentatie en duidelijkheid over de eindresultaten van het project helpen te zorgen dat het project niet buiten de scope eindigt. Als je belangrijke details niet definieert, moet je team zijn eigen keuzes maken en deze keuzes kunnen verschillen van wat stakeholders, gebruikers en projectleiders in gedachten hadden. Naarmate het project vordert en ten einde komt, kan een gebrek aan documentatie leiden tot verwarring bij ontwikkelaars die proberen te raden wat hun teamgenoten voor ogen hadden.
Je kunt deze problemen voorkomen door kwaliteitsdocumentatie te bieden en specifiek te zijn over de resultaten die je nodig hebt.
-
Bied grondige documentatie: de documentatie van je software zou geen bijzaak moeten zijn. Neem documentatie op in je ontwikkelingsproces en zorg dat deze bruikbaar, consistent, gestandaardiseerd en compleet is.
Weinig tijd? Lees hoe je technische documentatie sneller maakt en beheert.
Lees onze tips-
Wees specifiek over resultaten: plan voor iedere sprint specifieke resultaten en wees duidelijk over de vereisten, kwaliteit en andere scopespecificaties.
Vertragingen
Over het algemeen gaat softwareontwikkeling heel snel, om gelijke tred te houden met gebruikersverwachtingen en zakelijke doelen. Helaas heb je soms te maken met vertragingen bij softwareprojecten. Onverwachte, ongeplande uitdagingen kunnen voorkomen: je kunt een belangrijk teamlid verliezen of tegen communicatieproblemen binnen je team oplopen. Een vertraging in een sprint vertraagt de volgende sprint en kan zo je hele planning in de soep doen lopen.
Om vertragingen te voorkomen, is het belangrijk extra tijd in je projectplan in te roosteren als je potentiële problemen opmerkt.
-
Stimuleer communicatie: vraag je team om zorgen over mogelijke vertragingen zo vroeg mogelijk uit te spreken. Sommige teamleden brengen misschien niet graag slecht nieuws, maar het is in het belang van het team om dit zo snel mogelijk aan te pakken.
-
Maak een buffer: als je zeker weet dat een bepaalde sprint vertraging op kan lopen, kun je een buffer in je projectplanning inbouwen.
-
Kies ervaren teams: soms treden er vertragingen op als een softwareteam of de projectleiding niet vertrouwd is met een bepaald type project. Zoek ervaren teams om je team te helpen realistische tijdlijnen uit te stippelen en vooruit te plannen voor vertragingen.
Kwaliteitscontrole
Ieder projectteam wil software van hoge kwaliteit, maar kwaliteit komt niet uit de lucht vallen. Kwaliteitsborging is een noodzakelijk onderdeel om te zorgen dat je software succes heeft op de introductiedag. Als je de kwaliteitsborging overslaat om je deadlines te halen, werkt dit meestal averechts en leidt het tot meer werk en meer vertraging.
Met andere woorden: je hebt een formeel proces voor kwaliteitsborging nodig en een technisch team dat zich voor dat proces inzet en erin gelooft.
-
Maak een proces voor kwaliteit: praat in de planningsfase van je project met je team over kwaliteit en leg uit hoe het kwaliteitsborgingsplan voor je project kan helpen om code te controleren en fouten in een vroeg stadium te detecteren.
-
Moedig je team aan: raad af de testfase en kwaliteitsborgingsprocessen over te slaan. Moedig goed kwaliteitsbeleid aan.
Je softwareproject vereist zorgvuldige planning en toewijding aan de volgende best practices om veelvoorkomende valkuilen tijdens de ontwikkeling te ontwijken. Blijf tijdens het hele project met je team communiceren en moedig iedereen aan je processen te volgen.
Over Lucidchart
Lucidchart, een slimme diagramapplicatie in de cloud, is een kernonderdeel van Lucid Software's pakket voor visuele samenwerking. Met deze intuïtieve cloudgebaseerde oplossing kunnen teams in realtime samenwerken om flowcharts, mockups, UML-diagrammen, kaarten van customer journeys en meer te maken. Lucidchart stuwt teams vooruit om sneller aan de toekomst te bouwen. Lucid is trots op zijn diensten aan belangrijke bedrijven over de hele wereld, waaronder klanten als Google, GE en NBC Universal, en 99% van de Fortune 500. Lucid werkt samen met brancheleiders, waaronder Google, Atlassian en Microsoft. Sinds de oprichting heeft Lucid talrijke onderscheidingen ontvangen voor zijn producten, bedrijfsvoering en werkcultuur. Ga voor meer informatie naar lucidchart.com.