Wat speelt er nu bij ShareValue?

01-07-2021

7 minuten lezen

Door de COVID-lockdown werken bijna alle developers vanuit huis. Hoewel we veel communicatiemiddelen hebben om met elkaar in contact te blijven, ging het samen programmeren (“pair programming”) toch niet zo soepel als ik zou willen.

Voor niet-ingewijden: pair programming is de werkwijze in softwareontwikkeling waarbij twee ontwikkelaars achter een enkele computer aan een stuk code werken. We doen dit omdat we vaak betere oplossingen bedenken wanneer gezamenlijk verschillende opties bespreken en uitproberen. Door deze uitwisseling van ideeën verbeteren we niet alleen de kwaliteit van code, maar ook de interpersoonlijke dynamiek. Én we investeren we in betere kennisdeling.

Afgezien van pair programming, vragen professionele ontwikkelaars ook vaak anderen om feedback of een beetje ondersteuning als ze ergens mee bezig zijn waar ze minder bekend mee zijn. In een kantooromgeving zou je af en toe een collega vragen om over je schouder mee te kijken en te helpen een stukje code te analyseren waar je moeite mee hebt. Vaak kunnen collega’s dan de hiaten in je kennis opvullen of helpen om op een nieuwe manier over het probleem na te denken. Andere keren helpt alleen al het uitleggen van het probleem me om een stap terug te doen en het probleem anders te bekijken (ook bekend als Rubber Duck Debugging).

Als je bij elkaar op kantoor zit, werkt dit uitstekend. Op afstand was dit een uitdaging. De standaard communicatiemiddelen hebben allemaal hun voor- en nadelen:

  • E-mail
  • Chatten
  • Telefoon
  • Videobellen

E-mail

E-mail is geweldig voor het verzenden van hele brieven waarin een bepaald probleem wordt beschreven. Het maakt het ook mogelijk om documenten bij te voegen; of het nu screenshots of stukjes code zijn. Discussies kunnen van een thread worden voorzien om gerelateerde communicatie bij te houden zodat je gemakkelijk kunt terugzoeken. Het grootste nadeel van e-mailen is echter dat het even kan duren voordat je antwoord krijgt: je bent afhankelijk van een antwoord van de ontvanger wanneer het hem of haar uitkomt. Ik heb bijvoorbeeld mijn e-mailclient niet de hele tijd open: ik check mijn mail maar twee of drie keer per dag, zodat ik me kan concentreren op het programmeren in Visual Studio. Een heel verhaal typen om je probleem uit te leggen kan soms ook lastig zijn, vooral wanneer de code voortdurend evolueert en de bijgevoegde code mogelijk niet eens werkt tegen de tijd dat de ontvanger er naar kijkt.

Chatten

Als alternatief voor e-mail kunnen teamgenoten door te chatten via Slack, Microsoft Teams of vergelijkbare apps sneller verbinding met elkaar maken. De communicatie is direct en men kan op dezelfde manier documenten met elkaar delen. De toevoeging van aanwezigheidsindicatoren (groen = beschikbaar, geel = afwezig, rood = bezet) zoals in Microsoft Teams helpt de communicatie te vergemakkelijken zonder elkaar te veel te storen. Net als bij e-mail is het echter niet eenvoudig om je probleem volledig te communiceren, maar de onmiddellijke reactie kan helpen om het sneller te beperken.

Bellen

Soms is het beter om gewoon te bellen. Met een eenvoudig telefoongesprek kun je vrijer praten en vaak is het ook sneller en efficiënter dan wanneer je alles moet uittypen Het nadeel is natuurlijk dat beide partijen niet hetzelfde referentiekader hebben: beide partijen zouden elkaar moeten vertellen waar de code of een paragraaf in een document te vinden is. Wij merken dat we meestal toevlucht nemen tot het delen van de documenten of screenshots via een chat of e-mail om tijdens het telefoongesprek te illustreren waar we het over hebben.

Videobellen

