fredag 30 oktober 2020

The guest quotes about Clean Code in the book Clean Code

Clean code and code quality

The introduction of the book Clean Code by Robert C Martin begins with the image below, which I find funny beacuse its true. Even when the code is good, you can get wtf moments, but maybe more of surprise of becoming aware of odd things the program has to handle or usable stuff in the framework you didn't know existed than of strange or overcomplicated solutions.

What is clean code?

The focus of this post is on the content of the first chapter, which contains answers from other well-known and deeply experienced programmers on what they think defines Clean Code. Just to have all the quotes in a single place and easily retrievable.

Bjarne Stroustrup, inventor of C++ and author of The C++ Programming Language
I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well.


Grady Booch, author of Object Oriented Analysis and Design with Applications 

Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer's intent but rather is full of crisp abstractions and straightforward lines of control.


"Big" Dave Thomas, founder of OTI, godfather of the Eclipse strategy

Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. Code should be literate since depending on the language, not all necessary information can be expressed clearly in code alone.


Michael Feathers, author of Working Effectively with Legacy Code

I could list all of the qualities that I notice in clean code, but there is one overarching quality that leads to all of them. Clean code always looks like it was written by someone who cares. There is nothing obvious that you can do to make it better. All of those things were thought about by the code's author, and if you try to imagine improvements, you're led back to where you are, sitting in appreciation of the code someone left for you - code left by someone who cares deeply about the craft.


Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming. Motive force behind design patterns. Smalltalk and OO thought leader. The godfather of all those who care about code.

You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem.

And the longest last...

Ron Jeffries, author of Extreme Programming Installed and Extreme Programming Adventures in C#

In recent years I begin, and nearly end, with Beck's rules of simple code. In priority order, simple code:
  • Runs all the tests;
  • Contains no duplication;
  • Expresses all the design ideas that are in the system;
  • Minimizes the number of entities such as classes, methods, functions and the like.

Of these, I focus mostly on duplication. When the same thing is done over and over, it's a sign that there is an idea in out mind that is not well represented in the code. I try to figure out what it is. Then I try to express that idea more clearly.

Expressiveness to me includes meaningful names, and I am likely to change the names of things several times before I settle in. With modern coding tools such as Eclipse, renaming is quire inexpensive, so it doesn't trouble me to change. 

Expressiveness goes beyond names, however. I also look at whether an object or method is doing more than one thing. If it's an object, it probably needs to be broken into two or more objects. If it's a method, I will always use the Extract Method refactoring on it, resulting in one method that says more clearly what it does, and some submethods saying how it is done.

 Duplication and expressiveness take me a very long way into what I consider clean code, and improving dirty code with just these two things in mind can make a huge difference. There is, however, one other thing that I'm aware of doing, which is a bit harder to explain.

After years of doing this work, it seems to me that all programs are made up of very similar elements. One example is "find things in a collection". Whether we have a database of employee records, or a hash map of keys and values, or an array of items of some kind, we often find ourselves wanting a particular item from that collection. When I find that happening, I will often wrap the particular implementation in a more abstract method or class. That gives me a couple of interesting advantages.

I can implement the functionality now with something simple, say a hash map, but since now all the references to that search are covered by my little abstraction, I can change the implementation any time I want. I can go forward quickly while preserving my ability to change later. In addition, the collection abstraction often calls my attention to what's "really" going on, and keeps me from running down the path of implementing arbitrary collection behavior when all I really need is a few fairly simple ways of finding what I want.

Reduced duplication, high expressiveness, and early building of simple abstractions. That's what makes clean code for me. 

Rather watch the movie instead of reading the book?

Here you have hour after hour with uncle Bob (Robert C Martin), speaking about that same things that's in the book.

måndag 26 oktober 2020

My glasses crackled within a year...

I saw something that looked like lots and lots of tiny scratches on my glasses. They are almost invisible in bad lighting, but clear when looking at them in sunshine. The seller didn't even care to look at them, just told me surface treatment probably had crackled. She also said that heat is often the culprit, like using them in the sauna.

