productspecificaties schrijven

de productmanager wordt vaak omschreven als de “brug tussen business, design en tech”. Het bridge “between design and tech” deel is vooral van cruciaal belang als het gaat om het verzenden van een kwaliteitsproduct: bug-free, pixel-perfect en dat rekening houdt met alle mogelijke scenarii en edge cases. Om er zeker van te zijn dat bridge goed functioneert, zijn er verschillende manieren waarop het door het ontwerpteam wordt behandeld:

  • de ontwerper verzendt een uitgebreid prototype, dat alle stromen van het product toont. Helaas, dit zal vaak veel tijd in beslag nemen en zal nog steeds missen een paar rand gevallen.
  • de ontwerper zal alleen een prototype verzenden dat de belangrijkste stromen van de functie toont, en beschikbaar blijft voor vragen van het ontwikkelingsteam. Helaas, deze heen en weer zijn zeer inefficiënt (vooral in een remote setup) en verspillen veel tijd van zowel ontwerp en ontwikkeling team.
  • de ontwerper schrijft, naast het uitgebreide prototype, een goed specificatiedocument dat alle mogelijke scenarii en edge cases vermeldt. Het probleem is dat het vaak een verspilling van tijd, omdat (1) ontwerpers’ kostbare tijd beter zal worden besteed aan het daadwerkelijk ontwerpen van andere functies, niet schrijven van een spec doc, en (2) ze niet altijd dezelfde 360° uitzicht op het product als product managers doen, waardoor ze over het hoofd sommige scenarii en rand gevallen.

daarom vertrouwen volwassen productteams het schrijven van hun productspecificaties meestal toe aan productmanagers.

maar hoe moet u productspecificaties schrijven? Ik heb productspecificaties geschreven voor de afgelopen 5 jaar en ik vond een formaat dat goed wordt gewaardeerd door de software teams die ik werk met. In dit bericht, Ik ben het delen van meer over mijn methodologie en de tools die ik gebruik om product specs te schrijven. Ik ben ook het beschrijven van een aantal beperkingen die ik ben geconfronteerd met de tools die ik gebruik en een aantal ideeën van verbetering die ik in gedachten heb.

Hier zijn de 5 belangrijkste onderwerpen die ik in een product spec:

  1. Context en doelstellingen
  2. Architecture map
  3. Epics en User stories
  4. acceptatiecriteria
  5. ontwerp, inhoud en vertalingen

Context en doelstellingen

zelfs als de productspecificatie voornamelijk gericht is op softwareteams, willen ze nog steeds weten waarom ze werken aan waar ze aan werken. Ik ben gaan begrijpen dat een van de belangrijkste drijfveren van motivatie voor software engineers is impact. De meesten van hen dromen van het werken aan functies die worden gebruikt door miljoenen gebruikers. Ze zijn blij als ze horen dat de nieuwe UX ze hebben geïmplementeerd heeft verhoogd retentie met 15%, bijvoorbeeld. Het is dus belangrijk om context te geven over de functie die ze gaan implementeren:

  • waar hebben we het over? Welk deel van het product? Voel je vrij om een geschiedenis van de functie die nuttig is om de huidige situatie te begrijpen toe te voegen.
  • Wat is het huidige probleem? Opmerking: Er kunnen verschillende problemen op te lossen.
  • is er een kwalitatieve feedback / Verbatim van gebruikers te citeren?
  • moeten gegevens (bv. grafieken) worden getoond? Voel je vrij om in deze sectie Grafieken of grafieken op te nemen die de gegevens begrijpelijker maken.
  • Wat is de gekozen oplossing? (beschrijf het eenvoudig, in een paar zinnen)
  • is een andere oplossing overwogen? Zo ja, waarom is het gereserveerd?
  • is er al een andere oplossing geïmplementeerd? Hoe presteert het?
  • Wat zijn de doelstellingen ? Is er een KPI die we proberen te raken? Dit zal vooral het softwareteam helpen om te begrijpen of ze nieuwe trackers / tags / events moeten implementeren om de gegevens goed te verzamelen. Ik heb gezien dat teams zich zo gedreven voelen door het project dat ze het initiatief namen om dashboards in te stellen om statistieken in real-time te volgen, zonder dat ik of iemand anders erom vroeg.