Gelukkig combineert videobellen zoals met Microsoft Teams veel van de voordelen van de bovenstaande vormen van communicatie. Men kan zijn computerscherm delen (en zelfs de controle over je scherm doorgeven aan de collega), een spraak- en videogesprek voeren en de nodige bestanden delen. Toch heeft ook deze vorm van communicatie zijn grenzen. Ten eerste leent de kwaliteit van de verbinding zich niet altijd voor een videokwaliteit die fatsoenlijk genoeg is om gedetailleerde tekst zoals code te verzenden. Een ander probleem dat men kan tegenkomen is dat wanneer een partij een hoge resolutie heeft zoals een 4K- of WQHD-scherm en deze deelt met iemand die op een HD 15” laptopscherm werkt de tekst ook onleesbaar wordt. Ten slotte, wanneer ontwikkelaars hun Visual Studio met beheerdersrechten draaien (bijvoorbeeld bij het debuggen van een door IIS gehoste oplossing), kan de andere partij de controle niet overnemen. Navigeren door de call-stack of het zetten van breakpoints of watches zijn dan moeilijker te coördineren.

Was er maar een betere manier…

Tools voor samenwerken op afstand bestonden natuurlijk al. Velen van ons zijn gewend geraakt aan Google Docs, Microsoft 365 en SharePoint. Meerdere mensen kunnen dan tegelijkertijd een document als een spreadsheet bewerken. Alleen de gegevens werden onderling gedeeld, hun schermindelingen zijn van henzelf.

Figuur: meerdere mensen die tegelijkertijd aan een Google Sheets-document werken


En daar is de LiveShare-extensie van Microsoft voor Visual Studio

In 2019 bracht het Visual Studio Code-team een uitbreiding uit op de platformonafhankelijke IDE, waarmee ontwikkelaars hun ontwikkelervaring rechtstreeks via internet konden delen. Het werd al snel standaard geïnstalleerd in VS Code en als een optionele download voor gebruikers van Visual Studio voor Windows 2017. We gingen er meteen mee aan de slag, experimenteerden ermee en moedigden teamgenoten aan om het ook te gebruiken. De enige uitdaging was het overtuigen van deze teamgenoten om nóg een extensie voor Visual Studio te installeren. We waren dan ook blij dat bij de lancering van Visual Studio voor Windows 2019 de LiveShare-extensie standaard al meegeleverd werd.

Visual Studio Live Share​

De extensie heeft een aantal geweldige functies:

  • Live bewerken: Schrijf en bewerk code samen in realtime
  • Focus en volg: Vestig de aandacht op uw cursor of volg anderen wanneer zij navigeren
  • Geïntegreerde audiogesprekken: Communiceer met anderen via spraak vanuit de IDE
  • Groepsfoutopsporing: Stel breakpoints in en loop samen door de code
  • Gedeelde servers: Web-apps en databases bekijken zonder poorten bloot te stellen aan het internet
  • Gedeelde terminal: Voer commando’s en taken uit, waarbij de uitvoer naar teamleden wordt gestreamd
  • Gestreamde ervaring: De IDE-ervaring wordt gestreamd, genodigden hebben geen kopie van de code nodig

Toen Nederland in maart 2020 in lockdown ging en alle kantoren werden gesloten, heeft onze collega eindelijk van de gelegenheid gebruik gemaakt om zijn team te overtuigen om LiveShare te proberen. Het bleek een geweldige match te zijn. Het stelde hen in staat om effectiever te zijn in de communicatie: ze waren veel productiever!

Ze konden naar dezelfde code kijken, terwijl ze onze eigen schermresolutie of kleurenschema gebruikten, samen debuggen en de werking van de code inspecteren terwijl deze werd uitgevoerd.

Vooral in gevallen waarin onze collega vastzat op een stukje code en een collega nodig had om virtueel over zijn schouder mee te kijken, was de LiveShare-extensie een zegen. Hij kon zijn applicatie lokaal uitvoeren, een breakpoint instellen en bespreken wat de applicatie aan het doen was terwijl hij hem zag draaien. Zijn teamgenoot kon dan de “stack trace” manipuleren, een “watch” instellen, enz. om het probleem te diagnosticeren of te helpen nadenken over het probleem. Gesprekken die vroeger 30 minuten of langer duurden, duurden nu minder dan 10. Iedereen kon sneller terug naar de eigen werkzaamheden zonder hun respectievelijke Visual Studio-ontwikkelomgevingen te verlaten.

Veel gebruiksscenario’s

