Search This Blog

Wednesday, December 31, 2014

Acceptance Testing: Demystified from a business perspective

Recently in building a RACI diagram, I found questions bubbling up on why acceptance testing must be done and why that’s testing group’s responsibility. I find it interesting to see how the responsibilities have morphed over the period on the roles and responsibilities associated with testing that I felt compelled to write this blog article with the illustration below.


When developers write the code, the code should be error free complying with the low level design. Since most of the code today is conceived and written in a modular fashion, thanks to object oriented analysis and design thinking, the unit testing done at this level is focused on individual modular units. Examples would be to check for memory leak, the use of uninitialized variables, etc. As several modules are consolidated within the package, the need to ensure the modules integrate at a higher design level comes calling for integration testing. Examples would be the passing of data between modules in a meaningful way, the use of calling external databases or webservices to ensure that there is adequate time given for timeout and exceptions so that the integrated code gracefully handles the situations. These types of testing are integral to the white box testing still at the engineering or development side focusing on the internal structure and design of the program rather than the functionality of the program.

Subsequently, the build (note that I am not using the word code) is transferred to the testers who check the workings of the program to the specifications. These testers still have some intimate technical knowledge, understanding of the database to write SQL queries or check webservices methods, write test scripts, etc. For custom projects, this group ensures conformance to requirements. This type of testing is part of the grey-box testing because the testers test for specifications but have additional access to tools for technical validation. They assure that the quality of the software agrees with the requirements agreed upon in the user stories or in the business requirements documents (BRDs). Here is where the gap begins within the management community.

Those that are familiar with Juran’s definition (the seminal though leader that laid foundation of software quality) also will relate to the need for “fitness for use” as another ingredient of quality assurance. Nobody other than the customer can actually evaluate this fitness test which is where the user acceptance testing (UAT) evolved. But, think about how the transfer of ownership is executed in an organization. There is inexorably communication from project or account managers in custom software development or product owners in the product development to customers that the software is ready for their UAT. This is where these business owners should be held responsible to execute black-box testing evaluating at a higher level and satisfying themselves that the software is working to the customer’s requirements. This is the last window of opportunity to identify any escaped defects before the actual customer gets involved in interfacing with the software. Then, any escaped defects the customers and end users find or new feature enhancements identified are gathered in product backlog grooming, risk adjusted for priority, and accommodated in the subsequent iterations.


This level of acceptance testing is slowly and steadily disappearing from project, program, account, and product owners leaving the image of the performing organization at risk in front of the customer leading to trust erosion. Every car goes through a lot of quality checks but still when we buy a car, we take it for a test drive. Why shouldn’t we test drive the software ourselves before we give it to our customers? 

Sunday, November 30, 2014

Cost of Quality: The increasing value of acceptance testing besides automated testing

There are two prevalent themes in software development in the corporate world: “Zero Quality Errors” and “Doing more with less”. The dominance of both these concepts has critical importance in their implementation.

  1. Eliminating the number of testers increases the level of effort on the remaining testers to check every test case as thoroughly as possible introducing errors. The testers that have the accountability to ensure that they don’t release features without signing off are under pressure compromising the quality.
  2. Keeping more testing resources also does n0t guarantee zero quality always when the testers don’t keep up with the current trends. The number of communication lines increase with the QA manager, test lead, offshore test coordinators, and testers. This functional hierarchy removes the testers from the developers defeating the self-organized team requirements. Consequently, the requirements dilute and morph leading to management problems as the customer complaints increase, time to market slips, and product reviews decline.


The logical solution is “Automated testing” making the system do testing detecting more defects at earlier points in the development life cycle as well as continuously testing deployed code for production bugs. The solution is definitely logical and practical as it accomplishes doing more work with fewer resources consistently, continuously, and almost effortlessly compared to the needs to have a human present to manually test. 

Does that mean automated testing is a perfect solution where we can enable computer assisted software tools (CAST) to as many testers as possible? The agile engineering practices recommend automated testing but also emphasize acceptance testing where the business owners also are involved in testing. But, how far our people in client-facing roles like product managers, project managers, program managers, and account managers increasing their knowledge of the business domain and related technical tools to test the releases?  How much is the management attuned to this fact?

  1. The client facing roles mentioned earlier may actually question why they should do this testing that the testing department is accountable for? It is a valid question but when buying a car why do you want a test run? Why do we do our own walk-through inspection of the home instead of leaving the work completely to the home inspector? We do these because we are equally responsible for the outcome. As these roles face the client who can claim escaped defects or the features for enhancement, how could these responsibilities downplayed?
  2. Let us face another argument of being busy to do this acceptance testing! When automation is introduced, the developers and testers have to write additional lines of code and test scripts to ensure that the automation works according to the 3A principle (Arrange what needs to be tested, Act by developing code to test, and Assert by evaluating the outcome against the expected).  This needs more time commitment and learning additional tools where the developers and testers need to immerse themselves to evolve to the expectations of today’s workforce. So, if one group that is busy can increase their competencies, why should not these client facing roles elevate their skill-competency gap instead of claiming the busy life?
  3. Another important angle to consider is new functional non-customer value add requirement but a business value add requirement, such as the heartbeat monitors, exception log checks, and time taken to test checks as part of the automation efforts. None of these requirements are part of the actual product feature a customer sees but are additional scope of work that the business mandates on the execution wings to design, develop, and test. When these are baked into the level of effort or timeline and when customer asks to reduce the time to market, the client facing roles cripple the quality by not standing up for best practices.