Architecture map

voordat u te veel in de details van de functie gaat, is het belangrijk om een overzicht op hoog niveau te geven van wat verandert en wat hetzelfde blijft in uw product. En zelfs als je aan een geheel nieuw product werkt, is een architectuurkaart nog steeds uiterst relevant om te begrijpen hoe het product gestructureerd is.

“Architecture map” is de manier waarop ik noem een high-level diagram weergave van de functies van het product (stromen, schermen en inhoud) en hoe ze aan elkaar gerelateerd. Sommige mensen noemen het “Information architecture”, “Flow map”, “UX mapping”, enz.

voorbeeld van een architectuurkaart (gebouwd voor een van mijn clients)), met een “before/after” kleurcode

er is geen officiële methode voor het tekenen van een architectuurkaart. Op een mobiele applicatie, ik meestal proberen te onderscheiden stromen, schermen, en “delen van een scherm” (of “in-page content”), door het gebruik van een andere vorm voor elk van deze, zoals beschreven in de legende hierboven.

het kan ook nuttig zijn om op de kleurcode te spelen. In het bovenstaande voorbeeld gebruikte ik 3 kleuren en ook solide vs.stippellijn om uit te leggen hoe de huidige informatiearchitectuur zou worden bijgewerkt met de UX-vernieuwing van de applicatie waar we aan werkten. (groen: zal blijven zoals het is, Oranje: zal worden bijgewerkt, rood: zal worden verwijderd; solid: zal op dezelfde plaats blijven, gestippeld: zal ergens anders worden verplaatst). Op die manier hadden ingenieurs een duidelijk vogelperspectief op welk deel van de aanvraag aan verandering onderhevig zou zijn.

een andere tip om een begrijpelijke architectuur kaart te bouwen is om duidelijk onderscheid te maken tussen de verschillende delen van de navigatie, zoals hieronder gedaan met aparte gebieden voor elk van hen.

De nieuwe versie van de architectuur gebouwd kaart voor mijn client

het Hebben van een architectuur kaart zal zeer nuttig zijn voor uw product spec; het zal u toelaten om te markeren welk deel van het product je het over hebt in elk van uw gebruikers verhalen.

welk gereedschap moet u gebruiken om een architectuurkaart te tekenen? Er zijn tonnen van hen beschikbaar die er zijn, mijn favoriete is grillig (want het is visueel aangenaam en zeer eenvoudig, niet volgepropt met zo veel functies), maar ik gebruikte ook Draw.io in het verleden — dat is interessant omdat het is geà ntegreerd met Google Drive, dus als je werkt met Google dia ‘ s en Google Docs het maakt het leuk om te gebruiken. Het is ook geïntegreerd met JIRA en Confluence.

als u meer wilt weten over architectuur kaarten (do ’s en don’ ts, welke tools te gebruiken, enkele voorbeelden, etc.), Toptal heeft een geweldige read bedacht: de uitgebreide gids voor informatiearchitectuur.

Epics en User stories

het afbreken en uitleggen van alle delen van uw product kan zeer snel behoorlijk chaotisch worden. Het schrijven van product specs in de afgelopen 5 jaar, de beste manier die ik heb gevonden om de specs georganiseerd en begrijpelijk te houden is om ze te breken volgens “user stories”.

Wat is een gebruikersverhaal? Volgens Agile modellering, een gebruiker verhaal is ” een zeer high-level definitie van een eis, met net genoeg informatie, zodat de ontwikkelaars een redelijke schatting van de inspanning om het te implementeren kan produceren.”

het idee van gebruikersverhalen is om gebruikers op de eerste plaats te zetten en te vermijden dat uitsluitend obscure & technische woordenschat wordt gebruikt bij het bespreken van functies. Zoals Atlassian het stelt: “na het lezen van een gebruikersverhaal weet het team waarom ze bouwen wat ze bouwen en welke waarde het creëert.”