But I hadn't been using them in the sauna and had also avoided the steam coming out from the oven when opening the oven door. Also been really careful when cleaning them. 

I tried to find images of crackled glasses on the web to compare with, but found nothing. So, to provide the web with content, here are images of my old, probably crakled glasses and of my new ones for comparison.

Glasses with crackled surface treatment.

Because it hadn't passed a year since I bought them, I got new ones on warranty. And they looked like this:

And a few swedish words for the search engines :)

Krackelerade glasögon. Krackelerad ytbehandling.

söndag 8 mars 2020

Har du en gmail-adress? Känner du till att du då har många adresser?

Ett konto, flera adresser

Gmail hanterar e-postadresser lite annorlunda än andra, de har en mer "förlåtande" hantering av punktplacering.

Nedan är deras egen beskrivning från supportsidan Punkter spelar ingen roll i Gmail-adresser:
Om någon skickar ett e-postmeddelande till dig och råkar lägga till punkter i adressen skickas meddelandet till dig ändå. Om du till exempel har e-postadressen äger du även alla versioner av adressen med punkter:

Användandet av punkter måste ändå följa e-postadresstandarden, så adressen får inte börja eller sluta med en punkt och en punkt får inte åtföljas av en punkt.

Förutom att det kan vara bra att känna till, kan man dra nytta av det? 


Man kan ju på vissa abonnemangstjänster som använder e-postadressen som kontoidentifierare registrera sig flera gånger med olika varianter av sin adress för att få tillgång till flera gratis prova-på-perioder. Om man känner sig sparsam. Och inte läser tjänstens villkor för noga.

Man KAN ju också använda det som ett trubbigt verktyg för att upptäcka hur din adress sprids/säljs vidare av någon du ger den till. Anta att en sajt erbjuder nåt du får ladda ner gratis, om du bara ger dem din e-postadress. Om du då använder en variant av din adress som är unik för den sajten och du sedan börjar få spam till ditt konto, riktat till just den adressen, så är det stor sannolikhet att det var just den sajten som inte skyddade din adress som de borde. Sen är frågan vad du kan göra med den informationen...

Behöver du ännu fler adresser?

En annan sak som gmail har stöd för är adresser med "kategorier". Du kan lägga till en kategori i din adress genom att skriva ett plus följt av ett kategorinamn, såhär:
Det här kan dras nytta av på samma sätt som den fria punktplaceringen, men också för att hålla ordning i din inkorg. Du kanske är med i två föreningar och får många mail från dess medlemmar. Då kan du ge dem två olika adresser


och sedan sätta upp sorteringsregler för var de ska läggas i din inkorg.

Plustecknet är fullt tillåtet att använda i e-postadresser, MEN det är inte så vanligt förekommande och därför kan din adress anses ogiltig av vissa sajter och program.

För att kunna skicka från en "plus"-adress så måste den först sättas upp som ett alias.


Det känns som att det finns potential att göra smartare saker med detta än vad jag tagit upp. Kände du till det här och använder det på nåt intressant sätt? Det vore kul att veta, så skriv gärna en kommentar om det!

fredag 14 februari 2020

Känner du till topp fem nyckelelement som särskiljer effektiva team enligt Googles forskning?

Den som söker, finner (ibland nåt annat än den tänkt sig)

Google ägnade två år till att bland annat titta på fler än 250 attribut hos 180 team för att försöka hitta den perfekta mixen av personligheter och färdigheter som leder till ett dream team.

Det visade sig att de letade efter fel saker...
Vem som är med i ett team spelar mindre roll än hur teammedlemmarna interagerar, strukturerar sitt arbete och ser på vad de bidrar med.