If quality were a coin, automation testing and acceptance testing are its two sides. Efforts spent only one side won’t make the completely desired economic impact.  Automation is a shift in the way the code is developed, tested, deployed, and monitored requiring refined skills. It is an important element of reducing the cost of quality but so is the acceptance testing that requires additional skills. If we fail to recognize and implement both these effectively, then, the efforts spent in automation may be offset by escaped defects due to lack of acceptance testing.  A new breed of client facing roles is therefore on the raise and the management needs to focus on both the automation testing along with acceptance testing. 

Friday, October 31, 2014

Adapting Scrumban to Personal Productivity

Agile approaches to product development and project management are growing exponentially. I have been a proponent of the lean approaches even at my house chores and recently found that such approaches were discussing even in the Agile 2014 conferences. Unlike Scrum’s requirements to have self organized teams with timeboxed iterations within which changes are generally frozen and disallowed, the project management approaches do not rejoice the dedicated team. Often, the members may be spread across multiple projects similar to project managers having multiple projects. So, how do we manage time effectively in multi-project and program initiatives?

An approach that I have found useful is adopting Scrumban to proactively manage myself and build on the team’s innate strengths to empower themselves to do better. Sounds great, but how? Let me explain.

Scrum
Kanban
1.       Scrum focuses on timeboxed iterations with self-organized cross-functional teams.
2.       Team decides on what can be accomplished in a 2-week sprint and emphasizes continuous improvement by retrospectives
3.       Customer representative is expected to be sometimes on-site and be multi-functional with skills in product, project, account, technical, business analysis, etc.
4.       Measure of progress is working software delivery

1.       Team visualizes the workflow in queue
2.       Anyone can pull (i.e., take) any task that is in the queue
3.       Tasks are generally not dependent
4.       Balances work in progress
5.       Reduces waste between tasks

In traditional project management where resources are not procured for the duration of the project or in balanced matrix organizations where projects inherently face wait times, such as in regulated and construction industries, the project team may not be multi-functional. Therefore, it is not possible for any member of the project team to take on any project or tasks within the project. For instance, can a tester write code? Can a database architect develop deployment requirements? Can a project manager be a business analyst? While technically these are all possible in high performing organizations, other organizations may not have resources that have multitude of skills where roles can be effectively merged eliminating waste.

Here is where Scrumban comes to help. It combines the best of both the Scrum and Kanban worlds. Tasks become fairly structured (design a program overview, develop the stored procedure, test interactive voice response for a specific Voice XML flow, etc.) to be executed by anyone within a specific group. The group or functional leader is entitled to provide the guidelines and process direction for continuous improvement reducing cycle time increasing predictability in productivity. Example, regardless of who develops the program or tests the campaign, in the given service level agreement of 5 days, the program will be developed or tested. Yet, workflow need not be limited changes only between iterations thereby allowing new tasks to be created eliminating wait time and allowing the team to prioritize projects.


While Scrumban is great alternative where neither Scrum nor Kanban can be effectively applied, I found out that I can use it to manage myself to be productive better in multi-project, program, and portfolio management. I have illustrated this in the above figure. From my point of view, the team is the expert and I am just a facilitator. So, when the team has been provided a task, it is in progress (Yellow sticky). Now, what am I doing when the team is working on it?

I don’t need to hold a meeting to check on progress – that’s project management by unnecessary meetings. But, I shift my gears to what the team may be requiring next – eliminating all ambiguity for the potential next task. As a project manager, I focus on the upcoming milestone working a step proactively ahead (Blue sticky) and work with the stakeholders to get that ready so that when the work in progress is done, I am servicing the team with the next unambiguous task. This comes in handy when the team is virtually distributed because in such cases where communication needs to be both pull- and push forms, I got time to over-communicate! This is an example of what I label as 6P principle (Proper proactive planning prevents poor performance!)

Now, the more I work at this the more effective I become and so I work another step – 2 steps ahead – and work with the client, product, account or other teams to push them to deliver on their deliverable ahead so that there is no impact to critical path (Green sticky). I stop at 2 steps only because in my mind I am 1 sprint ahead and my agility hat tells that there may be change coming that I need to prepare for.


Let us take it to the next level. May be the green sticky (Product, account, client, or other teams) can’t do anything because they are waiting on something else. Then, so much of time becomes unfrozen. Immediately, that means productive hours can be provided to another project. This is an approach to doing more with less. This next project could be part of the same program, product, portfolio or a totally different project for a different client or even developing a hobby, helping another team member, writing this article, or dedicating time for a cause. 

This is an approach I have used to timebox all the incoming work so that within the given time available, I am still able to keep multiple things moving! 

Tuesday, September 30, 2014

Role Mergers: Is middle management – product, account, program, and project - learning from failure?

Based on the interactions I have had with attending various webinars, seminars, networking events, and conferences and bringing them to practical work, I always ponder over a question. Is middle management – product, account, program, and project - learning from failure? I share my view points on the role mergers and how many are not raising up to the requirements leading to inefficiency. 

