Category: Leadership and Management
Beginning Process Improvement – What to do first
“Existing processes must be described before they can be well understood, managed, and improved. An organization must then define what these processes should be before attempting to support them with software engineering tools and methods; in fact, the definition forms the requirements for tool and method support. A variety of process description and definition technologies is available.” [*]
Ask a gardener how you can improve your software development practices and not only will you get a strange answer, you will also get a very confused look; unless of course the gardener use to be a software developer and knows your product (and current process) in an out. In other words… if one does not understand the inner working of things, such as the current chaos (or processes) or what goes on behind the scenes and how things work, then that person cannot provide you with useful information on how things can be improved.
A defined process is a prerequisite to process improvement; you cannot (well you could, but it would take quite a while) improve process without understanding what it is you are improving and how the change’s that are suggested and implemented will affect other processes.
As obvious as may sound; to begin improving process, you need to first draw it all out and identify all the bottle necks/issues one by one and strategize when and how to improve what. Many have wasted their time trying to implement something that may have worked elsewhere, or something that’s out of a book that’s there for the sake of “having a process” with no real benefit to the users.
When it comes to process – One size does not fit all.
[*] – Technical Report “Software Engineering Process Group Guide”. Flower, P & Rifkin, S, September 1990. CMU/SEI-90-TR-024, ESD-90-TR-255
Leadership: Mini-Motivators of Motivation
In my journey through leadership , I learn a lot through experiences and observations… here is one observation:
We all work for different things and we are all entitled to our personal (or not) reasons for what motivates us. Motivation is probably the single most powerful thing that keeps an employee (willingly) at a company.
Motivation comprises of many things; I will not pretend to be the expert on motivation (or leadership) but for me and maybe for you (and possibly the general public), I think it breaks down into three mini-motivators.
- Market: Product/Space you work on/in, the day-to-day things you do
- Money: How much you get paid to do what you do
- Manager/Management: Your belief, trust and/or respect for the person or people who is/are your leader(s).
To ensure that people are motivated, all leaders should focus and be challenged to ensure that all three mini-motivators are attended to as in an ideal job, one would have a good mix of all three.
So the question is: What happens when you start taking things away? or what if you had to focus on just one to grow your team? In my opinion (and many others as well), “Manager/Management” is the silver bullet.
People work for great managers/management teams and will continue to work for them even if the pay is low or the job is boring; however, if you take away the great manager/management team and give the person a great market opportunity and/or over compensate, eventually, the individual(s) will leave for other opportunities where they feel they will also get the “manager/management” balance.
There have been quite a few times when I have heard the phrase “People don’t leave companies, they leave managers” and slowly, it has started to make sense.
Leaders must focus on motivation and be managers that are looked up to; if you have leaders who are not respected and looked up to, or “followed“; you have a motivation problem and (good) people will leave.
Horizontal Management – Maintaining momentum: Keep progress moving
While machines might give the same level of output everyday, the same doesn’t apply to people.
In a real environment, each member’s momentum and motivations will change without notice. This requires management to step in and make sure they are constantly evolving the processes so that members will remain motivated. Leadership is important to motivate key players, channel information to keep everyone engaged and make working horizontally routine. To accomplish this, management might bring in an outside champion, who will help wring in new ideas and “fresh” stream of motivation. Instead of looking at a project as a whole, it should be broken down into smaller goals that are realistic and achievable. Management should encourage and build on small success, to demonstrate that it was an important milestone and motivate members. Progress and results should be demonstrated so that members can all acknowledge the ongoing progress and success. Management can keep the members interests by ensuring that they are always focused on achieving the goals that were set, and if deviation is detected, corrective action is taken to bring things back on track.
A horizontal team is dynamic as it is always changing, management needs to account for its dynamic nature and make necessary adjustments to accommodate/adapt to the change. Money is probably the best motivator, but too much money too early in the process can hinder individual initiative and prevent people from innovating. Since horizontal structures focus on team collaboration, a downfall is that meetings can go on forever and schedules can be missed; this can unmotivated some members who feel that decisions are not being made in a timely manner, which is why management can implement deadlines which will help practitioners develop a common schedule and manage workloads effectively so that the projects momentum is kept at a steady pace.
[Source: Moving from the Heroic to the everyday: Hopkins, Couture, Moore]
Horizontal Management – Building support structures: To keep Horizontal team in check with Vertical roles
Even though a “horizontal structure” is flat in nature, it does still need a (vertical) support structure.
The main purpose of a support structure is to help managers build lasting relationships and achievements with teams. There are two basic type of support structures that managers can mix and match when building or working with teams, depending on the requirements as each has its own attributes.
- Informal structures don’t define rigid roles and responsibilities, they are open to interpretation and people can define their own roles and swap roles as needed, hence they are less resource intensive, more flexible and less binding on members; Informal structures help promote open discussion and communication among its team members; and
- Formal structures are more rigid and roles/titles might be defined where members have specific responsibilities; this makes them more resource intensive but less ambiguous; they require some logistical skill and expertise to implement. These structures are great when consistency and quality are important factors.
It’s important for management to recognize what type of structure needs to be in place and when its put in place; as “when” a structure is erected, it can play an important role in the success of the teamwork initiative. If too much formality is introduced early, people might feel there is no difference in the “horizontal structure” and the “vertical structure” where vertical structures are rigid, formal and bureaucratic and would be less motivated to work with the initiative. In contrast, waiting too long to build a support structure or the lack of a support structure can hinder the ability of the team to successfully work together as a team, especially when they need to be able to adapt when in tight spots.
Since the resources and effort required are greater when setting up formal structures, informal structures are great for short projects, however when the projects will go on for a long period of time or are of large scale, formal structures would be more suited as they are less ambiguous and will stay well formed longer (as they are more solid than informal structures).
Authority and roles in informal structures are more ambiguous and can be swapped around; In formal structures, the roles and responsibilities are more definitive, hence less ambiguous and in that regard, formal structures would work best in situations where important decisions need to be made.
[Source: Moving from the Heroic to the everyday: Hopkins, Couture, Moore]
Horizontal Management – Developing shared framework: Working for the same goals
When we work as a team, we usually work for the same goal(s). There will be times when we might stray away from the goals that were originally specified and we will not realize it. By developing a shared framework we can help ensure that we are all (still) working towards the same goals.
With open discussions, patience and a shared fact base (mental model and vocabulary) we can deal with conflicts internally (within the team) and develop a shared understanding of the key issues.
One major issue of working with a team is accountability, as many forget their individual accountability and it becomes unclear where the accountability lies (does it lie with the individual, or a team as a whole?). This is probably because the lines of individual accountability and the shared sense of purpose become unclear because of the focus and emphasis on the “shared” attitude towards everything and it is important to acknowledge the difference and maintain the separation. Clarifying roles, responsibility, shared goals and results upfront with open discussions and debate will help resolve accountability issues in advance. We might need to revisit and re clarify these elements as they might evolve over time due to changing circumstances and new opportunities. Having a shared and clear understanding of planning and reporting can help accomplish all these tasks (involved with developing a shared framework).
[Source: Moving from the Heroic to the everyday: Hopkins, Couture, Moore]
Horizontal Management – Mobilizing team and networks: Ready for action
A team that does not work well not only is not a team; but is a blocker towards any success. It is a team (not) that does no work. – yes the not is from Borat.
We must be able to organize teams and networks to be ready for action as this helps the team get off the ground and moving. In order to help get things going as smooth as possible we can focus on a few key elements that can build teamwork and networks, these are leadership, teamwork attitude, common understanding and trust.
Leadership: In my experience, I have always enjoyed working on projects when I was able to be the leader, I think this is inherent to our nature that most of us want to be leaders instead of followers as it makes us feel important and think that we have make a significant contribution to the project. When working as a team, one of the great benefits (that most do not realize) is that the leadership can be shared equally among the team members, it can and should shift from person to person depending on what is required and the person’s strengths, this gives everyone a feeling of accomplishment and an equal and important say in the processes (even if it may not be). When working horizontally team members should be allowed to have debates, open discussions as they are key methods of identify opportunities and resolve conflicts that may arise….. so long as you can focus and move forward.
Teamwork: Rewarding team members to play nicely as a team always gets peoples motivations up. Teamwork makes a horizontal partnership cohesive so management should encourage early team building activities and open engagement that help develop a sense of collective ownership. This can be encouraged by giving incentives to work successfully as a team, such as recognizing members for their team efforts by giving awards and rewards.
Common Language: Recently I worked on a project where I was using the phrase “data entry” to describe an action where “any user enters data using a graphical user interface”. One of the team members was having a very hard time following the discussion because to him “data entry” was specific to “data entry personnel” (people hired to do data entry), who used a specific data entry user interface that was different than the user interfaces used by others, this was because they didn’t need the pretty features as all they did was repetitive data entry. This is why it becomes very important that the team members have a common mental model and have developed a vocabulary that is understood by all as this helps develop a working culture where misunderstandings or unclear terms will be kept to a minimum.
Trust: Trust is very important in maintaining relationships, it is the glue that holds a team together, if someone does not trust other members in a team, or does not fully place their trust in the team they will not be completely open and might not want to take part in discussions or coordinated efforts. The need for trust makes it important to invest in relationships and build credibility, this can be done by undertaking small tasks, being open and honest with others and delivering what was promised. When team members trust each other they will be willing to risk more together.
[Source: Moving from the Heroic to the everyday: Hopkins, Couture, Moore]
Working Horizontally (agile) & understanding Horizontal Management (work/team structures) and its issues
In line with the content on SDLC and ALM, along with today’s needs and desires for teams to be more flat.. or vertically structured: My next few posts are going to be about working horizontally, or horizontal management (work/teams/structures), or. let me throw in a buzz word .. “working in a more agile manner” 🙂
Horizontal management is: about working collaboratively across organization boundaries. There are no hard and fast rules to horizontal management it is an art more than a science. This type of management is pervasive, occurring at entry level in an organization. It involves bringing people from diverse organizational and occupational backgrounds together into teams and networks with a common purpose and shared culture. Group thinking is encouraged, but this can be seen as a risk because it cuts lines of accountability and authority and pursuing consensus at the expense of serving the public interest. [*]
In a nutshell, working as a team/group is working horizontally. One might think that working as a team is an easy task as we all have done so at some point in time, but this is not the case when teamwork is the bases that can make or break the success of an initiative, especially when used in complex processes like software engineering and process improvement and we are in a teamwork state for long periods of time. There are various dynamics that come into play when working as a team, for example some might not get along or trust other members, some might not be motivated or good team players and others might forget their individual responsibilities. Working as a team requires that everyone get an equal part so that everyone has an equal interest in working together, towards a common goal, build long term relationships and be equally motivated for the long run. An interesting relationship between horizontal structures and software development is that working in a horizontal structure is viewed as an art, which is the same way that software development was viewed as before it was realized that it needs to be a manageable process, our focus will also be to help make horizontal management a manageable process.
Some of the issues that horizontal structures bring with them that need to be addressed are:
- Working with others as a team slows down fast paced, ready for action members
- Members are sometimes not motivated enough to work as a team, which damages team effort and progress
- Members usually trust their own judgment and find it hard to put that trust in the hands of others
- Each member may have their own vision and own motive, maybe a goal they want to accomplish as part of their job function and have their own priorities.
- With everyone on the same level, who provides direction and leadership? Who is held responsible?
- People need to be assured that their time and effort is resulting in progress.
Key Dimensions of horizontal management
Working as a team rather than working as an individual does bring with it a few issues that need to be addressed:
- When we work alone it is easier for us to switch gears and start making progress because we don’t have to wait for others to be ready, progress begins when oneself is ready, in a team progress begins when “everyone is ready”.
- When we work alone we know what our goal/vision is, we know what we want and know how we are going to get there if we start straying away its really easy to pull ourselves back; When we work as a team, its possible that not everyone knows that the common goal is, they might have their own goals or own ideas of how things need to be and what takes priority over the other, when working as a team its important to make progress by combining all efforts towards a “shared goal/vision”.
- Working alone means that you are responsible and accountable, you need to get the work done and you need to manage your own time, when working as a team, who does what gets blurred this is why a “support structure” must be in place (depending on the requirements) so that vertical roles and responsibilities are not forgotten.
- When you work alone, since you are in control (and responsible) of the progress, it is easier to maintain your momentum, you know how much progress you have made, you know how successful you have been and if needed can make changes to help maintain momentum; Teamwork introduces attributes that may effect momentum such as meetings that go on forever, goals that seem unrealistic or far fetched, not knowing if all the effort in working as a team is paying off or not and so on. When working as a team, we must be able to “maintain momentum” on a daily bases.
Hence there are four key dimensions for horizontal management that revolve around horizontal structures and keep the horizontal structure/movement intact: [*]
- Mobilizing team and networks: Ready for action
- Developing shared framework: Working for the same goals
- Building support structures: To keep Horizontal team in check with Vertical roles
- Maintaining momentum: Keep progress moving
Each section would detail a significant amount of content so I will break it up into 4 posts to cover this topic….. eventually.
[*] = Hopkins, M. Coture, C. Moore, E. Canadian Centre for Management Development, 2001. Lessons learnt from Leading Horizontal Projects
Knowledge & Wisdom
All that I do today,
I already knew,
I have yet to learn,
something new!
–
If everything I do
I already knew
do I really have to
learn something new?
Thought it was obvious, Tech Support is not Customer Support
To me, I am stating the obvious when I say “Tech Support is not Customer Service”; but it seems that not everyone is on the same page.
Recently, I ended up having to contact “Customer Support” over at discountasp.net; basically I wanted to re-purpose my account and host a different domain since I was not using the other one. They stated they would be glad to do it, for $15; I felt, being a customer with them for 7 years, I should not have to pay $15; also, the account yearly renewal was in 10 days.
After doing the math; If i cancelled the domain and simply created a new hosting account, they had a 6 months free offer. I would end up saving $75. Not very smart are they? I stated my intention, and the response I got back was “well, you can do that, but you wont get any partial refund since you been a customer since 2005″….
Great… so because I have been a loyal customer for 7 years, you want to punish me?
So I cancelled my account, and in the cancellation form where you get to send feedback, I wrote in “Customer Service is an important investment”; esp since it had my very recent communication history.
I did get a response 🙂
So, a few things.
1. They messed up my last name (It was right there in the same email in the submitted form)
2. They believe customer service is an important investment. so they hired certified “Technical” resources?…..
Wow…isn’t that an Oxymoron…. I laughed at their response… my first instinct was to shoot back a quick snappy response to it… but then i realized… They so do not know what customer support is that they REALLY don’t know what they don’t know.
Being an x-programmer, and knowing my kind. TECHNICAL resources SUCK at CUSTOMER support. You NEED to sheild your customers from us technical people, because we cannot communicate. If its not 1’s and 0’s (for you non tech people, that equates to, a yes or no answer), we don’t know how to relay it to you.
Its that simple. Which brings me to my point, discountasp is not at fault for being stupid at customer support, that would just not be fair…. they just don’t know.
So I did not write all this, to bash discoutnasp… the purpose of this post is to share and focus the last 2 seconds of the thoughts that went through my mind as I read, understood and mentally reacted to an email… the focus is on that tinny 3-6% thought process that almost got away… the thoughts that made me go “aha” and choose to respond and react differently.
Some would state “it was just an email, why is this post going on about an email”; its not about the email, its about “How something so small, can make you understand”. It is about “reacting appropriately” and to bring it all home, its about “being savvy”.
I have been reading and listening to this over the past few weeks and while this is geared towards office politics; the knowledge is applicable to many generic everyday events in your life. It helps you realize, that not everyone is as knowledge, as smart, or as “savvy” as you. Just because you know something, doesn’t mean the other person does.
So before, you quickly respond to an email, a statement, or something with a witty and emotional response; take a break, think about it, do you know something that they don’t, or do they know something that you don’t?
Your “smart” response could turn against you….
Leadership and Followship – your twitter followers don’t count.
In my opinion, Followship is the single measure that can tell you how great of a leader you are.
A leader has the ability to motivate, collaborate with, and influence others to commit to and do what is on his/her agenda. For this to happen, you need people who will commit to following this leader.
A leader would have followers who are not just his/her direct reports; followers would be from other teams who will do whatever they can to assist this leader be successful.
How do you measure followship? Is someone doing something for you because they fear they must? Or because they want to?
True followers will be engaging and will continue to challenge the leader by providing constructive feedback. Followers who follow because they have to will not be engaging and will simply do what you ask them unwillingly with negative comments and attitude.
A leader must have followers; without followers you have no one to lead.