ze zijn gericht op het bouwen van een beter product waarbij de gebruiker centraal staat in de debatten, in tegenstelling tot de goede oude waterval productontwikkeling.

Hier is hoe een user story geformuleerd moeten worden:

een < gebruiker >, Ik wil < enige doel > zodat < enkele reden >.

hier is bijvoorbeeld hoe we het kunnen formuleren van user stories voor de volgende subdeel van de architectuur van de kaart die ik trok voor een van mijn klanten:

  • User Story #1: Als medewerker op de sectie profiel, ik wil mijn profiel bewerken, dus ik kan mijn foto, voornaam en achternaam.
  • gebruikersverhaal # 2: Als werknemer in de profielsectie wil ik toegang tot de instellingen, zodat ik mijn wachtwoord en notificatievoorkeuren kan bijwerken.
  • User Story # 3: als werknemer in de profielsectie wil ik toegang tot de chat zodat ik feedback kan geven aan de ontwikkelaars van de app

het is aan de productmanager om te beslissen welk niveau van details ze in het gebruikersverhaal willen behandelen. Als we dat zouden willen, zouden we ook een niveau dieper kunnen gaan in het User Story #2, bijvoorbeeld:

  • User Story #2.a: Als werknemer in de Instellingen wil ik toegang krijgen tot de sectie “Wachtwoord bewerken”, zodat ik mijn wachtwoord
  • User Story #2 kan bijwerken.b: als een werknemer in de Instellingen, wil ik toegang krijgen tot de meldingen voorkeuren, zodat ik kan bijwerken met welke frequentie ik elk type meldingen

ontvang, maar zoals je ziet, is dit enigszins voor de hand liggend en overbodig. Persoonlijk heb ik ervoor gekozen om deze scenarii te behandelen in de “acceptatiecriteria” (zie volgende sectie) van de verhalen in kwestie.

om gebruikersverhalen te organiseren, gebruiken we vaak “epics”. In agile termen, “epics” zijn grote hoeveelheden werk dat kan worden onderverdeeld in kleinere gebruiker verhalen. Persoonlijk gebruik ik epics om verhalen te groeperen die deel uitmaken van hetzelfde thema of gebied in het product. Bijvoorbeeld, Ik heb ervoor gekozen om de bovenstaande verhalen te groeperen als onderdeel van het” profiel ” epos. Sommige mensen kiezen ervoor om EPIC ‘ s op dezelfde manier te formuleren als gebruikersverhalen, met een eenvoudigere structuur (bijv. “As a user, I want to access my profile”)

Acceptance criteria

om er zeker van te zijn dat er voldoende details aan een gebruikersverhaal worden toegevoegd, gebruiken we “acceptance criteria” (soms ook wel “conditions of satisfaction”genoemd).

volgens LeadingAgile.com ” acceptatiecriteria “zijn” de voorwaarden waaraan een softwareproduct moet voldoen om te worden geaccepteerd door een gebruiker, klant, of in het geval van functionaliteit op systeemniveau, het consumerende systeem.”

in de acceptatiecriteria zou je alle functionele specificiteiten moeten vermelden die niet duidelijk zijn beschreven in het gebruikersverhaal. Bijvoorbeeld:

User Story

als werknemer in de profielsectie wil ik mijn profiel bewerken zodat ik mijn foto, Voornaam en achternaam Kan bijwerken.

acceptatiecriteria

  • gegeven dat ik op het scherm Profiel Bewerken ben wanneer ik op het pictogram voornaam bewerken klik dan moet het overschakelen naar de modus Bewerken, zich concentreren op de invoer en het toetsenbord openen (hetzelfde voor achternaam)
  • gegeven dat ik op het scherm Profiel Bewerken ben wanneer ik op het pictogram Foto Bewerken klik dan moet het me vragen om te kiezen tussen camera en bibliotheek
  • gegeven dat ik mijn voornaam aan het bewerken ben wanneer ik op “Opslaan” klik dan moet het me omleiden naar het lezen Mode en ik zou een success Notification moeten zien

etc…