Traditional project management roles defined frequent lessons learned or post-mortem sessions and agile development practices recommended a retrospective after iterations so that inefficiencies can be addressed. With so many different types of projects, multi-project program initiatives, products developed, and accounts managed across multiple industries, have we incorporated the lessons from our failures and most importantly other people’s experiences of failures!

My definition of failure is that if we have not learned from our failure and success, then, we have a failure. If we have learned from our failure to adjust our processes to avoid repeating the same mistake, then, we have turned failure inside out. By that definition, we can’t definitely agree that we have benefitted from the rich experiences of failure and success entirely.

In one of the Account Management seminars that I recently attended, I heard that one of the fundamental reasons for account management failure is the lack of understanding about the products and services to provide strategic direction towards solving the customer problems. Digging deeper, Kim Zoller and Kerry Preston in their book on Enhancing executive edge relate the account management operating from a quarter-to-quarter or similar frequency on their accounts (called opportunistic) will only derail even the best project management to fail unless the account management becomes relationship based and customer focused.
But, is relationship only with the client? If we say customer focused, are we not treating employees and internal teams as customers? Think about it! Relationships with internal teams are equally important as they are the ones that deliver!  Our clients watch for these things too because if you fall for everything and yield to everything the client asks then you stand for nothing losing credibility with the client and the team.

Interestingly, Mike Schultz and John Doerr from RAIN group called out in their strategic management failure white paper that the strategic account management roles will be coming with the backgrounds of relationship lead, entrepreneur, innovator, collaborator, consultant, researcher, project manager, and skeptic. This was an interesting finding because it brought the characteristics of a product manager or product owner of how they collaborated with the client and team grooming the backlog but also playing the devil’s advocate from both the client and the value for performing organization. It also integrated how the account manager roles need to understand the foundational project management thinking that also looks for risks, schedule, scope, cost, quality, integration, and stakeholders. Even agile teams are introducing the acceptance and behavior driven testing where additional test cycles will be added to ensure that the business team performs the acceptance testing before products and projects are released to customers.

Woven deeply in these observations is the skill/task alignment required! Technology is so pervasive today but how much technical understanding are today’s middle management exposed to! Like the saying goes in the Die Hard movie, “you are the wrong man in the wrong place at the wrong time!” businesses allow many reasons to continue having unskilled or untrained resources and expect a miracle instantly! Mike Schultz and John Doerr further relate to this in “Wrong People, Wrong Roles” in mandating a minimum of three skills – leading relationships, finding innovative ways to create value, and driving your (performing) organization and (client) team to get things done. As you can see these mean that no longer are the businesses requiring skilled personnel in one area but multiple skills in other areas.

These findings resonate in Agile’s fundamental principle of self-organized team! If the team depends on others to initiate, route, and manage the tasks, then agile in such cases will fail! This is also the reason why Scrum didn’t even have a “Project Manager” role in their roles merging this role with either one of the three roles depending upon the multitude of skills in the project manager – account and product management knowledge.

Keane, a consulting organization in their “Productivity Management” book recommended that productivity comes when business teams, customers, and developers are all brought into one training event to hear various sides of the productivity spoilers and address them through processes. Once these processes are addressed, the onus shits to the people! Projects predominantly fail because of people and not because of processes!

Even educational institutions are not an exception and recognizing this need. In one of my recent exchanges with a University in their Visual Arts and Animation curriculum review and design, the school professors were reiterating how the expansion of cultural diversity requires learner's understanding of the target markets and industry expectations of multitude of diverse skills in the graduating learners as part of the experiential learning approach. An example is having the narrators be able to write scripts, graphic artist to know and introduce animation, public relations communication member to modify the approach impromptu when the target market for the same product has changed.

So, there is a revolution happening! Customer service is no longer one department and it sits with every person in every department. Roles are merging in the middle management because businesses are flattening the layers and going lean in their model. So, the middle management need to wake up and smell the completion and brush up on their knowledge to be multi-faceted ready to wear many hats. If not, failures are designed to repeat!

Thoughts?

Saturday, August 30, 2014

Differences between Kanban and Scrum

Recently when attending the 5-day Agile 2014 conference in Orlando, Florida, I had an opportunity to discuss various agile implementations. Some of the discussions centered on selecting the right type of agile methodology to consider for software implementations from extremely regulated medical devices industry and government projects where Scrum was considered prevalent. Then, when I found in my network of work and friends, there were questions that revolved around using Kanban because Scrum wasn’t working.

