Bank 2.0

by John Turner

Posted on November 11, 2010


We are all aware of the devastation that has occurred over the past few years in the banking sector. This has had a profound effect on the banking industry as well as on the people who have trusted this industry to safeguard their hard earned cash and retirement plans. People are more skeptical of the banking industry and are becoming more demanding of the services it provides.

Of course, this skepticism is not all down to the banking crisis but can also be attributed to the way people’s behaviours have changed over the last decade or so. These changes are primarily attributable to the internet and/or the demands modern living places on people’s schedules.

Read More

Patterns of Agile Practice Adoption

by John Turner

Posted on July 13, 2010


Patterns of Agile Practice Adoption is another book from InfoQ that describes potential ways in which Agile practices could be adopted individually and as clusters of practices that complement one another. As with Domain Driven Development Quickly, this book can be freely downloaded (registration required).

Part 1 - Business Value, Smells, and an adoption Strategy

This part of the book focuses on the reasons why one might consider adopting agile practices. It starts by looking at the value that agile practices can bring to the business, follows on by suggesting problems that agile practices could address and finishes by describing how to adopt agile practices.

Business Value

Agile practices have the potential to deliver value to the business in a number of areas and your business might be more sensitive in one or more of these areas. The areas discussed include:

  • Reduce time to market
  • Increase value to market
  • Increase quality to market
  • Increase flexibility
  • Increase visibility
  • Reduce cost
  • Increase product lifetime

A useful exercise is presented at the end of this section to help one determine which areas are more important to your business.

Smells

We, as developers, are used to discussing code smells but probably less used to discussing smells in our development methodology or practices. This section discusses ‘Business smells’ and ‘Process smells’. Business smells are smells that affect the business and are visible to customers while process smells are only visible to the development team. I’ve listed the smells discussed below:

Business Smells

  • Delivering new features to the customer takes too long.
  • Features are not used by the customer.
  • Software is not useful to the customer.
  • Software is too expensive to build.

Process Smells

  • Us vs Them.
  • Customer asks for everything including the kitchen sink.
  • Direct and regular customer input is unrealistic.
  • Lack of visibility.
  • Bottlenecked resources.
  • Churning projects.
  • Hundreds of bugs in bug-tracker.
  • Hardening phase needed at end of release cycle.
  • Integration is infrequent.

Again, a useful exercise is presented at the end of the section that asks one to discover, investigate and rank smells within the organisation.

Adopting Agile Practices

An awareness of agile practices is assumed as business values are related to corresponding agile practices that could potentially enhance the ability to deliver these values. Similarly, smells are related to corresponding agile practices that could potentially address the smell.

Advice is then delivered on how to use the information presented to develop a tailored agile adoption strategy. This advice can be summarised as follows:

  • Be business-value focused.
  • Be goal oriented.
  • Adopt iteratively.
  • Be agile about your adoption.
  • Use a test-driven adoption strategy. (i.e. validate your results)
Read More

Domain Driven Development Quickly

by John Turner

Posted on July 05, 2010


With the advent and popularity of the EJB specification, developers spent more and more time focusing on learning and adhering to specifications and less time focusing on good design principles and OO development techniques. Domain Driven Design by Eric Evans attempted to reverse this trend by refocusing on the most important aspect of software design, i.e. representing the business domain within the software.

Domain Driven Development Quickly is a book from InfoQ that summarises the material presented in Eric Evans’ Domain-Driven Design book. It can be downloaded freely in PDF format (requires registration).

Chapter Summary

What is Domain Driven Development

An introduction to domain driven development is presented by first discussing the general nature of software development. An example and discussion of the solution domain follows.

The value of reflecting the (abstract) business domain in code is discussed. An overview is provided of how the model is developed from initial discussions with domain knowledge experts. A high level explanation of how the domain model evolves and is used to convey knowledge among interested parties is then given.

The Waterfall Model receives some criticism because of the absence of a feedback loop from business expert to analyst to developer. Agile methodologies on the other hand receive praise for their iterative nature.

Finally, a worked example of building a domain model for a flight control system is presented. The role of the software modeller and knowledge expert is described as is their interaction during the development of the domain model.

Read More

The Pragmatic Programmer

by John Turner

Posted on June 29, 2010


If you are a software developer, The Pragmatic Programmer is not just a book but an arm around your shoulder, the mentor that you never had. It has rightly earned its place on the bookshelf of every self respecting software developer in the land. First published in 1999, it is as relevant today as ever.

Ron Jefferies said about this book ‘As with any such book, much of the advice is something you already know. Much of it is also something you have forgotten to focus on lately.’. You may or may not learn anything new, but this book will remind you what is important.

Read More

Pragmatic Thinking & Learning

by John Turner

Posted on June 10, 2010


Recently, I have taken to reading books concerned more with process of software development than the nuts and bolts of working with one language/framework/methodology or another. The Pragmatic Programmer is one such popular book that inspired a whole range of such books under The Pragmatic Bookshelf label. Another book under this label is “Pragmatic Thinking & Learning” by Andy Hunt.

Chapter Summary

Chapter 1 - Introduction

The context for the book is set and importantly, Andy highlights that while this book discusses the material and techniques with a focus on programming, it is not specific to programming. Indeed, I purchased the book hoping to improve the effectiveness of my studying techniques generally and the techniques covered have wide applicability. Andy also summarises the material and how it will be presented.

Chapter 2 - Journey from Novice to Expert

The five stages of the Dreyfus model of Skill Acquisition are explored. Examples of how the Dreyfus model can be used (and abused) are presented in the section ‘Herding Racehorses and Racing Sheep’. It’s a very useful title in that it invokes a strong image of poor utilisation of specialised resources.

Read More
About - MonkeyLittle

Thoughts on Software Engineering, Infrastructure and everything in between.

Twitter Feed