zie de acceptatiecriteria als een checklist die moet worden ingevuld voor het product te worden verzonden. Het gegeven/wanneer / dan formaat hierboven gebruikt is een goede manier om u te helpen bij het formuleren van uw acceptatiecriteria, maar in sommige gevallen kan het uitdagend zijn om te gebruiken.

ontwerp, inhoud en vertalingen

met up-to-date ontwerpen in uw productspecificaties

tot nu toe heb ik niet vermeld welke tool Ik gebruik om specificaties te schrijven. In het verleden ben ik overgestapt tussen Google Docs, Google Slides en Notion. Ik heb echt genoten van het gebruik van Notion voor alle coole integraties die het biedt (vooral die met Invision en Figma). Maar ik heb nu volledig overgestapt naar Google Docs: ik heb liever meer vrijheid op de manier waarop ik mijn product specificaties formatteren. Het is ook handiger om Google-producten te gebruiken wanneer u met externe partners of klanten werkt.

om ervoor te zorgen dat de visuele identiteit van uw product accuraat tot leven wordt gebracht door het ontwikkelteam, is het belangrijk om hen toegang te geven tot de meest up-to-date schermen die door uw ontwerper(s) worden geleverd. Maar omdat er geen echte integratie is tussen Google Docs en designtools zoals Figma, Invision of Zeplin, exporteerde ik schermen en kopieerde/plakte ze in mijn productspecificaties.

Dit zou al snel een probleem worden: ontwerpers itereren dagelijks op hun schermen, en zelfs als alles op een scherm is overeengekomen, kan het een paar weken later veranderen omdat een specifieke component wordt bijgewerkt in de design library. Dit zou ervoor zorgen dat mijn SPECIFICATIES meestal verouderd zijn.

daarom gebruik ik vandaag alleen de naam van de schermen. Bijvoorbeeld, als een gebruiker verhaal over profile edition is over 2 schermen die zijn ontworpen op Figma, Ik zal alleen schrijven “Figma screen name: edit-profile-1 and edit-profile-2”.

Dit is natuurlijk niet ideaal en beperkt ontwikkelaars of iemand anders die mijn SPECIFICATIES leest om te schakelen tussen verschillende tools.

maar dit laat zien dat er vandaag iets inefficiënt is in de manier waarop we productspecificaties schrijven. Het gebruik van verschillende producten roept vragen op van integratie en synchronisatie. Hoe zorg je ervoor dat alle informatie die nodig is om een product te bouwen op één plek zichtbaar is, zonder verouderd te zijn? (Eigenlijk geldt dit niet alleen voor ontwerpen, maar ook voor Architectuurkaarten en inhoud).

→ Als u ook dit probleem ondervindt en een oplossing hebt gevonden, ben ik geïnteresseerd om uw feedback te krijgen!

het geven van gemakkelijke toegang tot inhoud en vertalingen om typefouten te vermijden

wanneer u schermen ontwerpt met een grote hoeveelheid inhoud, is het leuk om ontwikkelaars de mogelijkheid te geven om het eenvoudig te kopiëren / plakken in plaats van het zelf opnieuw te typen. Anders, je zou kunnen eindigen met (1) veel typefouten en (2) boos ontwikkelaars. Er zijn verschillende manieren waarop u hen toegang tot de inhoud kunt geven:

  • door hen toegang te geven tot de bronbestanden van het ontwerpwerk op Sketch, Figma of Zeplin bijvoorbeeld.
  • door de inhoud direct in de spec te kopiëren/plakken (het kan het een beetje rommelig maken).

als uw product in meerdere talen bestaat, geef dan ook toegang tot elke vertaling. U kunt bijvoorbeeld een array gebruiken om de vertaling van uw oorspronkelijke inhoud in elke taal weer te geven. Het volgende niveau van vertaalbeheer is om een lokalisatiehulpmiddel (zoals zin) te gebruiken en slechts de “vertaalsleutels” in uw productspecie toe te voegen. Maar nogmaals, dit impliceert nog een heen-en-weer tussen uw product specs en een ander hulpmiddel.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.