Emergent Design: The Evolutionary Nature of Professional Software Development

Jag har precis läst klart boken Emergent Design: The Evolutionary Nature of Professional Software Development av Scott L. Bain.

EmergentDesign

Detta är nog en av de bättre böckerna jag har läst på länge som handlar om mjukvaruutveckling. Scott har fått mig att se på Design Patterns på ett helt nytt sätt och mjukvaruutveckling i sin helhet.

Boken handlar mycket om hur vi skall få mjukvaruutveckling att bli en profession i nivå med andra professioner som t.ex. läkare, advokater m.m. För att man skall komma dit så menar han att man måste ta fram ett antal praxis och principer för hur man tar fram mjukvara. Några av dessa enligt Scott är:

  • Emergent design – är processen att vidareutveckla system vid förändrade krav, bättre förståelse av problemområdet, nya affärsmöjligheter, ny teknik m.m. baserat på discipliner som TDD och patterns baserad utveckling.
  • Test-driven utveckling (TDD)
  • Patterns baserad utveckling – vi använder oss av design patterns som en källa för visdom och ”best practices” samt som ett gemensamt språk.
  • Utvecklartester (Unit testing) – alla utvecklare skall kunna skriva tester och att man skriver kod så att den blir testbar.
  • Refactoring – evolution kräver förändringar och refactoring är ett verktyg för att hantera förändring utan att addera onödiga risker.
  • Kunna patterns – känner man till design patterns så ökar en förståelse för god objekt orienterad design och man kan luta sig mot beprövade metoder och principer.
  • Visdom – luta dig mot visdom från sådana som Gang of Four, Martin Fowler, Bob Martin, Ivar Jacobsen m.fl. för troligen har dom löst liknade problem förr.
  • Principer – om man destilerar visdom från experter kan man få fram principer och guider som kan vägleda oss i det vi gör.
  • Praxis – varje yrkesgrupp har sin praxis. Vi måste hitta och formulera dessa för mjukvaruutveckling.
  • Patologi – upptäck tidigt när man är på fel väg. Detta är lika viktigt som att veta när man är på rätt väg.
  • Kvalitet – den kod vi producerar skall hålla kvalitet.

Jag håller verkligen med Scott om dessa grundpelare och hoppas på att kunna leva efter dessa i mitt fortsatta yrkesliv inom mjukvaruutveckling.

Jag kan verkligen rekommendera denna bok för alla som är intresserade att förbättra sig inom mjukvaruutveckling samt inom OO och design patterns. Om för inget annat så tycker jag bokens appendix om ett antal grundläggande design patterns är en guldgruva då dessa är beskriva på ett lite annorlunda sätt än i många andra patterns böcker jag har läst.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s