De upptäckte fem nyckelelement som särskiljde de framgångsrika teamen från de andra:
  • Dependability
    Can we count on each other to do high quality work on time?
  • Structure & clarity
    Are goals, roles, and execution plans on our team clear?
  • Meaning of work
    Are we working on something that is personally important for each of us?
  • Impact of work
    Do we fundamentally believe that the work we’re doing matters?

Men det mest intressanta är det femte nyckelelementet, som beskrivs som överlägset viktigast samt grundläggande för de övriga fyra, och det var: psykologisk trygghet 
  • Psychological safety 
    Can we take risks on this team without feeling insecure or embarrassed?

Men vad är psykologisk trygghet egentligen?

Jag hittade beskrivning nedan i bloggposten Så blir ni mer agila – börja med psykologisk trygghet, en beskrivning jag tycker stämmer överens med vad Amy C. Edmondson skriver i sin bok
Psykologisk trygghet handlar om känslan av att jag kan vara mig själv, att jag kan uttrycka vad jag upplever, känner och tycker, att jag kan ställa ”dumma” frågor, presentera nya idéer och erkänna misstag utan att riskera att bli bestraffad.

Öka psykologiska tryggheten - värt att prova? Hur?

 Texten nedan beskriver vilka effekter Google upptäckte att en hög psykologisk trygghet har.
Individuals on teams with higher psychological safety are less likely to leave Google, they’re more likely to harness the power of diverse ideas from their teammates, they bring in more revenue, and they’re rated as effective twice as often by executives.
Tidningen Chef beskriver vad Amy Edmondson upptäckte.
Amy Edmondson ingick tidigt i sin karriär i ett forskningsteam som skulle undersöka effekterna av fel och misstag på ett antal sjukhus. Hon fann till sin häpnad att de mest framgångsrika teamen rapporterade flest misstag, fler än de mindre framgångsrika teamen.
Så småningom upptäckte hon dock att de bra teamen hade en större öppenhet vilket gjorde det lättare att erkänna och diskutera misstag. Bra team gör med andra ord inte fler misstag, de bara rapporterar dem oftare – och lär sig av dem.

Så effekterna är bland annat högre trivsel på jobbet och färre gjorda fel, men öppen och förlåtande inställning till dem när de väl råkat göras. De effekterna verkar ju värda att sträva efter, men hur gå tillväga, ja, det är frågan jag själv håller på att gräva i. Det mest gedigna är förmodligen att försöka mäta dagens nivå av psykologisk trygghet i teamet, sen prova på något som ska öka den psykologiska tryggheten och sen mäta igen och se om det haft nån effekt.

Det enda sättet att "mäta" jag hittat hittills är frågorna nedan, vilket känns lite tunt, men jag har heller inte testat dem.
  1. Känner du dig trygg i vår organisation?
  2. Om du gör ett misstag, kan du berätta om det utan att bli bestraffad eller kritiserad?
  3. Upplever du att ledarna i vår organisation erkänner sina misstag?
  4. I din relation med dina kollegor, kan du vara dig själv?
  5. Vad skulle göra att du kände dig (ännu) tryggare i vår organisation?
Och än så länge så är det Orangino Work jag testar och hoppas på att eventuella effekter ska vara kännbara och upplevda snarare än uppmätta, även om det kan vara roligt att ha siffror på saker :)

Min känsla just nu är att en riktigt hög nivå av psykologisk trygghet kan vara den pusselbit jag saknat för att oftare få till de starka synergieffekter inom teamarbete som jag älskar när de uppstår! Så klart värt att prova, eller hur?

Uppdatering 2020-02-15
Frågor för att mäta psykologisk trygghet

Amy Edmondson använde sig av nedanstående påståenden för att mäta nivån av psykologisk trygghet hos ett team. Teammedlemmarna fick svara hur pass mycket de tyckte att varje påstående stämde överens med deras upplevelse av teamet.
  1. If you make a mistake on this team, it is often held against you.
  2. Members of this team are able to bring up problems and tough issues.
  3. People on this team sometimes reject others for being different.
  4. It is safe to take a risk on this team.
  5. It is difficult to ask other members of this team for help.
  6. No one on this team would deliberately act in a way that undermines my efforts.
  7. Working with members of this team, my unique skills and talents are valued and utilized.