Het belangrijkste voordeel van het gebruik van Visual Studio LiveShare is voor ons dat de ontwikkelaars in hun belangrijkste tool kunnen blijven: je hoef Visual Studio nooit te verlaten. Als je het veel afleiding hebt, sluit je Microsoft Outlook en Teams af om je op code te concentreren.

Met LiveShare als extensie in zijn Visual Studio-omgeving kan onze collega gemakkelijk een collega uitnodigen om hem te helpen, of hij kan snel reageren als zij een vraag aan mij hebben.

LiveShare zorgt voor zo’n rijke samenwerkingservaring dat je het ook kunt gebruiken voor een verscheidenheid aan code-werkzaamheden:

  • Realtime pair programming op afstand: Gezamenlijk programmeren en/of code-analyse
  • Code reviews: Op afstand code lezen en bespreken
  • Technisch sollicitatiegesprek: Kijk hoe een kandidaat een technische taak voltooit in hun IDE en bespreek hun aanpak
  • Code-bootcamps: Presenteer voorbeeldoplossingen aan de deelnemers, navigeer door code en toon werkende applicaties
  • Technische workshops: Laat een workshopdocent virtueel over de schouder meekijken en cursisten verder op weg helpen

Zoals je misschien al geraden hebt, zijn wij fan van deze tool. Het heeft onze collega in staat gesteld om effectiever samen te werken met zijn teamgenoten en heeft ook geholpen om met de gedeelde kennis van de code van ons project te verbeteren.

Nu de extensie is ingebouwd in zowel Visual Studio Code als Visual Studio voor Windows 2019, is er geen beter moment dan nu om te zien hoe het je ontwikkelteam kan helpen om op afstand samen te werken! En mochten wij je kunnen helpen bij het inzetten van deze tool en/of het uitrollen ervan, dan horen we het natuurlijk graag. Onze .NET experts staan er klaar voor!

Jimi Jimi / 21-04-2021

3 minuten lezen

ShareValue heeft veel cv’s die constant up-to-date worden gehouden. Wanneer een opdrachtgever op zoek is naar een expert, is het belangrijk dat de cv’s die ShareValue presenteert duidelijke en recente ervaringen en kennis weergeven. Cv-documenten met de hand bijwerken kan erg tijdrovend zijn. Ook is dit proces erg foutgevoelig en worden veel onderdelen van het cv keer op keer herschreven, of handmatig vertaald, in plaats van modulair hergebruikt.

Bij ShareValue zijn innovatieve ideeën altijd welkom, zeker wanneer dit een belangrijk bedrijfsproces verbetert. Zo zijn we dus ook innovatief aan de slag gegaan met het verbeteren van het cv-proces, met een cv-generator.

Het Dashboard

Intern ontwikkeld

In 2019 is bij ShareValue een intern team begonnen met het ontwerpen en implementeren van de cv-generator. Er waren meerdere ideeën aanwezig, maar uiteindelijk hebben we besloten om een applicatie te ontwikkelen met een ASP.NET core Back-End en een Angular Front-End. De applicatie-structuur is gebaseerd op het DAO (Data Access Object) pattern, wat ervoor zorgt dat de datalogica los staat van de businesslogica. Dankzij het DAO pattern kan de businesslaag zonder referentie naar de datalaag getest worden, en andersom ook. Het streven is naar een unittest code coverage van 100%. De Front-End Angular applicatie staat los van de Back-End en communiceert via een REST API. Met een full-stack team staat de basis van de applicatie al snel online. Met een complete ontwikkelstraat waarin wordt getest met unittests en automatisch wordt gebouwd en gepubliceerd naar cloud hosting in Azure.

Bekijk je cv

Centrale database

De centralisatie van cv-gegevens versterkt de mogelijkheden van de cv-generator enorm. Het samenstellen van een cv kan door de expert worden gedaan, maar ook door de salesafdeling. Binnen ShareValue delen veel medewerkers dezelfde certificaten en ervaringen. Dit is mede dankzij de visie voor het onderling delen van kennis en de sterke investeringen in opleidingen, trainingen en certificeringen. Het centraal definiëren van herbruikbare cv-modules voorziet iedereen van mooi en duidelijk geschreven teksten over de relevante expertises.

