Tuesday, June 24, 2008

Two Worlds


Mandorla is the name of this symbol of the two intersecting circles. The word Mandorla means "almond" the shape in the middle, which I have colored green. It is the intersection of two worlds:
  • material and spiritual
  • time and timeless
  • conscious and unconscious
  • divine and human
  • it holds the tension of opposites.
The symbol has its roots in medieval Christianity, the Christian fish incorporates it.  
I love the simplicity of the symbol, I've added the colors and will be using these in some other models as I strive to increase awareness of who I am. I first came across this symbol in Robert Johnson's Owning your Own Shadow, who convinced me that this is a powerful symbol for our torn world.
I get meaning of this symbol in my head, can witness in others and to be honest not sure what it actually means in my own life and may be that is okay if symbols are beyond our understanding.  I do know I am struggling to be successful in the material world and also struggling to maintain a connection with my spiritual energy even though I feel it in moments of awareness.  I'll let you know if it helps and wanted to share it with you.
Here it is on the Chalice well in Glastonbury in England.  

Thursday, June 19, 2008

What is Agile?

"What is Agile?", Katie one of our product managers at Cars.com asked me on Tuesday. Here is my answer.
It is better way of building software. It delivers features faster, in weeks not months. It enables you (the product owner) to adapt to changing business needs and tell us what you want every few weeks. It enables us (the IT team) to be more efficient at doing what we love to do - write code, design user interfaces and deliver great software.
See the picture above? Good, the boxes on the left (Product Backlog) are the things you want us to build.
You tell us what you want, no detailed requirements just express them in terms of the value they will deliver to your users and customers. We will tell you our estimate of how much effort each piece will take and how much effort we can expend in a fixed amount time (let's say 2 weeks).
You choose which of the pieces are the most important to you and we can get started. Hang around to answer any detailed questions we may have as we break these into development tasks (Sprint Backlog).
We will deliver something in 2 weeks - guaranteed – hopefully all your features, we may even be ready to publish it to the site, at the very least you will have a working prototype to play with.
I know it is different to our current way of defining everything the product team wants in detailed requirements documents. Our existing way is called a waterfall approach, an agile approach is different.
Agile approaches prefers that you and I and our teams collaborate and communicate more instead of relying on approval processes and large documents, it is also less concerned about creating an detailed plan valuing more the ability to respond to change. These principles behind agile methods were first written down over seven years ago in the Agile Manifesto.

The image is from a great presentation where you can learn more about agile: Getting Agile with Scrum. I saw Mike Cohn from Mountain Goat Software present this last week at Better Software 2008.

Tuesday, June 17, 2008

Paul's Hedgehog

I first came across the hedgehog concept reading Jim Collins' Good To Great.  The passion and skills are internal - yours or your organizations. The needs are external, your organizations, the market, your community, the world - it is about adding value.

I have since seen it applied to help both businesses and individuals explore their own personal mission and vision.  Most recently, last week, in a course on leading change through collaboration given by Pollyanna Pixton.

I was inspired to explore again my three circles and decided to publish my personal mission and vision statement.

My vision statement is what I would like the world to look like, I am not thinking small here:

Humans are creating a new earth, where all people can choose to live in abundance, create sustainable wealth, connect with each other, connect with nature and align with Being.
People are organizing to deliver value by being their authentic selves.  Individuals are living with passion, leveraging their talents, supporting each other and working together towards shared goals.
A creative class is emerging, sharing everything they have learnt with the all who are interested.  Their organizations are economically successful in the global market, supporting growing local communities and unleashing the potential of individuals. 

My mission statement is about the role I intend to play in realizing the vision:

My mission is grow organizations creating wealth for employees, investors and partners by delivering valuable software services.
I lead teams that foster individual innovation, collaborative creation and value continuous learning.  I align technologies, tools, processes and skills to deliver valuable software.  I bring experience of current technologies, awareness of people's capabilities and ability to focus on the needs of the market. 

Sunday, June 15, 2008

Better Software 2008

I just returned from four days in Vegas at Better Software Conference 2008.

There were about 700 attendees and over 50 speakers. Many speakers have published books and the quality of the presentations was consistently high, a lot of knowledge presented in a mostly academic style combined with actual stories of real-word experience. Most of the presenters were consultants, very few business leaders, entrepreneurs or corporate executives. The presentations I went to were well structured to encourage learning with various interactive exercises.

The attendees were a great mix of developers, business analysts, project managers, quality assurance, nice to see the whole lifecycle represented. I ran into several other architects although the architect role is not well represented in the agile community (I think we have a bad reputation around command and control style of architectures, which is a pity because we can play great scrum masters across projects, we can facilitate and collaborate) I was surprised that so many of the teams have adopted agile and there were manyscrum masters, although I met no product owners.

Only complaint was no structured social events so if you going to attend bring some colleagues! Some networking time, but for a largely introverted crowd I think some structure could have helped with greater connections in the evenings.

My biggest takeaway is Agile is now mainstream. Even thought there is another conference by the same organization specifically dedicated to Agile Practices – 90% of the presentations at this conference were around agile based techniques and there was a lot of comparisons with the old way of building software using waterfall processes (I saw a lot people wearing t-shirts from one of the vendors saying, “I’ve waterfallen and can’t get up”). There were a significant few of us (guessing less than 25%) who came from organizations using water fall processes, there was not of lot of the content that would help up within this process but a wealth of information about agile techniques and the reasons to go agile.

There are many metrics now available to demonstrate the value of agile methodologies, the following numbers were presented in a keynote by Jean Tabaka attacking waste in software development:

Poor resource efficiency - Typical process value stream analysis of the waterfall software development process shows 6% of our work tasks are value-added.[1]
Non-efficient feature flow – only 20% of Software features are often or always used and 64% are rarely or never used[2]
∙ Software as Product - On Premise software solutions are up to 90% more expensive to implement, customize, install, host, support and train than On Demand[3] .

[1] Lean Software Development: From Concept to Cash. Poppendieck, Mary and Tom. Addison-Wesley, 2006.
[2] Standish Group Study Reported at XP2002 by Jim Johnson, Chairman ()
[3] Understanding the Total Cost of Ownership of a Hosted vs. a Premise-Based CRM Solution, Yankee Group -
http://www.salesforce.com/form/pdf/yankee_tco_whitepaper.jsp

Powerful tools now exist to support the use of agile methodolies which can scale to enterprise size teams. These offer impressive tracking metrics and effiecient ways of communicating requirements and priotites to development teams. The main two vendors at the conference were: Rally Software and Version One

Monday, June 2, 2008

System Architecture Archetypes


Here are some archetypes that I use for various system architectures.
Using archetypes and colors help viewers of multiple models relate concepts across systems and also levels of abstraction.

Sunday, June 1, 2008

Encapsulation and Abstraction








en·cap·su·late
Pronunciation: in-'kap-s&-"lAtFunction: verbDate: 1876

  1. to enclose in or as if in a capsule
  2. epitomize, summarize

- encapsulation /-"kap-s&-'lA-sh&n/ noun


Separation of the 'What' and the 'How'

This is what I think about most often when using encapsulation to manage complexity. I consider what services are required before exploring the details of how those services are to be implemented. There are many other definitions of what encapsulation means in our industry, two of my favorites are:

  • Encapsulation allows suppliers to present clearly specified interfaces around the services they provide. A consumer has full visibility to the procedures offered by an object and no visibility to its data.
  • Encapsulation is a way of packaging information in such a way as to hide what should be hidden and make visible what is intended to be made visible