torsdag 26 december 2019

Öka psykologiska tryggheten i teamet med Orangino Work

Hur väl känner du ditt team och dina teammedlemmar?

Hur väl känner du ditt team? Vet du vad dina teammedlemmar värdesätter? Har ni några diskussioner om hur ni beter er som team och som individer?

Att ha koll på vad dina kollegor värdesätter och hur de tänker kan leda till att du känner dig tryggare med dem. Och ju tryggare ni känner er med varandra, desto smidigare går förmodligen ert samarbete.

Orangino Work är ett spelifierat kommunikationsverktyg som hjälper er att komma igång med de diskussioner som kan hjälpa er att uppnå en högre psykologisk trygghet.

Jag har nyss gått en kurs för att leda processen. Hittills har jag endast lett en enda workshop inom systemutvecklarteamet jag ingår i, så det är för tidigt för mig att komma med nån riktig utvärdering, men under den timmen vi hade på oss så förde vi diskussioner vi förmodligen aldrig skulle haft annars och lärde känna varandra lite bättre. Det känns lovande!

Hur går det till?

Under kursen gick vi igenom två varianter av vad verktyget kan användas till: teamdialog och parvis feedback. För båda dessa används de två korttyper som man får med sig i en liten "spellåda".

Den ena korttypen är skattningskort med siffrorna ett till fyra, som motsvarar:
  1. Stämmer inte
  2. Stämmer till någon del
  3. Stämmer i huvudsak
  4. Stämmer helt
Varje person behöver två grupper av dessa kort, så korten i lådan räcker till åtta personer.

Den andra korttypen är beteendekort, som har ett ord för ett beteende som åtföljs av en kort definition. Det finns 220 stycken.

Några exempel:

  • Kort 1: Helhetssyn
    Jag har förmåga att fokusera på helheten
  • Kort 10: Dynamisk
    Jag får saker att hända
  • Kort 15: Ifrågasättande
    Jag tar inget för givet utan att vända och vrida på frågan och motivet bakom
  • Kort 17: Ber om hjälp
    Jag vågar be andra om hjälp i mitt arbete när så behövs


Kort beskrivet går en teamdialog till enligt nedan.

Steg 1: skattning
  • Teamet sitter tillsammans. Varje person har dubbla uppsättningar av skattningskort.
    • En uppsättning till vänster som används för att skatta sitt eget beteende
    • En uppsättning till höger som används för att skatta teamets beteende
  • Personen som leder processen väljer ett beteendekort och läser upp kortet för teamet.
  • Varje teammedlem skattar nu med hjälp av skattningskorten, dolt och under tystnad för att inte påverka varandra, hur pass väl överens denne tycker att beteendet stämmer överens med hur teamet agerar.
  • På samma sätt skattar man sedan hur väl man tycker att beteendet stämmer överens med hur man själv agerar.
Steg 2: delning
  • Alla vänder upp den skattning man gjort för teamet.
  • Var och en motiverar varför man har satt den skattning man har gjort
  • När alla motiverat så är det fritt att diskutera tankar som uppstått när man hört vad de andra delat.
  • Alla vänder upp den skattning man gjort för sig själv.
  • Var och en, som vill, kommenterar/motiverar varför man satt den skattning man har gjort. 
Steg 3: reflektion
När skattning och delning gjorts för ett antal kort, förslagsvis tre till sex stycken, så är det dags för reflektion kring de beteenden som behandlats.

Parvis reflekterar man bland annat över:
  • Teamets syn på olika beteenden, samstämmighet eller olika syn?
  • Vilka beteenden är viktigast för ett gott samarbete?
  • Hur samtalen gick:
    • Fick alla lika mycket tid?
    • Kände man sig lyssnad på?
    • Öppenhet?