Wanneer een expert al lange tijd werkzaam is, dan kan een cv erg lang zijn en vol ervaringen staan. Dit kan een overwelmend effect hebben op de lezer, die graag de voor zijn of haar uitvraag specifieke informatie wil zien. In de cv generator kan de salesafdeling eenvoudig selecteren welke ervaringen en certificeringen wel of niet in een cv komen te staan. Met deze filters zijn wij in staat om alleen de voor de opdrachtgever relevante informatie te presenteren en de overige “clutter” te minimaliseren.

Wijzig je cv

Automatische documentgeneratie

De cv-generator werkt zoals de naam suggereert, het genereert cv-documenten. Dit in de vorm van een net PDF-bestand met daarin de voor elke opdrachtgever specifieke relevante informatie. Voor het genereren van documenten zijn meerdere formaten beschikbaar. Deze zijn ontworpen in eenvoudige templates met HTML en CSS. Dankzij deze templates is het mogelijk om bijvoorbeeld per bedrijfstak een andere stijl te hanteren, of om naast een gedetailleerde versie ook een abstracte versie te genereren.

Exporteer je cv

Wil je meer weten over onze cv-generator of aan de slag met een eigen versie hiervan? We helpen graag! Laat het ons weten en dan gaan we op zoek naar de oplossing die het beste past bij jouw uitdaging.

22-02-2021

4 minuten lezen

Om met de deur in huis te vallen: ik ben best een beetje bedroefd, want we zijn geen Sitecore-partner meer. Het CMS waar ik de afgelopen jaren veel werk in heb gehad, waar mijn expertise zit. Er zijn echter wat veranderingen in de markt, waardoor wij als bedrijf onze horizon moeten verbreden. Gelukkig hebben wij een gedegen ‘sidekick’ gevonden. En zijn naam is Sitefinity.

Op het gebied van content management systemen (kortweg CMS) in de Microsoftwereld is Sitecore de marktleider. En omdat wij bij ShareValue Microsoft-georiënteerd zijn, is het niet meer dan logisch dat wij zo veel tijd hebben geïnvesteerd in Sitecore, dat we zo veel klanten hebben bediend de afgelopen jaren. Het is ook gewoon een geweldig CMS, laat ik dat vooropstellen.

Het bedrijf Sitecore is echter overgenomen door een investeringsmaatschappij en, zoals dat zo vaak gaat: die willen er natuurlijk zo veel mogelijk geld aan verdienen. Helaas hebben ze ervoor gekozen om de prijzen dusdanig te verhogen, dat het voor veel Nederlandse bedrijven niet meer betaalbaar zal zijn.

De schaalgrootte waar Sitecore voor kiest, past enkel bij de écht grote bedrijven, de multinationals. Dat is een keuze, maar het zorgt er wel voor dat wij onze expertise moesten verbreden met een ander systeem. In de nabije toekomst zal het er namelijk ook voor zorgen dat de hoeveelheid opdrachten voor Sitecore developers en consultants van ShareValue zal afnemen.

Analyse van concurrerende pakketten

Vanuit mijn rol als Competence Lead CMS heb ik een analyse gedaan van verschillende concurrerende pakketten, zoals Episerver, Umbraco en Kentico. Om uiteenlopende redenen vielen ze een voor een af: te duur, te instabiel door vele wijzigingen, niet geschikt vanwege achterlopende techniek. Uiteindelijk is de keuze gevallen op Sitefinity.

Het bedrijf achter Sitefinity is het bij developers bekende Telerik. Het product is daardoor erg developer-friendly: met geoptimaliseerde workflows, betrouwbare en actuele techniek en goede documentatie. Tel daarbij op dat de prijs van dit CMS een kwart is van wat Sitecore tegenwoordig kost en de keuze was uiteindelijk toch snel duidelijk.

Mijn inschatting is dat in de komende jaren vele bedrijven over zullen stappen van Sitecore naar een vergelijkbaar, maar vele malen goedkoper CMS. Sitecore is de Rolls Royce in de Enterprise CMS-wereld en voor de meeste bedrijven sowieso al te veel van het goede. Een simpeler pakket voldoet net zo goed, omdat 95% van de mogelijkheden toch niet benut worden of overbodig zijn. Voor het leeuwendeel van de Nederlandse bedrijven, voor MKB en midden- en grootbedrijf – eigenlijk alle bedrijven onder de 5000 werknemers – is een CMS als Sitefinity een zeer geschikt alternatief.

