Development Donderdagen 23

Interessante artikels

Er is geen “Spotify model” (10 min)

… of “Twitter model” of “Facebook model” of… Deze manieren van software ontwikkelen zijn zeer succesvol voor de organisaties in kwestie, maar ze copy-pasten naar je eigen development omgeving zal nooit werken. Een “model” van een Spotify ontstaat niet zomaar op een dag, maar is een proces dat gegroeid is over een tijdspanne van jaren, met zijn ups en zijn downs. Je kan er inspiratie uit halen, maar iedere onderneming moet de tijd vinden om langzaamaan een eigen model samen te stellen dat het best werkt voor zijn omgeving.

https://www.infoq.com/news/2016/10/no-spotify-model?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

Mag ik eventjes storen? (15 min)

Het onderbreken van een ontwikkelaar voor een klein vraagje heeft grotere gevolgen dan je zou verwachten. Volgens een studie duurt het gemiddeld 10 – 15 minuten vooraleer iemand weer met zijn volle aandacht kan verderwerken nadat hij gestoord is. Daarnaast wijst onderzoek uit dat een ontwikkelaar meestal slechts één sessie van 2 uur per dag heeft waarop hij niet wordt onderbroken.

Het artikel biedt echter ook trucjes aan om snel geheugensteuntjes in je code te stoppen zodat je na de interrupt weer sneller kan focussen. Hopelijk heb ik je niet onderbroken met deze nieuwsbrief…

http://blog.ninlabs.com/2013/01/programmer-interrupted/

Talk of the week: Jimmy Bogard – Domain-Driven Design: The Good Parts (58 min)

Jimmy Bogard mocht enkele jaren geleden een massieve applicatie maken en besloot daarvoor DDD als fundament te gebruiken. Alhoewel de applicatie uiteindelijk succesvol is afgewerkt, werd er toch wat gezondigd tegen de DDD-regels waardoor de ontwikkeling moeilijker verliep.

Enkele jaren later kreeg Bogard een herkansing met een gelijkaardig project en besloot hij lessen te trekken uit de fouten die hij bij het vorige project had gemaakt.

https://vimeo.com/179889630

  • The team was tasked with building an application for all branches in Texas that handled juvenile deliquents (formerly, every city had its own system and information wasn’t shared between cities. Eg; The department in Dallas did not know about the criminal history of a teenager if he had committed all of his previous crimes outside of Dallas).
  • The flow of handling a juvenile delinquent is quite long and really complex. No single person knew everything about the complete flow.
  • The first thing the team did was build a series of personas representing the different users of the system and what they would want to do with it. They came up with 72 personas
    • In retrospective they realized this was a big warning sign indicating that the system should have been chopped up in several smaller applications, but back then they continued with building one big application for all 72 usertypes (also because the client insisted on them building one big system)
    • They colour coded the personas based on the agencies they worked for so they could group them together. This also created Bounded Contexts the team could work with
      • The same term meant different things to different personas. The team made a mistake by sill trying to create terms that could be used by all personas
      • By doing this they ended up with very generic terms like ‘Person’. These objects meant very little in the context of the legal application they were building. They failed to create an Ubiquitous language and reused objects for different purposes
    • Competing priorities: only a few of the personas want to help the kids get on the right track, others just want to ‘process’ them and dont care what happens to the children, etc
      • There was no consensus in the Core Domain. Everyone wants something different from the system
  • Then the team had to build a similar system for the adult offenders
    • Due to budget reasons, they had to build the system for one agency at a time. This was positive because they wouldn’t have to work with 72 personas at the same time like the previous system
    • This also allowed them to define a small bounded context around ‘Prosecutions’ and give things good names (ie ubiquitous language) that meant something for the personas working in the prosecutions bounded context.
    • This small bounded context also allowed them to talk to the users in a better way, asking more to the point questions. This led them to understand the domain better and develop an application that is better suited to the needs of the user

 

Dictionary.put()

The last line effect is een fout die vaak voorkomt wanneer ontwikkelaars enkele heel gelijkaardige lijnen/stukken code na elkaar moeten schrijven. Vaak beginnen ze te copy/pasten en maken ze op de laatste lijn een heel kleine fout die moeilijk op te merken valt als je snel door de code leest. Andrey Karpov heeft een “bugdatabase” aangelegd en ontdekte zo dit patroon. Op zijn blog heeft hij tal van voorbeelden staan, gaande van code uit Firefox tot OpenSSL en Unreal Engine 4.

https://hownot2code.com/2016/09/14/last-line-effect/

Technologie in de kijker: Funnies

Funnies bezorgt je een resem laadschermen met grappige teksten. De library werkt zowel voor server- als clientside applicaties. Wie wil kan altijd zijn eigen laadschermteksten toevoegen.

https://github.com/1egoman/funnies

finally {

Volgend artikel uit 1967 probeert in mensentaal uit te leggen waar een ontwikkelaar van software zich een hele dag mee bezig houdt. Net zoals 50 jaar later is dat lang niet alleen met het ontwikkelen van software. Veel lijkt er gedurende die halve eeuw niet veranderd. Behalve dat we onze bugs niet meer toewijzen aan het toedoen van een Dybbuk.

http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-9-pdf/k-9-u2769-1-Baker-What-Programmer-Does.pdf

}

Advertenties

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s