Det paren kommit fram till delas sedan i gruppen.

Steg 4(?): förbättringsarbete
Något som jag ser i de papper jag fått efter kursen, men som jag inte minns att vi gick igenom under kurstillfället är reflektion med fokus på förbättringsarbete. Förmodligen är det aktiviteter som kan göras när teamet har hunnit gå igenom en lite större mängd kort, kanske efter tio och över.
  • Framsållning av de beteenden som teamet anser viktiga för teamet, som man redan är bra på.
  • Framsållning av de beteenden som teamet anser viktiga för teamet, som man behöver förbättra.
  • Framtagning av förslag på aktiviteter för att förbättra de beteenden man nyss kommit överens om behöver förbättras.

Parvis feedback

Parvis feedback går till på liknande sätt som teamdialog.

  • Två personer väljer var för sig ut ett par beteendekort de vill ha feedback på.
  • De sätter sig tillsammans och väljer ut ett av de nyss utvalda beteendekorten.
  • Båda har dubbla uppsättningar skattningskort och skattar först dolt sin syn på hur beteendet stämmer överens med den andra personen och lägger kortet till höger.
  • Sedan skattar man sig själv och lägger kortet till vänster.
  • Båda personerna vänder upp den skattning de gjort för sig själva.
  • Båda motiverar sin skattning.
  • Båda personerna vänder upp den skattning de gjort för den andra personen.
  • Båda ger den andre feedback.


På hemsidan för Orangino Work står det att nedanstående forskning påverkat utformningen av verktyget.
Verktyget har även varit med i forskning utförd av Lunds universitet.

Finns det en koppling mellan sällskapsspelet Orangino och Orangino Work?

Det finns ett sällskapsspel som heter Orangino som är mycket likt Orangino Work i uppbyggnad. Jag hörde talas om sällskapsspelet före kursen, dels från teamet och dels var det med i tv-serien Sjölyckan. 

I Sjölyckan slutade en spelomgång med att spelarna blev rejält osams, det hade kanske inte så mycket med spelet som de spelande personerna och deras relationer att göra. Men något verkar det ligga i det, eftersom jag vet en person som blivit avrådd av en expedit att köpa spelet med orden "Tänkte du spela det där med släkten i jul? Gör inte det, ni blir bara osams!"

I alla fall, enligt kursledaren är upphovsmakaren bakom båda produkterna densamma, Ulla Osterman. Om jag förstod rätt så hade Ulla en sömndröm om att familjen satt och spelade ett lär-känna-varann-bättre-spel och gjorde sedan verklighet av det och resultatet blev sällskapsspelet Orangino. När hon sedan fick höra att det var vanligt att spelet togs med till jobbet och spelades där så kände hon typ att "Nä, det var inte så det var tänkt och det passar inte så bra på det sättet, en sån produkt kan göras bättre!" och utvecklade då det arbetslivsanpassade Orangino Work för den målgruppen.

Hur jag ramlade över Orangino Work

Som det står i min profilbeskrivning här på bloggen så gillar jag verkligen när det uppstår synergieffekter vid teamwork. Därför är jag nyfiken på hur man får till och ökar de synergieffekterna. 

En bästsäljare inom ämnet är Patrick Lencionis The five dysfunctions of a team: A leadership fable, där denna pyramid presenteras och gås igenom:

Den boken presenterar mest problemen och ger få svar, så frågestormen från läsarna till Lencioni ledde till uppföljaren: OVERCOMING the Five Dysfunctions of a Team.

Jag uppfattade det som att uppföljarboken, gällande psykologisk trygghet, lade en stor tyngdpunkt på ett personlighetstest av typen Myers-Briggs, som författaren anser är det mest vetenskapliga. Han skriver att ämnet "tillit" är ett av de viktigaste, men verkar tycka att nedanstående övningar räcker för att uppnå en bra nivå av tillit/psykologisk trygghet: 
  • gör personlighetstestet
  • dela och diskutera resultatet med varandra
  • berätta några saker om dig själv
    • var jag växt upp
    • hur många syskon jag har och i vilken ordning jag själv kom
    • min svåraste eller viktigaste utmaning som barn