Soepele overstap

Hoe de overstap naar (bijvoorbeeld) Sitefinity zal gaan en hoe snel dit gerealiseerd kan worden, dat hangt ervan af. Zoals wij IT’ers altijd zeggen: it depends, het is allemaal maatwerk. Qua techniek hoeft het gelukkig geen probleem te vormen, want Sitefinity is net als Sitecore op de laatste versie van het .NET Framework gebaseerd. Plug-ins en add-ons die we hebben geschreven voor Sitecore kunnen we daarom redelijk snel en eenvoudig aanpassen zodat deze ook gebruikt kunnen worden op Sitefinity.

Sitefinity volgt bovendien de bewegingen naar .NET Core (nu .NET 5), wat voor veel bedrijven een vereiste is als ze naar een nieuw pakket overstappen. En tot slot is Sitefinity headless – een manier om alle content via geoptimaliseerde APIs aan te bieden. Hierdoor is het gemakkelijker om met verschillende Front-End technieken en mobiele apps te integreren.

Afscheid nemen doet pijn

Het is erg leuk om met nieuwe techniek bezig te zijn en Sitefinity helemaal onder de knie te krijgen, maar toch doet het pijn om deels afscheid te moeten nemen van Sitecore. Het is namelijk niet alleen het systeem waar ik samen met mijn team straks niet meer actief voor ontwikkel, er zit ook een enorme toegewijde community achter, er is daar zoveel technische kennis aanwezig!

Als je met een probleem zat waar je niet uitkwam, dan is er altijd wel iemand die je kon helpen. En vice-versa, natuurlijk. Er is zo veel documentatie, er zijn vele duizenden blogs, podcasts, video’s door de community gepubliceerd, het is bijna niet voor te stellen. Je komt elkaar tegen op congressen en meetups en virtuele lunches; het was altijd gezellig. Een grote, wereldwijde familie, zo zie ik het bijna.

Gezien we verwachten dat er steeds meer werk komt in Sitefinity en steeds minder in Sitecore, zal ik op den duur deze familie dus achter me moeten laten. En dat doet toch een beetje pijn. Stiekem hoop ik dan ook dat het merendeel van de familie de komende jaren dezelfde verbreding naar Sitefinity maakt.

Hoe nu verder

Bij ShareValue zijn we nu volop bezig om het Sitefinity-pakket beter te leren kennen en met het halen van certificaten. Daarnaast zijn we vooral bezig om kennis en ervaring op te bouwen hoe wij met onze knowhow klanten kunnen helpen om hun Sitecore omgeving naar Sitefinity te migreren.

Ben je ook geïnteresseerd in alternatieven voor Sitecore en hoe je hiervan af kan migreren? Neem dan contact met ons op. We kijken graag met je mee naar de verschillende oplossingen.

Michiel Michiel / 10-12-2020

4 minuten lezen

Op 10 november zag .NET 5 officieel het levenslicht tijdens een driedaags online event. .NET 5 mag met recht een mijlpaal genoemd worden: in het (bijna) 18-jarig bestaan van .NET is dit misschien wel het belangrijkste moment sinds het ontstaan van .NET 1.0.

Mijlpaal!

Waarom is dit zo’n grote mijlpaal?

Met .NET 5 wordt gebroken met het verleden. Tot voor kort werd het .NET Framework (uit 2002) steeds verder ontwikkeld op het bestaande systeem: closed source, Windows only.

.NET 5 is natuurlijk ook niet zomaar ontstaan; het is tenslotte de opvolger van .NET Core 3.1. .NET Core zelf is echter een complete herbouw van .NET en tegelijkertijd alles wat .NET Framework niet is: open source en cross-platform.

<3

Microsoft ❤ Open Source

Die trendbreuk is een aantal jaar geleden ingezet door Satya Nadella en tijdens de Microsoft Build van 2019 nog eens bevestigd: Microsoft ❤ Open Source.

In het tijdperk van Steve Ballmer was dit niet voor te stellen. In de open source wereld werd Microsoft verguisd en ook binnen Microsoft was het niet voor te stellen dat je een presentatie gaf op een Mac.

