New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.

Posted by Rowan McCann on Jan 05, 2010
Back in the 90’s self-managed teams were all the rage but they had a high rate of failure mainly because team members lacked people skills. These ideas of self-managed teams were borrowed by the Agile movement when in 2001 they formulated a ‘new’ way of working, based on Agile principles. However, self-managed teams are inherently unstable and are only successful when the ‘Leadership – Self-Management’ dilemma is understood and dealt with. Too much central control destroys agility, inhibits creativity and resists change. Too much self-management leads to chaos and anarchy and destroys a team. A successful Agile Team needs to operate as far along the continuum towards self-management as it can, without tipping over into chaos. You can’t just say to a software development team, “OK, you’re now an Agile Team – you need to self-organize”. This is a recipe for failure, and one of the reasons why many organizations resist the Agile approach.
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
What is required from the very first meeting of a new Agile team is to understand the basics of team dynamics. Everyone must learn as much as they can about human behavior and why people do the things they do! My own IT degree course hardly spent any time on people skills and nothing on the even more difficult concept of what people need to do to ‘self-organize’ into a high-performing team. I’ve had to learn this in the world of experience. I wonder how many readers find themselves in a similar position?
I’ve successfully applied the Team Management Systems concepts to many Agile teams that I’ve been a part of. A good starting point is for everyone to learn about the nature of teamwork and the preferences people have to engage with some tasks and not others.
If you want to evaluate your own Agile Team we’ve put up a free Agile Team Performance Questionnaire on our website to help you to measure your team’s strengths and weaknesses as far as teamwork is concerned. You’ll get a free 8-page assessment of what you think about your team’s performance, based on the Types of Work Wheel.
The Types of Work Wheel identifies eight distinct ‘Types of Work’ that need to be undertaken by all teams, regardless of their industry. These eight work functions are listed below, with permission from the Team Management Systems organization.

