Artiklar | Artiklar om framgångsrik mjukvaruutveckling från Citerus AB

Software craftsmanship, and a bread machine

So, I bought myself a bread machine. Eager to try it out as I came home, I immediately decided to program it to produce a french bread for breakfast the next day. Adding all the ingredients was simple enough, and then it's just the simple matter of selecting the bread type, size, crust, and finally my breakfast time... And this is where things went wrong. Instead of just entering the time as "9:00", I was presented with "3:50" in the display. Checking the manual revealed that this was the total baking time for this type of bread. "Oh, jolly. It takes you 3 hours 50 to bake a french bread. Good for you. Now, where do I enter my breakfast time?" Except I couldn't. According to the manual, I have to take the number of hours left to breakfast, subtract the total baking time, and give that number to the machine. Hold on, it gets worse.  Läs artikeln →

The top six technical practices every Product Owner must know about

So, you have made it. You are the Product Owner of the company's flagship product. Now you will spend your days thinking about business value and customer satisfaction, and leave all that technical stuff to the development team - you never understood it anyway.  Unfortunately, you're not off the hook so easily. In order to correctly prioritize the product backlog, you need to be aware of some of the technical items that will need to be included there. You need to understand the value of these items and recognize the terms the development team throws at you.  Or worse, if the developers do not throw these terms at you, you will need to demand of the team they start using the technical practices you deem most valuable to your product.    Läs artikeln →

Långa krav och korta sprintar

I morse satt jag och filosoferade över en kopp kaffe med Björn, som är utvecklingschef. Specifikt kom vi att diskutera något som är lite av ett återkommande tema; hur hanterar man krav som kräver så mycket analys att man inte hinner göra klar funktionalitet under sprinten?   Verksamheten i stort kan vara överens om en viss sprintlängd. Men ibland kan den tyckas för kort för vissa utvecklingsinsatser som kräver en större del förundersökning och analys. Det kan få effekten att man ägnar sprintplaneringen åt större analysarbete, vilket i sin tur gör att den kan bli väldigt lång, och sprinten känns som ett litet vattenfall.   "Kan man leverera och demonstrera delresultat vid slutet av en sprint? Ska vi inte alltid visa upp affärsnytta?"  Läs artikeln →

From Java to Clojure, followup followup

Martin Lübcke came up with this solution to the frequency sorting problem presented in the PNEHM article From Java to Clojure: (defn order-by-freq [coll] (keys (sort-by #(vector (- (frest %)) (first %)) (frequencies coll)))) Replace frest with fnext for Clojure 1.0. When it comes to performance, this version is about as fast as the original version in the article, but it sure is compact, and surprisingly readable. Many thanks to Martin!   Läs artikeln →

Med domänen i centrum

DDD handlar i grund och botten om att gå tillbaka och fråga sig varför man över huvud taget bygger mjukvara. Vad ska den användas till, vilken process ska den underlätta? Vi tar vår utgångspunkt i domänen, verksamhetsområdet, och låter den genomsyra arbetet och produkten. Jag såg ett inslag om överdosering av läkemedel på Astrid Lindgrens Barnsjukhus på Aktuellt härom dagen där en barnläkare berättade om ett datorprogram som användes på sjukhuset: - Väldigt ofta som doktor tänker jag hur många milligram som patienten ska ha. Men i journalsystemet måste jag ordinera i volym eller antal tabletter. Så jag måste först tänka vad patienten i slutändan ska ha, och sedan gå tillbaka och tänka ut hur patienten ska få det. En önskan hade varit att direkt kunna ange milligram per kilo, och att patientens vikt skulle finnas med i systemet. Vid något tillfälle hade man tagt fel på milligram och milliliter när man doserat smärtstillande, vilket ledde till en tio gånger för hög dos. Det här kunde fått oerhört allvarliga konsekvenser.    Läs artikeln →

Geeky fact of the day, proven

A few weeks back, my colleague Patrik Fredriksson turned my attention to a "Geeky fact of the day" tweet by Josh Bloch by verifying Josh's claim for a small number of integers using Clojure. Having recently picked up a discrete mathematics book in an attempt to refresh my academic skills, I found an exercise that wanted you to prove exactly that, so I gave it a shot. Clojure is great, no doubt about that, but mathematics also has its strong points: it's very stable, tool support is great and it scales tremendously well :-) So, we want to prove that the sum of the n first cubes is equal to the sum of the first n positive integers squared.  Läs artikeln →

From Java to Clojure Followup

Interest in the From Java to Clojure article has been pretty big, rarely before have we seen a PNEHM!-article getting so much attention! I have also gotten some great feedback, in particular Stuart Halloway suggests that we use Clojure-contrib's seq-utils/frequencies to improve the code. Since we use Apache Commons Collections in the Java version of the code, its only fair for us to dive into the goodness of Clojure-contrib to see what can be of use there.  Läs artikeln →

Integral calculation (with Simpson'™s method) in Clojure

Inspired by the latest renaissance of functional programming, I decided to take on some real-world examples of calculations using Clojure. This is an exercise from the book Structure and Interpretation of Computer Programs. There is a method for numeric integration called Simpson’s rule which can be used to approximate the integral of a given function in some interval . I decided to try some Clojure on this.  Läs artikeln →

Fixed-point calculations (and square roots) in Clojure

I’m currently reading “The interpretation and structure of computer programs”, (which by the way is a really joyful read) and I felt an urge to try the examples in a more “modern” language than Lisp. Clojure seemed like a nice fit since it is a Lisp and also runs on the JVM which makes the learning curve slightly less steep (for me atleast).  Läs artikeln →

Clojure Crash Course For Java Developers

Looking at Clojure code coming from a Java background may be quite a daunting experience at first. So I have put together a short introduction that I hope can facilitate going from Java to Clojure. Clojure is a functional programming language. As such we use functions to manipulate data, we avoid mutable state and side-effects. In a way it can be viewed as programming Java with only static methods and immutable objects.  Läs artikeln →

Ulrika Malmgren

Bli en av oss

Vi söker fler som ser på systemutveckling som ett hantverk.

Kontakta oss så berättar vi mer

 

Kommande öppna kurser

(RSS)
Se alla och boka
 

Vässa din utvecklingsavdelning

Ni vill bli bättre på att utveckla mjukvara. Vi skräddarsyr företagsinterna utbildningar om systemutveckling och agil utveckling. Bland kunderna finns Connecta, Skandikon och GE Healthcare.

Inspiration via e-post

Har du också ett engagemang för utvecklingen i branschen? Anmäl dig då till vårt nyhetsbrev, där vi delar med oss av artiklar, inspiration och möjligheter.

Du kan enkelt säga upp din prenumeration om du ändrar dig. Vi lämnar aldrig ut e-postadresser till tredje part.
Läs mer om hur vi hanterar personuppgifter.

 

Om Citerus

Citerus hjälper företag att lyckas med sin mjukvaruutveckling. Vi erbjuder metodinförande, kurser och träning samt systemutveckling och kan dessutom avlasta våra kunder genom ta oss an både delprojekt och hela projektåtaganden. Allt för att de ska kunna hålla en hög innovationstakt och skapa smarta lösningar som ökar deras konkurrenskraft. Citerus kunder har den gemensamma nämnaren att de ser mjukvaruutveckling som affärskritiskt. Läs mer →

weekly
1.0