Having used Kanban and Scrum, I wondered why there is still confusion among the early adopters of Agile and why Kanban would be considered as a substitute for Scrum. Unclear understanding of agile concepts may actually lead to failure despite the methodology as discussed in one of my networking seminars on some impediments to agile’s failure (Readers can visit http://www.agiletrainingchampions.com/#!video/c1emu for more information). So, I focus below on a comparative study of the basic premises between Kanban and Scrum. I hope this article captures the essence of these approaches demystifying the confusion and helping in the selection of the right approach for the challenge at hand.

Concept
Kanban
Scrum
Management focus
Maximize resource usage avoiding delay and enhancing accountability to support flow.
Consistent delivery in the cadence of execution, as the features in the product backlog is delivered.
Operating rhythm
No time-boxed iterative development exists.
Time-boxed iterative development – usually two to four weeks.
Granularity of work
Focus is at the task level for which the scope of work is generally known.
Focus is at the user story level for which the scope may not always be known, requiring it to be estimated before tasks can be identified and taken up by the team.
Agile Estimation & Planning
Estimation is generally not done. There is little to no ambiguity on the task that any member of that team should be able to take on the next available task and execute it.
User stories are estimated. Then, they are prioritized and risk adjusted so that these are included in the release and iteration planning.  
Value Delivery
Every task completion may not necessarily add minimally marketable value to the customer. Task identification and dependency require careful coordination.
The cadence of release and iteration planning focuses on adding minimally marketable feature through the scrum cycle. The self-organized team determines the task identification and dependency.
Progress Tracking
Flow of items throughout the lifecycle limiting delay. This is why the focus is on limiting “Work in progress (WIP)” is promoted through “Don’t Repeat Yourself (DRY)” focuses on maximizing work not done
Focus is on tracking the velocity measuring the user stories done and delivered to customer in an iteration
Utility value
Better for managing workload and resource management.
E.g.: How many projects of different combinations can be taken up by a project?
Better for managing products, programs, and projects.
Thoughts to consider in software development
Use of Kanban for software development may impede flow if all the units don’t consume the work produced at the same speed. Therefore additional processes must be in place to support Kanban.
E.g.: QA not having capacity to test code developed by engineering team. If QA’s capacity comes from the fact that more defects are found in the build, then, more granularity in tasks to ensure proper code review, unit testing, and documentation are processes that the organizations must have in place.
Implementing Scrum doesn’t mean ability to write user stories and avoiding documentation completely! This requires a management shift to ensure critical thinking on the product, program, and projects. If iterative delivery is not understood by the management and client, then, Scrum is not an option to consider.


In summary, Kanban is similar to Scrum in that they both are light-weighted approaches but the operating philosophy is different. Scrum focuses on the work being delivered to customer through multiple iterative deliveries of minimally marketable value by assembling cross-functional, skilled, and self-organizing team. Kanban, on the other hand, focuses on the visualized workflow where flow is maximized by limiting what gets worked on by the team.   

Monday, July 28, 2014

RACI: Errors and Implications in building the right one

Earlier in the blog, we had discussed about an overview of RACI. It is a great tool in every project and is an important tool in the Portfolio, Product, Program, & Project, Management Office (Shall we call this now P4MO). Too often, however, not knowing how to use this tool is like having a wrench used when a screw driver is needed, leading to the tool’s failure. So, let me address a few key observations based on my experience working with people that apply the tool incorrectly. I would like to come up with a list of 8 key findings. These are listed in no specific order as follows.

Number
Challenge
Possible Problems
1
Too many R’s
This is the person that does the work! If there are too many persons involved, then, the task is adequately defined leaving ambiguity in the task. As a result, many people are required to perform.

Now, agile team may think the work effort is shared in a self-organized team addressing central dependency of failure. This is quite understandable, but then, there should be a fewer R’s. Per design, an agile team should not be more than 7 in total including the scrum master and product owner. So, if you see 3+  R’s for a task, then, trouble is brewing!
2
Too many A’s
This is the person that is answerable to the management and resolving impediments for the team when there is confusion! Too many A’s is an indication of chaotic control. It is like everybody wants to be engineering the solution but nobody is leading.

This could also be an indication of lack of knowledge in the groups expected to be held accountable that holds the “R’s” accountable. Agile addresses this concisely by having the product owner ultimately accountable for prioritizing the user stories, decision making in the iteration backlogs, and in grooming the backlog.
3
No R’s
This is an opposite extreme of an earlier problem and is equally severe. There is no one to do the work! One may associate this with the “anybody could have done the job but nobody did the job” because no one was held to it.

This is a severe issue with the project management particularly. It is possible to have this issue when a task can’t be associated with anyone because the organization has not provided a structure to it. Then, this is something that the project manager has to identify in the risk register and follow through to get a closure.
4
No A’s
This is an opposite extreme of an earlier problem with much severe risk exposure. There is no accountability for any work done leaving to anything being acceptable leaving the customers feel the pain.

This issue presents itself in the internal team members having multitude of meetings to figure our solutions leading to lack of productivity. When this happens, there is a “Skill/task” alignment mismatch potentially.

In my humble opinion, this should not be associated people’s morale due to trust erosion or due to organizational challenges. If any such thing existed, then, the organization must step up to ensure that the accountability is properly addressed.

No customer (internal or external) should be waiting on decisions or success/failure requirements of a task as this is fundamentally against the lean principle.
5
Empty spaces
If this observation exists, then, the RACI is incomplete. If this really happens to be the case, then, the project manager or the person listed as “responsible” and definitely the person listed as held “accountable” should be raising their voice. If a comparable entry in the risk register is absent so that this can be resolved, this is like an accident waiting to happen.
6
Mixed letters
Occasionally, it is possible to have an accountable function along with responsible function. For instance, an internally facing project manager also accountable to talk with the client. However, such occurrences should be very minimal.

It is however not acceptable to see such occurrences in some areas for tasks like “development and QA” or “QA and deployment” because this would defeat the purpose of role-assignment matrix (RAM). If this exists because of resource constraints, there should be adequate process control. Combined with resource constraints and process gaps, this is a potential for “Quality failure by design” and is also, I believe, a means to “Escaped defects.”

I also think that by definition a “R” and “A” are both “C” and “I” to a large extent. But, listing “CA” or “IR” is an issue because then it raises the question of whether the person is first consulting and then accountable? RACI should avoid such ambiguities and should be a birthplace with mixed responsibilities.
7
Lots of C’s
If too many C’s exist, then, I believe 3 potential problems may exist. 

The first one is that there is a skill/task alignment with people listed as responsible/accountable leading to decision by committee. No ownership exists and people are simply trying to cover their trails. 

The second one is that the culture or project itself may be so risky that a number of stakeholders may want to weigh in and potentially slowing down decision making and unnecessary escalations (needless to reinforce here the number of communication channels that exponentially increase here). 

The third one is that the underlying processes and tools are neither understood or clear requiring more conscious checking of “Am I doing it right?”

It is critical for an organization to review the RACI in such cases and address these concerns with an iron hand.
8
Lots of I’s
This issue may not be as severe as Lots of C’s but may be attenuated in some departments. However, it must be acknowledged that “being informed” is to be addressed in the communication plan of a project. At times, the person listed as “I” may have to promote to “C” so that no project gets derailed at times of scope creep, technical debt management, quality issues, customer concerns, etc. It is critical to note that the project consciously address the “I”s balancing the unnecessary slowdown but mitigate any derailment to a project by misinforming a stakeholder.


As you can see, developing RACI correctly is both an art and science. It is an important tool that comes to the project’s aid and should be developed with the utmost care it deserves for it to later benefit everyone that is part of the RACI chart. Wouldn’t you agree? 

Monday, June 30, 2014

RACI: An important tool to manage project outcome and stakeholder expectations

A few years back in a 2-day workshop on organizational strategy to structure, I saw the facilitator came up with the RACI chart and fumble on the RACI explanation confusing “A” in RACI to “Aid.” In a different situation, the vice president of a client management group was referring to giving copyrights to his manager for coming up with the RACI model. Recently, when I saw the RACI matrix for a process map on a sales-to-execution role definition, I saw processes where same owner was both responsible and accountable and some areas where there was no person was identified as accountable.  The more I am in management, the more I am feeling that key important stakeholders should become trained on fundamentals of project management, such as the tools associated with Project Management, so that they can position the projects for success and even inadvertently don’t derail the projects.

There are several reasons to why a RACI chart is required. The most common ones include when the organization is large enough that simple project communication tools alone would not eliminate role ambiguities efficiently controlling costs to the organization. The subtle reasons for requiring a RACI becomes essential when the organization is silo-ed where several members are working on similar tasks creating waste and not making the organization lean. From a project, program, product, & portfolio management perspective, this RACI tool surfaces to the top of managing risks to these strategic initiatives as middle management wonders if they have the authority to implement their job or projects experience schedule slippage, scope creep, cost overrun, and escaped defects.

So, how does this managing strategic initiative from project to portfolio management?  Now that we realize the importance of the tool, let us ground our thoughts here in relating this tool to stakeholder and risk management. Here are my thoughts!

Role
Description
Stakeholder
Responsible
The individual performing an activity.
This person does the work. It may be a developer, tester, data analyst, or network administrator in software development or a project manager in a project.
Accountable
The individual ultimately accountable.
This person is answerable to the management in managing the client and the project’s profitability. An account manager, product manager, project manager, executive sponsor, functional manager are all examples. This person should also use risk register effectively by mapping the risk owner to the RACI.
Consulted
The individual required to offer input and contribute to the activity.
This person offers 2-way communication and is the expert. This person should hold both “Responsible” and “Accountable” person in check and uses the risk management strategies. May be able to roll up the sleeves to actually do what these above roles should do. Can take on the roles of Director, Proposition Manager, Business Analyst, Project Manager, etc.
Informed
The individual that needs to be informed of the decision and its impact.
These are the people that PMBOK calls as stakeholders that can be positively or negatively impacted by the project’s outcome. These stakeholders must be managed so that unnecessary escalation and project derailment does not happen.  The “Informed” is not limited to organizational employees and business units but customers, vendors, partners, and end-users depending upon project’s or product’s goals.

Every tool in the Project Management Book of Knowledge is so critical that it has its place in managing the project’s outcome. Understanding its purpose and utilizing it appropriately is critical to any organization’s job. RACI is an important asset to any management to eliminate waste, increase efficiency, and enhance stability.

Now, how do you foresee its use in your organization, business unit, and product or project management? Share your thoughts!

Saturday, May 31, 2014

Effective Virtual Meetings

Today's project environments face a unique challenge in holding effective meetings that contain team members physically absent due to geographic limitations spanning multiple timezones. Let us peel the layers of effective meetings.

First, it is critical to understand the cost of meetings. Meetings are one of the easiest means to erode profit margins and consume productive hours ineffectively if  used inaccurately. For instance, putting 8 people in a room for 1 hour for project status meeting would mean 8 hours or 1 productive day of a full time employee is quickly consumed. When the idea of project management evolved in the corporate world a dew decades back, more people were inexperienced working in project environments justifying the need for project meetings. But with the evolution of project management,  removal of hierarchical decision making layers with flatter organizations, sophistication of many tools in today's world question project managers calling for unnecessary meetings. This is an indication of several causes not limited to the project management inefficiency, lack of knowledge dissemination, and communication bottlenecks.

The practices of management by walking around (MBWA) has been known for a long time where key decision managers such as the project manager shouldn't be confining themselves to cubicles or office spaces but walk around to get the updates and remove the impediments faster. The agile approaches take this planning a couple of steps higher where the daily stand up meeting is used to plan for corrective actions for the coach. so, use meetings effectively and call for meetings only with members as required. Don't call for a meeting because you don't know the answer and want to show control by bringing many to the table to get the answers to avoid project derailment.

Second, now that we have addressed quickly to eliminate unnecessary meetings, let us look at distributed team members that lack non-verbal clues.  These meetings further go beyond an actionable agenda with enough time for team members to review any required information to be prepared for the meeting.  Some norms need to exist to understand time and culture boundaries.  People may take the calls from vehicles and home, irregular hours for some participants,  etc. So, muting phones unless talking, ensuring technology clashes such as not using computer microphones creating background echoes, avoiding too many parameters like conference id, password, audio key, etc besides dialing into the bridge making it difficult for people to take the call from moving vehicles, understanding constraints with the number of ports available for group meeting, and differentiating webinar versus group meetings where one person alone can talk versus many can talk at the same time are all some examples of additional meeting etiquettes.

These supplement the known order in which people introduce themselves. For instance,  people can name the next person to talk, share input, or introduce.

Third, in these meetings,  it is equally important to avoid the pretense of multitasking. While it is a good idea to request to repeat or paraphrase questions and is perfectly understandable in a multicultural team membership,  it is not an excuse for not focusing during the meeting.

Fourth, a project manager should really understand the purpose of the meeting.  An agenda is only good if we stick to it. While we don't need to go with the same order of the agenda, it is critical to ensure we don't go on a tangent moving away from the meeting's purpose.

Finally, a meeting without the meeting minutes documenting the decisions made to avoid further meetings or actions identified on who should do what by when question the productivity of such meetings. A project manager in these cases should become a good facilitator, leader,  and coach to keep the meeting in focus, document notes, and coach the team towards effective meetings.

So, meet effectively and only when required. Would you agree?

Wednesday, April 30, 2014

Key Performance Indicator must start with business need

In a recent workshop that I attended on Agile Engineering Practices, as we began discussion on differentiating the roles of individuals for acceptance test driven development (ATDD) and test driven development (TDD), question came up on what key performance indicators (KPI) are to be used. I offered my view point that the approach to deciding what key performance indicator to measure is an incorrect strategy for any organization or business unit.

Let us define what a KPI is. My interpretation of KPI is that it is an objective measure of the efficiency with which a business process is executed to deliver incremental value effectively to a business need. By this definition, I see four contributing factors in two ordered pairs, which are as follows:
  1. Business Need & Effectiveness (Objectives and Key Results [OKR] comes here)
  2. Business Process & Engagement (Critical Success Factors [CSF] comes here)
  3. Delivery and Operational Efficiency (Key Performance Indicators [KPI] comes here)
The OKR is a corporate level initiative that connects with the vision ("As is" to the "To be" state based on BHAG ideas). This may emerge from the portfolio function (identified in the business case) requiring what needs to be done across the organization (identified in the project/program charter) to align stakeholders, commit resources, and engage for success (that I call as ACE for charter). Consequently, each business unit comes up with its own critical success factors (CSF). In my opinion, the CSF are spread in at least 6 areas (Strategy, operations, product, marketing, finance, and people). Now, as programs and projects are chartered to deliver benefits through capabilities, enablers, and features in the product portfolio, the KPI measures the delivery and operational efficiency.  

If we conceptualize all these areas together, then the overlap between each domain (OKR & CSF, OKR & KPI, CSF & KPI) is the Key Result Areas (KRA) that all business units collaborate vertically and horizontally (this is where value comes). Every interaction is loaded with several external and internal risks and so are associated with the risk assessment. This is one of the reasons why products, projects, programs, and portfolio have risk (as measured by Key Result Indicators) as the central vehicle throughout the organizations (OKR & CSF & KPI & KRA).  Without understanding these interconnections, if we drive to use KPIs, then these are anti-KPI patterns because we are not measuring what matters!


 Dr. Rajagopalan's Conceptualization of the relationship among OKR, CSF, KPI, KRA, and KRI

The business need differs across the organizations and within the business unit in an organization. For example, consider schedule variance (SV). This SV is a project management measure to see how the planned value (BCWP) of a project compares to the actual value for that project (BCWS).

While this SV is a very good measure of an individual progress, in regulated industries that manage portfolio or programs with multiple dependent subprojects where the control on regulatory boards are external constraints, the SV may not be an accurate measure of the performing organization’s project efficiency unless such delays are removed from consideration. So, if the goal is to measure the project health discounting such external influences, then, such measures may not accurately address the business need.

Now, when the right KPI is chosen based on what the organization’s or business unit’s goal is, we can shift the attention to the business process that is in place to address how efficiently it is serving up. For instance, if we use number of forecasted project launches to actual project launches when proper workflow, documentation, and versioning controls exist, then, the focus can become more objective to measure why tasks slipped, how projects were prioritized, etc.

As a result, whether it is a traditional software development setting or iterative software development, the focus should be on what is that we are trying to measure and why and then have the right processes and tools in place to collect data for analysis. Collecting exhaustive data accurately and apply an incorrect KPI will only lead to inaccurate assessment. For instance, measuring defects logged by tester would motivate the tester to log too many defects instead of consolidating them in one (like grammar, spelling, punctuation, formatting on a single line logged as multiple bugs). Everything countable does not always count, right! 

I would like to start a list of KPIs for a Project, Program, & Portfolio Management setting that would be a great list. Please let me know what you think should be added to this context.
  1. Schedule Variance and/or Schedule Performance Index
  2. Cost Variance and/or Cost Performance Index
  3. Number/Percentage of Projects Forecasted to Launched
  4. Number/Percentage of milestones reached/missed by project
  5. Number of FTE hours / project in a delivery based schedule (no resource leveling)
  6. % of projects coming behind schedule
  7. Defect Density (Number of defects logged against requirements)
  8. % of failure rate against test cases
  9. % of test cases/requirements coverage
  10. Number of risks against requirements/test cases
  11. Prioritization of requirements/test cases based on risks
  12. Task Progress (against DoD)
  13. Extent of ATDD/BDD by Business Users (e.g.: exploratory tests)
  14. Number of Escaped Defects
  15. DORA metrics
  16. Cycle Time, Lead Time, WIP
  17. Estimation Accuracy
  18. Commitment Evaluation (e.g.: Planned vs Actual Velocity)
  19. Backlog Growth and Burn rate
  20. Risk Reduction Rate (Identified, Treated by Response Type, Residual)
  21. % projects on budget
  22. % of Challenging Projects/Program or Portfolio
  23. % of Change Orders $ to original SOW $
  24. Internal Rate of Return
  25. Net Present Value
  26. Payback Period
  27. Net Profit Margin
  28. Capacity Utilization Rate (e.g.: Profitability per Project Management Resource)
  29. Account Growth Revenue
  30. Cash Conversion Rate (Revenue Recognition Frequency)
  31. Concept to Cash Cycle Time
  32. Marketing Metrics 
  33. % of Complaints over Product/Program
  34. Customer Satisfaction Index (e.g.: NPS)
  35. Training Efficiency

Sunday, March 30, 2014

Enhancing Productivity

Today’s corporate world is characterized by increasing pressure to deliver more but of uncompromising quality at a better rate. Increasing efficiency of production using just in time production is not new followed by build-on-demand concepts where value add to a customer takes on the focus in agile software development.  Regardless of the industry and product built, how can today’s projects still deliver increasing value maintaining the strict adherence to quality?

The fundamentals of iron-triangle of quality by managing the levers of scope, schedule and cost is still present but timelines are requested sometimes without clear scope, schedule then is accelerated to meet customer’s demands, and still cost is allowed not to increase both in operational and capital expenses. Keeping the focus to operational expenses, the question often evolves: How to measure and enhance productivity?

I believe the basics of productivity are in clarity, duration, and customer management. For projects that have somewhat known scope, such as extending a product installation in a different client site that can leverage past lessons learned, the clarity is not an issue. But, for new initiatives, the product scope may be evolving and this is where delivering to what is known using agile concepts may be beneficial.

But, the basics of duration management are differentiating the type of hours that go into the project. Productivity losses come from two types of hours that derail the project because productive time is taken out of the duration because the “right” people are not on the “right” job at the “right” time.  These types of hours are as follows.
  1. Non-Project Hours – Delivering no value to project but time for internal process enhances, functional department meetings, training, company meetings
  2. Non-Productive Hours – Time lost due to ambiguous work, lost work requests, unnecessary meetings, doing other’s work, assumption about roles, lack of accountability, etc.

The basics of project management differentiates duration from estimate in addressing the first component which is often misunderstood. Agile concepts address these by using ideal time to ensure that the story points are properly incorporating enough time to develop value. But, the second part is the difficult one that the management needs to spend additional time in ensuring that properly motivated and trained people are present, tools are sufficient, and collaboration is cohesive.

In terms of the customer management (remember client is both internal and external), the productivity goal should be to maximize hours charged to a project, establish a baseline for products of similar nature and use appropriate time entry/approval methods to evaluate against the baseline, forecast and promote predictability of workload and hold everyone accountable. The principles of stakeholder management are no wonder a newly added separate dimension in the Project Management Book of Knowledge.

In summary, productivity measure are rooted in people, process, and tools that allow the job to be defined in adequate detail, breakdown accountability by increasing collocation, introduce distribution tools for effective collaboration, lead instead of manage the clients more effectively, and use process as a key vehicle to integrate the whole in a virtual distributed environment.


Thoughts? 

Friday, February 28, 2014

Ingredients of a Transformational Leader-What can you do?

Leadership is one of the frequently talked about topic in scholarly and professional literature and yet is the most confused topic. From the great man theories promoted Dowd (1936) emphasizing different degrees of intelligence, energy, and moral force in leadership and contingency theory focusing on task or relationship orientation in effective leadership (Fiedler, 1967) evolved the integrative people-value based theories of transformational leadership evolving from theory and servant leadership evolving from practice have found their common place in many organizations.

Yet, the leadership component is evaluated on management that focuses on tactical execution. Some of the reactive nature of business units makes executive management evaluate if these functional leaders are proactive and transformational. Questions evolve on proactive processes put in place to control chaos where efficiency of management is confused with leadership of effectiveness. In a dynamic demanding organizational environment, what are some of the ways for transformational thinking?

Burns (1978) began with the idea of transformational leadership that Bass (1990) expanded. Additionally, readers are directed Scholar-Practitioners like Peter Drucker and John Kotter for leadership and management. But, here I would like to present a few questions and tips that will map to the four “I”s of Transformational Leadership so that one can walk away with actionable steps. Transformational leadership exhibit idealistic influence by inspiring and motivating the team, giving individual consideration differentiating from group and team, and intellectually stimulating them to excel themselves. How could this be done? 

Given below are five questions that people can ask them to
1      How do I facilitate getting the job done always?
2       Do you feel like you have a role or a job?
3.       What have you done to make a member exceed their abilities and grow their skills?
4.       What makes others reach out to you?
5.       What do you know of the individual’s career goals?

Transformational Leadership Category
Some Thoughts – Actionable steps
Ideal Influence
1. Walk the talk and avoid lip service. Let the results speak to your efforts.
2. Build trust for the team by “being there” for them and modifying people’s behavior to embrace change
3. Proactively implement new ways to organizational culture
Inspirational Motivation

1. Learn what motivates people – extrinsic and intrinsic needs.
2. Learn from failure so that future strategies can avoid risk and improve quality
3. Maximize learning from success so that these are not accidental outcomes but repeatable outcomes
4. Ask how you contribute to the organizational vision and empower them for change.
Individual Considerations

1. Give work assignments to match one’s skills but challenge you to grow them by pushing them out of comfort zone. Be a servant leader – they may not how it benefits them always.
2. Consciously build a career plan. You owe it to your team even in a balanced matrix organization by providing recommendations.
Intellectual Stimulation

1. Foster Creativity & Innovation - If the wheel is not broken, then, you haven't looked hard enough.
2. If people agree too often with you, ask yourself if you are surrounded by "yes" men.

Henry Ford once said, “Coming together is beginning; keeping together is progress; working together is success.”  To me success is a meeting point between preparation and opportunity. We need to prepare ourselves to lead before an opportunity presents itself. Understanding one’s own drive and emotions is instrumental to understand the others, which is a perquisite for the transformational leadership that is practiced every day with effective habits on us first before they can be practiced on others.

Are there any other actionable steps or questions that can make this list more comprehensive for practice?

Saturday, February 1, 2014

Need for Statistics for Project Managers

“I am not good at statistics. So, I am not cut out to be a project manager,” said a potential PMP aspirant after attending a PMP boot camp. My heart slipped a few beats to regain my stand and found out from this potential PMP candidate managing dates in the timeline, evaluating project slips, looking at contracts for vendor management, and monitoring metrics demand high mathematical skills for a project manager to be successful.

Let us look at the core knowledge areas in Project Management Book of Knowledge that includes management of scope, time, cost, risk, quality, communication, procurement, integration, human resources, and stake holders. Most of the process groups within each one of these domain knowledge areas involve qualitative thinking, leadership, organization, negotiation, and people management skills. For instance, the project manager that asks for what percentage of a task is completed draws attention in today’s context because even if 80% of the task is completed, the remaining 20% of the task can take more time to complete. Understanding people’s commitments and winning consensus towards project goals is central to task completion, and therefore eventually project success.

Even when we focus on metrics, such as cost or schedule variance, schedule or cost performance index, or other earned value metrics like planned value and actual value, estimate at completion, etc., the mathematical formulas involve simple subtraction and proportions. Do these mean they are statistics? How much difficulty exists in comparing the milestone slips from baseline to actual? Simple office automation tools like Microsoft Excel can accomplish these computations effectively and if the proper use of Microsoft Project is used, then, these metrics can be easily computed.

Now, let us turn our attention to Agile. Technically, project plans are not preferred in this setting as the teams are dedicated and self-managed. The project manager is not managing the tasks. Focus shifts more towards product features, benefits to business, etc. Neither the estimate gathering process like planning poker or metric computation like velocity planning is quantitative. Besides, good application lifecycle management (ALM) tools like SpiraTeam, Version One, or Rally allow such metric gathering more effectively. So, where is statistics coming in to play as a core skill of a project manager?

Let us not leave capital project selection where the management using steering or governing committee must make a conscious selection of products to invest or consume resources to work on. These ranking of projects use basic mathematical concepts like payback period, net present value, or internal rate of return. None of these methods call for detailed analysis of variance, kurtosis, skewness, or involve factor analysis.

Besides, if simple observations of ratio and proportion or central tendency analysis using mean, mode, or median mean statistical expertise, then, how much time are a Project Manager spending on such analysis compared to communicating and managing stakeholder expectations to ensure project success?
So, is statistics a core skill for PMP aspirant? Readers, what do you think?