The Advising function is associated with the gathering of information from all stakeholders and responding quickly to changing requirements. It involves keeping up-to-date with developments inside and outside the organization and passing advice on to others to help them in their work. It requires a transparent flow of knowledge of 'what' is going on and 'where', and a focus on 'consulting skills' so that information can be gathered quickly, accurately and effectively.
The Innovating function involves generating new ideas and new ways of doing things. This requires the development of creative problem-solving skills so that the team remains one step ahead of its competitors. To do this well requires original thought, imagination and innovative thinking.
The Promoting function is concerned with the identification of opportunities and the 'selling' of these opportunities to others, both inside and outside the organization. It often involves the application of influencing skills and the making of presentations to others. It can also involve communicating the team or organizational 'vision'. High visibility throughout the organization may also be required.
The Developing function is associated with the turning of concepts into 'reality'. Ideas are worked on to produce practical products and services. In many cases it may also involve developing workable and practical solutions when problems arise. Agile teams need good analytical skills so that requirements can be quickly prioritized, enabling accurate estimates of iterations and burn down charts.
The Organizing function involves organizing people and resources efficiently by setting clear goals and objectives and making team members accountable for their actions. It is also associated with the implementation of quick effective action when problems occur, so that the planned outputs are always capable of being achieved. In summary it is the function that ensures that the work of the team is structured and focused towards common objectives.
The Producing function focuses on outputs, ensuring that iterations are completed to high standards of effectiveness and efficiency. It is the function associated with the regular delivery of releases and other services. It requires a systematic approach to work and an emphasis on the delivery of products on time.
The Inspecting function requires an attention to detail and an emphasis on the monitoring of systems, contracts and outputs. It is also associated with a focus on accuracy, ensuring that work outputs are always delivered to the right quality. This function is the classic control function where procedures are regularly monitored for their efficiency. It’s often a core feature of the sprint review process.
The Maintaining function is a support function which ensures that proper standards of conduct and ethics are upheld and that quality is maintained. It is also associated with supporting others in the team so that the team processes follow agreed ground rules. Personal conviction and loyalty are often important to this function as is an interest in helping others.
Nobody enjoys all the tasks that have to be done in an Agile team. Some tasks we like – others we hate. This is the idea of Work Preferences - just another name for what we like doing at work. Work Preferences are dimensions of individual differences in tendencies to show consistent patterns of relationships, thoughts, feelings and actions in the work environment. Preferences are usually transparent and are often the first thing we notice in others – ‘He’s rather quiet, isn’t he?’ or ‘She never stops talking.’ Some people prefer to think things through on their own whereas others need to talk out loud to clarify their ideas. Preferences are readily visible to others and are usually the basis of first impressions.
When we are working to our preferences we set up conditions where our psychic energy can flow freely. If we are more extroverted we like work where there are lots of interactions with others, both inside and outside the organization. If we are more introverted, then we like conditions where we can work on our own with few interruptions and a minimal requirement for meetings. Under these conditions our energy can flow freely with minimal resistance. Just as electrical energy generates heat when it meets resistance so our psychic energy generates tension and stress when it has to flow through areas that aren’t our preference.
I have a preference to work in the Advising and Innovating areas on the Types of Work Wheel and I don’t really enjoy Promoting or Organizing activities, so wherever possible I’ll spend time thinking about new ideas or finding out as much as I can about the project.
What happens in an Agile team is that there’s likely to be an imbalance when you look at the work preferences of all the team members. If everyone is like me then there’ll be a tendency to give priority to making changes and incorporating the latest ideas. Teams like this may have the weakness of never tracking their burn-down charts!
Other weaknesses occur if everyone enjoys just Organizing and Producing. Your team may be well organized and on-target but is it really delivering what the stakeholders want or indeed need?
So, if your Agile Team is to be truly effective you must understand the work preferences of all team members and look at the preferences balance. It will give you an immediate picture of strengths and weaknesses, as far as teamwork is concerned. Information like this helps ensure that everyone’s work preferences are matched to the critical demand of the job they have to do. Where the match is high, our energy flows freely, we are more likely to enjoy our job, stress is lower and we feel happier at work. But all eight work functions must receive the priority they need and never be relegated to lower importance.
Team Management Systems developed the Team Management Wheel to combine the idea of preferences with the critical work functions that all teams need to do well. This describes the characteristics of people who enjoy undertaking the various Types of Work.