Det kändes inte så uttömmande och i kombination med blogginlägget om off-sites av Michael Lopp, där han beskriver personlighetstest som fusk enligt nedan, så kändes det som att det fattades nåt viktigt.
Personality tests. If you’re working the team bonding off-site, personality tests are going to be tempting. The idea of starting the off-site with perspective-altering personality tests feels… right. I want them to better understand each other, so have them answer a bunch of questions and we’ll explain ourselves to each other and — WHAM — understanding. Personality tests in their endless variety do exactly that. They tell you which well-defined bucket you comfortably belong in and explain to others your bucket’s intricacies. These buckets become social tent poles of the off-site and suddenly everyone erroneously believes they’ve figured each other out. And while, yes, they now have convenient labels for each other, they haven’t really figured each other out: they’ve cheated. You’ve bypassed the process of learning via a set of clever labels.If you want to understand someone, my advice is to sit next to them and solve a very hard problem together. You will learn who they are by watching how they think.
Jobbar och löser svåra problem tillsammans gör vi i stort sett dagligen och visst lär man sig saker om varandra då, men kanske inte på den nivå som behövs, så Michaels tips kommer man inte långt med heller. Så jag började googla efter andra sätt att jobba med tillit och psykologisk trygghet och hamnade rätt snart på Orangino Work, trots att det är så pass nytt och ännu rätt begränsat i spridning. Det verkar ha hittat sin nisch, ett enkelt verktyg för att få igång de diskussioner som behövs för att lära känna varandra och jobba bättre ihop.

Nu ska det bli intressant att se hur det utvecklas, både verktygets fortsättning hos teamet jag ingår i samt vilken effekt det har hos andra team i världen. Väntar på att få läsa om hur det funkar i verkligheten hos nån annan!

torsdag 19 september 2019

Kan du sätta ord på dina känslor?

Jag har lett några förbättringsmöten (retrospectives) på sistone och inlett dem med aktiviteten One Word check-in med frågan: "Hur skulle du beskriva senaste sprinten med en känsla?"

Det verkar inte vara helt lätt att hitta orden för att beskriva sina känslor. Så här nedan kommer en lista med känslor. De kommer från en kortlek jag har haft sen jag lärde mig om nonviolent communication (nvc) eller giraffspråket. Eftersom nvc fokuserar mycket på både känslor och behov och båda fanns med i kortleken så fick det här inlägget därför en lista med behov som bonus!

En senare version av kortleken finns att beställa här.

På nätet hittade jag en sida som listar känslor man kan ha när ens behov är tillgodosedda och en sida för känslor när det är tvärtom.

Lista med känslor

Korten i kortleken var färgkodade som en slags gruppering. Ingen gruppering var dock namngiven, men det kanske är hyfsat tydligt ändå. Orden inom parentes antar jag är synonymer eller i alla fall ligger nära det första ordet.
  • Entusiastisk
  • Full av energi (energisk, livfull)
  • Glad (nöjd)
  • Lugn (avspänd, centrerad)
  • Lycklig (lekfull)
  • Lättad
  • Redo (startklar, i form)
  • Stolt (nöjd)
  • Säker
  • Tillfreds (fridfull)
  • Vaken (alert)

  • Berörd (lättad)
  • Förvånad (nyfiken)

  • Deprimerad
  • Förbannad (arg)
  • Hat (hämndlysten)
  • Naken (blottad)
  • Skuld
  • Sur (bitter)
  • Svartsjuk (avundsjuk)

  • Arg (irriterad)
  • Bekymrad (olycklig)
  • Besviken
  • Blyg (generad)
  • Ensam (liten)
  • Förakt (avsky)
  • Förtvivlad
  • Förvirrad (perplex)
  • Hungrig (sugen)
  • Illamående (äckel, avsmak)
  • Irriterad (frustrerad)
  • Ledsen (sorgsen)
  • Likgiltig (uttråkad)
  • Låg (energilös)
  • Maktlös (låg)
  • Nervös (spänd, orolig)
  • Otrygg (orolig)
  • Otålig (rastlös)
  • Panikslagen
  • Paralyserad
  • På dåligt humör (låg, nere)
  • Rasande
  • Rädd (ångestfylld)
  • Skamsen (ångerfull, skam)
  • Smärta
  • Sorgsen (deppad, nere)
  • Splittrad (disträ, kluven)
  • Sömnig (trött)
  • Trött (slutkörd)
  • Tveksam (splittrad, osäker)
  • Törstig
  • Utmattad (slut)

