Friday 25 April 2008

Software is a Place

As part of the typical morning banter and during the brainless cereal munching ritual, my teenage daughter mocked her younger sister’s (10 years old) use of the word “software”. She challenged her, in a mischievously: “what do you know about software? My young daughter’s answer bowled me over.

Software is a place”, she answered confidently, elaborating “It is where you go to get something done.”

Software is a place. Yes, this is the most accurate definition I came across for the state-of-the-art software technologies yet. It sums up the conglomeration of all new concepts, from SOA, Software as service, S+S to all the Web 2.0 hype. I think it is its ubiquity that made me wonder what future software products should be like in order to meet the expectations of this new generation. I could not help but drawing parallels with urban design and planning theories, e.g. Kevin Lynch’s, of what makes a place a good place?

A place, (a location in space), where people visit to meet, socialise, entertain, work, study, play, etc. A place need to have an address, access routes, boundaries, landmarks and furniture. Fundamentally, it has sense of place that makes an environment psychologically comfortable, in terms of legibility, cognition of the visual environment and compatibility with human purpose.

Over history, places changed shape, design and function, mainly for 2 reasons: change of political system and evolving technologies. Concepts like Form follows function emerged. Designing new “places”, however, runs the risk of conflicting with human values. Examples are: loss of place and humiliation resulting from loosing one’s past, present and future sense of place and rootlessness and alienation due to continuity and change in the sense of place.

Read more bout sense of place in article by Yan Xu

So the questions are:

How far can we take this analogy when designing new software products?

Does that mean Second life type virtual worlds would actually work after all (you can sense my scepticism here)?

And finally, if we accept the idea of software is a place, then shouldn’t we seriously consider tools to build maps where by we can locate such places and navigate too? Something that actually work?

Monday 21 April 2008

Seeking differentiated leadership qualities in new software development managers

The fast moving nature of the software industry has caused development teams to work in a constant state of crisis management. In this post, I argue that differentiated leadership strategies should derive the job specification of today’s software development managers.

In 1990s, a major emphasis was on increased usability of software products by non-programmers. This continued to emerge, together with rapid application development, as the dominant trend in the 2000s with the advances of web based systems, e.g. Google and eBay. The latest software development methodologies, e.g. Agile methods, have followed suit. They concentrated their approaches on individuals and interaction and customer collaboration (Boehm). This has resulted in increasing pressure on the software development teams and managers to meet this fast changing industry and the increasing influence and wider interests of stakeholders, hence creating a constant sense of crisis mode.
Differentiated leadership qualities are most important during times of high pressure. Leaders adopt differentiated leader strategies in order to handle adverse situations, including: conviction, perspective, relationships and self-understanding.

Conviction

Sense of purpose: managers need to be able to think of crisis situations in the context of larger personal mission and purpose. By focusing on “what is it that they want”, they can turn these problematic situations into a step to achieving their personal goals, hence ability to follow their intuition and direct software solutions

Perception of control: Because software development problems, or disasters, can originate from a wide variety of sources, all from a flowed business models to stakeholders ambiguity of requirements, solutions can also vary. Based on McKenna and Yost (2004) differentiated managers need to focus on solutions that involve things they can control or influence, e.g. clarify software requirements or develop a more generic solution that can accommodate other business models.

Perspective

See the big picture: In most problematic situations, there are always “quick win” solutions that fix the immediate problems, or bugs in software terms. However, differentiated leaders recognise that they are dealing with inter-dependant systems, relating their own decisions and actions to the larger systems of people and processes. An example would be attempting to generate a software solution that would undermine, or require changes in, existing production processes or gaining ownership of other software team responsibilities. By seeing the big picture, managers will be able to move their agenda forward.

Focus on potential: Software development managers spend most of their time involved in problem solving activities. In order to generate effective alternatives, they need to constantly focus on strengths and possibilities in the system and people rather than problems that would lead to deficit thinking and blaming. Due to the intimidating nature of the software development cycle, with stakeholders constantly criticising developing systems, focusing on potential is a key factor to accomplishing successful software products.

Relationships

Take other people’s perspectives: In a fast moving industry and short deadlines, managers are tempted to follow their own agenda. Although generated solutions might be the best alternatives possible at these situations, it runs the risk of diminishing team cohesion and performance. On the other hand, by aggressively listening to others, managers will be able to gather wider range of opinions, enhance their communication and avoid emotional triggers, leading to further support of the team.

Empathy: Empathy allows differentiated leaders to understand the implications of their decisions by identifying with people who have been, or will be, negatively affected by such decisions. Empathy can be seen as a tool to help managers seeing the big picture.

It isn’t personal: This factor is crucial to software development managers. Critique of proposed system solutions are mostly delivered in textual medium, e.g. review forms and emails, which filters out all non-verbal, and most effective, aspect of communication. This often causes ambiguity and defensiveness. By not reacting to the hostility of others, differentiated leaders are able to move forward and accomplish successful solutions.

Self-Understanding

Self-Awareness: In software crisis situations, managers are tempted to focus on the problem at hand and try to find quick solutions. In doing so, they tend to suggest solutions that draw on their own knowledge and background. Whilst these solutions will eventually work, they might not be the best alternative available. Differentiated leaders are able to acknowledge their own strength, weaknesses and tendencies.

Self-Regulation: This is the second step from self-awareness. Differentiated managers are able to regulate their own behaviour according to their knowledge. For example, they would consciously engage other people in the thinking processes and try to create a joint solution with their team that they commit to.

Recognise one’s contribution: Instead of reacting to criticism and negative feedback, differentiated leaders are able to depersonalise the situation and assess and present their contribution to these negative outcomes. This characteristic enables it holder to look deep into the problem and identify fundamental solutions.