When team members complete a 60-item questionnaire, they receive a Team Management Profile which discusses their work preferences in detail. The report identifies a major role (e.g. Thruster-Organizer) and two related roles which usually account for the majority of the respondent’s work preferences. Usually you will enjoy a job where two-thirds of your critical tasks align with your work preferences. When this occurs you will have a high level of engagement with your preferences – and that means greater commitment to the team. It’s also associated with increased happiness at work.
Here are some general characteristics of each sector:
|
Reporter-Adviser: |
Prefers gathering information and likes to fully understand situations before acting |
|
Creator-Innovator: |
Enjoys thinking up new ideas and new ways of doing things rather than focusing on delivering outputs on a regular basis. |
|
Explorer-Promoter: |
Like to take ideas and promote them to others, not worrying too much about any details involved. |
|
Assessor-Developer: |
Enjoy analyzing and developing different possibilities before decisions are made |
|
Thruster-Organizer: |
Like to make things happen and get results rather than ‘waste’ too much time debating issues |
|
Concluder-Producer: |
Practical people who like to carry through things to the end by working to a plan |
|
Controller-Inspector: |
Quieter, reflective people who enjoy the detailed side of work and like dealing with facts and figures. |
|
Upholder-Maintainer: |
Enjoy working in support of others ensuring that tasks are delivered to high standards |
One of the main applications of the Team Management Wheel is for teams to map everyone’s role preferences onto the Wheel and then use the distribution to assign tasks and responsibilities, as well as adding to the team ground rules key actions that will ensure that those parts of the Wheel having a lower preferences are not ignored.
Different roles on the Team Management Wheel see the world in different ways and this is excellent for problem-solving and decision making. A balanced team on the Team Management Wheel will ensure multiple descriptions of the same event occur and from this diversity more options can be considered. If everybody maps into the same part of the Wheel then single descriptions arise and there is a tendency for a much narrower range of options to be considered, and this invariably leads to ‘group think’ .
However opposites on the Team Management Wheel are prone to making negative attributions about each other. Explorer-Promoters, for example, may see Controller-Inspectors as dull, boring, pedantic and detail- oriented. Controller-Inspectors in return may see Explorer-Promoters as loud-mouthed, waffling and with little substance. It’s a natural human tendency to look negatively at those who are ‘different’. However all roles are necessary to get the best from a team because it is out of diversity that the best solutions often arise.
This is where teams have difficulty in self-organizing – because conflict is always incipient and can break out at a moment’s notice, leading to chaos and failure. The traditional way to prevent this has been strong leadership control, but this goes against the values of Independence and Empowerment which are usually the hallmark of the Agile knowledge worker (BA’s, Developers, Testers, PM etc). Team members react against the organizational constraints and don’t feel they have ownership of the team’s outputs. This results in low levels of motivation and commitment, which leads to apathy and low performance.
However once team members learn to understand and value ‘difference’, the leadership control function can be substantially relaxed and self-organization can take place. This requires a substantial training and development input from day one. High-performing Agile Teams don’t create themselves – they need help!
So what are some of the important Linking Skills? They aren’t preferences but a set of skills that applies individually to team members and collectively to the whole team. To sustain a low level of leadership control and a high level of autonomy, Agile Teams need to focus on the central part of the Team Management Wheel – Linking. In all there are six people skills, five task skills and two transformational skills – but the most important ones to get right are the six people linking skills. These enable the team to operate at the self-organizing end of the Leadership-Self-management continuum. The People Linking Skills are: Active Listening, Communication, Team Relationships, Problem-solving & Counseling, Participative Management and Interface Management.
Agile team members need to:
Active Listening
Communication
Team Relationships
Problem-Solving and Counseling
Participative Decision Making
Interface Management
It takes time to develop all these skills but a start is made at the first meeting of the Agile Team. Team members received a personal Team Management Profile report which gives them positive feedback about the way they prefer to work. The Pacing section of the report highlights how each person likes others to communicate with them. This opens up discussion around the People Linking Skill of Communication. Everyone learns that Communication is dynamic – you have to constantly change the way you communicate depending on who is on the other side of the loop. A Thruster-Organizer interacting with a Reporter-Adviser needs to use a totally different approach than when interacting with another Thruster-Organizer.
Using their Profile report as a basis, team members are encouraged to draw up list of answers to two questions:
This information is then shared.
The Leadership – Self-management Dilemma has intrigued behavioral researchers for years. For Agile Teams the challenge is to strike a balance between the structure required to achieve high performance and the leadership control to effect it. Teams can only operate at the self-management end of the dilemma if they understand a lot about people and why they behave the way they do.
High-performing Agile Teams have learned to:
Is your team coping with working in an Agile way? Take the free Agile Team Performance Quiz now and rate your current or future Agile project. You’ll get a free 8-page assessment of what you think about your team’s performance.
Rowan McCann has 10 years experience implementing IT applications, with a Management Consulting background. He has worked on some of the largest global ERP and CRM implementations in the capacity of Developer, Business Analyst and Architect. He has recently partnered with international teamwork specialists Team Management Systems, to conduct research into improving the performance of IT teams.
I love this saying and do believe a team can be perfect. I found a great article talking about how important is to know your role in a team: blog.cyclope-series.com/2009/11/improve-team-pe... .
PS: I am just going to make the Agile Team Performance Quiz becasue I'm very curious about the result.
Where can I find the 60-item questionnaire for the Team Management Profile?
Hi Christian,
Email me at rmccann@brightgreenprojects.com and I will give you more information on how to access the Team Management Profile.
Cheers,
Rowan.
Hey Rowan,
Liked the article. Quick question about the Team Management Profile survey. Who should take the survey? Everyone in the team? or the Team Lead? or someone else?
Nimat
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
4 comments
Watch Thread Reply