Tuesday, December 6, 2011

Clarifying purpose

I find talking about creating software difficult. Unlike other fields of creation, depicting the experience of a software product without a demonstration of working software is near impossible. Without actually using software, any discussions about functionality or experience are subject to misinterpretation of language, misunderstanding of the needs of the user and attachment to ideas or specifics.

While we lack the ability to have fruitful discussions with stakeholders or potential users, we have something that is very valuable, the ability to change. It is this ability to change that gives us the ability to fail and recovery again and again. 

And the more we've invested in creating something, the more attached we become to the ideas. Our attachment leads to the resistance of admitting failure. In time, we close our eyes to the truth and it alienates our users. 

In reality it alienates ourselves because our hearts know the truth even if our brains resist. When we ignore our hearts because of attachment, we are unhappy, stressed and in a state of dis-ease.

The same is true if our stakeholders become attached to ideas or functions that do not serve the user or create unnecessary risk.

When we lose site of the original intentions because of attachment it leads to distress and struggle.

So, how can we change our mindsets so that attachment is easily spot and acknowledged?

I'd say we could all work on becoming enlightened so we are free of attachments, but we're on a deadline :)

Instead, we put value on something else. We spend our time and effort realizing the mission, vision and values of the project. We ensure we understand the big picture. 

In reality, we are creating a different attachment. One that is bigger, visible, purposeful and open. 

How can we do this? By understanding and buying into what we are creating and how we see it experienced. We can create a mission, vision and values to clarify and create distinction.

The mission statement is all about purpose. Its about the problem you are trying to solve, the information you are trying to share and/or the service you are trying to provide. Its about the long term goals.

On the other side, the vision statement is an abstraction of the experience. It can include words like fun, simple, quality, quickly, stable, reliable, responsive, etc. It does not include ideas like color schemes, mechanics, technology specifics or other implementation details.

Time can also be spent on value statements (users own their information, we strive to directly connect with and respond to user feedback, all user feedback is valid, etc)

Continue drilling down into these ideas until everyone knows what they are doing, are excited to work towards the goals and know in their hearts they are working on an effort they accept fully.

For new teams, taking time to manifest an understanding of team dynamics, quality and creativity with as much openness and honesty as possible can help ensure the best "good-enough" software gets created in a way that is enjoyable, sustainable and collaborative.

Finally, read these statements every morning. When discussions become long, unclear or hostile, refer back to them. Use them as a method to stay detached to what is no longer serving and focused on the underlying issues.