Lista med behov

  • Acceptans (betydelsefullhet)
  • Att bli förstådd (att bli sedd, empati)
  • Att bli lyssnad på (empati)
  • Att bli sedd (bekräftelse, erkännande)
  • Att följa sin drömmar
  • Att förstå (information)
  • Att ge till andra (att bidra)
  • Att hålla löften (integritet)
  • Att lära sig nåt nytt (utveckling, växande)
  • Att må bra (hälsa, hygien)
  • Att påverka (att göra skillnad, mening)
  • Att sörja (utrymme att sörja)
  • Äventyr (variation)
  • Avslappning (bus, avspänning)
  • Balans (jämvikt, ömsesidighet)
  • Bus (att ha kul, att fira)
  • Fred (harmoni, frid)
  • Frihet (frihet att välja - autonomi)
  • Gemenskap (samhörighet)
  • Hjälp (stöd)
  • Inspiration (kreativitet, att skapa)
  • Intimitet (sexuellt uttryck, sex)
  • Kärlek (värme, närhet)
  • Kommunikation (kontakt)
  • Lugn (ro)
  • Mat och dryck (näring)
  • Omtanke (ömhet, omsorg)
  • Omväxling (stimulans)
  • Ordning (reda, struktur)
  • Respekt (integritet)
  • Respekt (värdighet, självvärde)
  • Rörelse (motion)
  • Säkerhet (trygghet, förutsägbarhet)
  • Samarbete (delaktighet)
  • Sammanhang (mening)
  • Skönhet
  • Tillit (tilltro, förtroende)
  • Trygghet (skydd)
  • Värme (trygghet)
  • Vila (sömn)

lördag 31 augusti 2019

Practice outside-the-box thinking with "Baba Is You"

This is Baba


I'm not sure if Baba is a rabbit or a dog or anything we know of at all.

But in the game "Baba Is You", on most levels Baba is YOU!


Which means that you can control Baba with your keyboard or game controller.

Make the rules

Baba Is You is a game with lots of levels. On a level, there can be different things, but Baba, a flag, walls and rocks are common. There also are texts. Texts can be pushed. When texts are combined into a meaning, that meaning, if valid, become a rule.

Like when the texts "ROCK",  "IS" and  "PUSH" is formed into the meaning ROCK IS PUSH.
Which means that Baba, or whatever you control for the moment, can push all rocks on the level.

Which means that you cannot move past a wall or push anything on it.

FLAG IS WIN means that when you reach a flag, then you've finished the level.

How to play

Here's the first level, it's simple as can be.

The more levels you pass, the more different things and texts you will see. Quite often I've had to think really hard before solving a level (and since I didn't want to spend too much time in the game I've often peeked at parts of solutions on youtube).

You play the game by pushing things around and pushing texts around to alter the rules of the level, until you can reach something that IS WIN.

I think you should try this game of you like logic and bending rules to your favor. There's no stress and a bit similar to coding. And I can promise you that some levels require skills in outside-the-box thinking!