Dit werd ook pijnlijk duidelijk toen op 4 juni 2018 officieel werd aangekondigd dat GitHub voor 7,5 miljard dollar overgenomen zou worden door Microsoft. Concurrent GitLab zag het aantal geïmporteerde projecten vertienvoudigen. Twee jaar later lijkt de angst dat Microsoft GitHub om zeep zou helpen ongegrond. Microsoft helpt mee aan allerlei open source initiatieven, uiteraard ook hun eigen .NET projecten.

Open source en cross platform

Voordelen van .NET

Zoals aangegeven is .NET 5 open source en cross platform. Het voordeel daarvan is dat er meer mogelijkheden zijn voor hosting. Zelfs binnen Azure kan een .NET webapplicatie op Linux draaien. Cross platform zorgt ook voor meer integratie met andere ontwikkelteams en heb je geen last van “vendor lock-in”: .NET 5 werkt bijvoorbeeld ook op Amazon Web Services (AWS) en de Google Cloud.

Daarnaast zijn er nog meer voordelen, maar één van de belangrijkste naast de bovenstaande, is de performance. .NET 5 is veel sneller dan zijn voorgangers. Meer informatie daarover staat in de zeer uitgebreide blog van Microsoft.

.NET Roadmap

Met .NET 5 houden we één .NET over. .NET Framework, .NET Standard en .NET Core blijven uiteraard werken, maar verdere ondersteuning houdt wel op.

.NET Roadmap

De roadmap voor .NET is voor de komende jaren vastgelegd. Vanaf nu zal er elk jaar een nieuwe .NET versie uitgerold worden. In november 2021 zal .NET 6 uitkomen. Net als andere “even” versies, wordt deze met “Long Term Support” (LTS) geleverd worden.

Ondanks dat .NET 5.0 geen LTS heeft, kan je er wel bedrijfskritische applicaties mee maken. Indien er echter toch terughoudendheid is en er daarom gekozen wordt om te wachten op .NET 6 (met LTS), dan is het zeker niet het moment om af te wachten. Een migratie kan een hele operatie zijn en dan is 11 maanden voorbereiding zeker aan te bevelen en kan .NET 5 als basis dienen.

Een begin kan zijn om business logica onder te brengen in .NET Standard 2.1 class libraries. Dit is namelijk de laatste versie die zowel door .NET Framework als .NET Core / .NET 5 gebruikt kan worden. Door deze transitie te doen, kan oude code blijven werken en kunnen tegelijk de eerste stappen van de migratie worden genomen.

WebForms

Voorbeeld ASP.NET WebForms

Sommige migraties zijn eenvoudig, omdat de techniek blijft bestaan. Zo is een migratie van ASP.NET MVC naar ASP.NET Core MVC een stuk eenvoudiger te realiseren dan een migratie van ASP.NET WebForms naar een .NET 5 webapplicatie, omdat WebForms niet meer bestaat.

In een eerdere blog heb ik Blazor besproken. Voor developers die nu werken met WebForms is dit een goed alternatief: een lage learning curve en de kennis en expertise is al in huis. En ook Blazor heeft componenten die hergebruikt kunnen worden. Verder kunnen met .NET 5 wel alle moderne technieken gebruikt worden. Unit tests als xUnit en bUnit kunnen gebruikt worden om de huidige functionaliteit te testen in de nieuwe omgeving.

Uiteraard zijn er ook andere mogelijkheden om de WebForms applicatie te migreren naar een andere weboplossing. Daarbij zoeken wij altijd naar een oplossing die het beste past bij de omgeving van onze klant.

Een migratie van de oude .NET naar .NET 5.0

.NET 5.0 Migratiescan

ShareValue heeft de kennis in huis om een migratie van een oude .NET versie naar .NET 5 te begeleiden en hier adviezen op te geven. Dit begint met een analyse van het huidige software landschap. Vervolgens brengen we een advies uit, waarbij we ook rekening houden met de impact op de business. Uiteindelijk kunnen we de uitvoering van de migratie samen met de klant realiseren en begeleiden. Wil je hier meer over weten? Neem dan contact met ons op.

{description}

Heb je een Microsoft Expert nodig?

Neem contact met ons op
{description}

Zoek je een nieuwe baan?

Bekijk onze vacatures