in

 

Joe Ocampo (AgileJoe)

Answering all world issues and questions with, "...it depends..."

June 2008 - Posts

  • Grapevines and Agile make great Wine...

    I couldn't resist the title.

    By this point in most of your careers you have been exposed to the grapevine exercise. This exercise is geared to show you how one thought through many control points gets distorted and misrepresented. I believe this is true for the majority of conversations out side of work but if leveraged properly can add tremendous benefit to an organization.

    Keith Davis did a study of the grapevine in 1953.  Keith Davis stated

    "the grapevine is a natural part of a company's total communication system...it is a significant force within the work group, helping to build teamwork motivate people, and create corporate identity."

    This type of discussion medium is prevalent and natural to the greater society. Just think about what happens in your homes.

    In most homes there isn’t a plan written down for how to do the budget, there isn’t a process on how discussions at the dinner table will be deliberated. There are guidelines but these guidelines are mutually agreed upon in open discussion. In most homes these types of forums are left open and honest, focus is on content then exactness.

    Organically barriers are established but periodically they are revisited (usually by teenagers) to test their validity.  The content however is “I heard...”, “Did you know...”, “Today at work...”.  Nothing of empirical substance but enough to spark decisions in the house hold.  If we are wrong we readjust and go on.

    Some of us however need more control in order to FEEL safe. Some of us feel that the more we pursue exactness the better our decisions will be. Issues arise when this personality type forces others to fall in line with this thought process.

    Several heavy weight methodologies have attempted to control discussion and thought through various bureaucratic mechanism. While some have the perception of control, few if any, have ever been able to achieve this.

    The Agile Manifesto tells us that we should value Individuals and interactions over processes and tools. 

    So with this philosophical mindset we must propagate fluid communication and document or create processes around communication when “absolutely necessary.”

    Take a moment and evaluate “absolutely necessary,” this implies that you have exhausted all low friction practices to promote communication. Then and only then do you investigate a tool or a process to govern communication.

    If you do come up with a process or tool please take the time to put in place some type of 6 week reevaluation period to determine if whatever avenue you are pursuing is proving to beneficial and not wasteful.

    How does this have anything to do with the grapevine paradox? Well, you have to remember that people are people, rather then trying to change their innate ability to communicate openly, embrace it!

    I would venture to argue that the majority of individual you interact with daily would welcome open communication over documentation.  There are the few that do  so if your organization is composed of this type of individual you must respect their needs and give them what they need to be successful. But weigh it in contrast to the majority.

    Take the grapevine paradox and embrace it by facilitating open communication such as daily stand-ups, fishbowl discussions, innovation games, collaborative retrospectives and development lab architectural discussions. The emphasis is on the openness which breeds transparency.

    Let us not forget that People communicating successful to accomplish a common goal are what determine project success not charts or graphs but people.

    Simple in concept but often overlooked.

  • Matrix Resource Management and Agile

    I have been having an ongoing discussion lately concerning matrix management styles and how they conflict with Agile Project Management.

    If you look at the traditional "Iron Triangle", resources are estimated, in that change is expected in the resource allocation depending upon task and assignment.

    clip_image002

    In Agile resources are fixed throughout the duration of the project and features are variable.

    This is a clear delineation into the approach of Agile resource management. Traditional matrices were based off of manufacturing models that do not lend themselves to effectively managing knowledge-based work such as software development.

    Manufacturing management relies on technicians to be trained at various activities in their line of work. These activities rarely, if ever, change. So, mastery of these activities increases dramatically with repetition. This is not a bad thing, since tremendous value is gained through the repetition for the business. From a management perspective it is very easy to assign different work streams to one person since the proficiency level of the work environment is not built upon change or adaptability but on repetition and skill mastery.

    Knowledge-based resource management understands that knowledge workers are trained professional but the context domain on which their skills are applicable is in a constant dynamic state. Therefore, this forces the knowledge worker to pursue greater levels of training and reconstitute positions of ideology based on experience. This is the benefit of the organization that employs knowledge workers.

    The fluidity of communication and thought surrounding a project (especially a software project) forces the knowledge worker to gain greater depth in the problem domain so that they may better serve the business in providing services.

    This idea is compounded when you start to manage teams of knowledge workers. The term, "two minds are better the one", shines in this environment. As knowledge teams ensure business value is rendered and investiture in the project increases, the thoughts and ideas of the whole out weight that of the individual.

    As matrix management encroaches upon Agile management the philosophical view points on resource allocation are contrary to each other. Consider the following:

    Organization: Gloop Org

    • Developer UberBob – Is assigned to

    • Project A @ 25% of his time
    • Project B @ 65% of his time
    • Project C @ 10% of his time

    I know this NEVER happens but work with me. The Gloop organization is wanting to move toward a more Agile development approach but is not willing to give up it's matrix model just yet.

    • Project A is in the planning stages and several meetings have been setup to discuss how the new billing system is going to work.

    • Project B is knee deep in the second release and velocity has been established for each iteration. The new warehouse system is underway.

    • Project C is just finishing up but automated testing wasn't followed so the team is mainly focusing on defect removal. Defect backlog is high.

    Monday:

    Bob comes to work and is perplexed to what standup he has to attend since he has input to each one of the projects he is on. He has already been dealing with this dilemma for the past couple of months as he spends the latter part of his day creating emails to send to the project managers of the standup he will not be attending.

    The project managers do their best to convey Bob's work and impediments but usually Bob has to follow up with team members throughout the day to determine what he missed and what issues he has to solve due to the breakdown in communication.

    In Project B, Bob is working heavily on how the conveyor system is going to determine what gates to open to ship the merchandise. There is an issue, however, that the team has to figure out because the communication protocol isn't fully supported for the gating system as originally thought. Several meetings are planned in the afternoon with the development team to discuss the correct course of action.

    In Project A, they are still going through several domain modeling sessions to flush out how the billing system is going to work. The billing system model for Gloob is unique and is how the company maintains it's competitive advantage. They are going to go over the complexities of this system in the afternoon.

    In Project C the defects are just getting out of hand. There are several show stopping defects and the team is going to have to determine how they are going to solve these issues before going to production. They are going to get back to Bob on when the meeting is going to be held.

    I am not going to go into what happens here but magically Bob is able to pull a miracle and make it to each meeting but he has to sacrifice time and only go partially to each meeting and rely on the meeting minutes to catch him up to speed.

    Bob is an awesome developer, he is prideful about everything he does, and works late hours to overcome all the impediments his projects go through daily. The issues surmount when the communication breaks down.

    What Bob didn't know was after he left the Billing System meeting they went into a critical discussion on how the system calculates interest. His fellow teammates estimated that feature at taking days, but in reality with Bob's experience, it will take months. In the warehouse system the Product owner came in and changed the backlog since the “gate issue” is going to take longer to flush out. So they added other value stories above the gate. But Bob doesn't know this and is planning on staying late to figure out how to solve the gate issue. Bob was unable to really bring any value to the defect discussion since he came in at the tail end of the meeting. Bob's teammates weren't too happy with him for missing the defect meeting.

    End of Monday…

    I know this never happens in the real world but it is very possible (I say that tongue in cheek). All these projects are at risk because of the matrix model. Knowledge workers need to focus on one context at a time so that we harness the power of their collective thought.

    By fixing the resources on a given project and dedicating them throughout, you gain momentum and predictability of effort. Matrix models disrupt communication continuity as well as iteration velocity. As you mix and match resource from project to project every week, you might as well throw whatever velocity you have been tracking out the window as the team dynamics have been disrupted. If you simply perform a one for one swap of personnel you cannot expect output not to be disrupted.

    I want to make sure that everyone understands that I am not saying that matrix management doesn’t work. I have seen it work on extremely large RUP projects that lasted several years. My definition of “work” is slightly skewed because the project was less then stellar but the work effort was as fluid as RUP can be.

    My argument solely revolves around matrix management and Agile. You can do it but the experience of true Agile will be lost. The people aspect of Agile, which to me is the most critical, will be damaged due to constantly managing frustration based around priority and delegation.

    I have always said this and continue to say this, “Agile refocuses management to concentrate on people aspect of leadership. By focusing on increasing quality of life for the employee and increasing knowledge share, the benefits are tremendous!”

  • My issues with the term "Scrum Master"

    A few years ago I was very excited at the possibility of becoming a Scrum master.  At the time I had been an avid XP practitioner for a little over two years.  I had read several books on the Scrum but viewed it as simply Yet Another Agile Methodology (YAAM) with a focus more on the project management.  I thought to myself that I must have been missing something.  How can something as simple as this methodology be taking off like wild fire in the corporate arena?  I figured that a Scrum Master class would shed light on this dilemma of mine.

    Day 1 of Scrum Master training, typical PowerPoint presentation with lots of slides telling you how great Scrum is and different scenarios where Scrum has been applied. Still no epiphany.  The day goes on and we get to do hands on Sprint planning meetings, we emphasize the importance of the Daily Scrum. OK been there already, understand the importance feedback, still nothing ground breaking. Next we talk about value stream prioritization from the perspective of the Product Owner.  People are asking lots of questions on what do you do…etc.  Lots of dialog but still nothing earth shattering.  Next we discuss organic team composition, something that is near and dear to my heart but we spend around 20 minutes on this topic basically saying let the team self organize to gain the greatest value. On to retrospectives, very enlightening, nothing really new, there isn’t one way to do a retrospective, several books are recommended.  And this is the end of Day 1.

    Day 2 we actually go though an entire mock release.  We form up into 5 person teams. Each of us assumes various roles such as Product Owner, Scrum Master, and the development team.  We go through the Sprint Planning session and prioritize a backlog with the product owner learning several techniques on how to gain insight into how the backlog is being prioritized. Now we start our first development cycle that is time boxed to 5 minutes. Team self organizes and pulls stories from the backlog to work on.  At the end of 5 minutes we do our daily Scrum.  We talk about what we did, what we are going to do and are there any impediments in our way. We go through several cycles with some of them trying to be sabotaged by the instructors with various impediments that the team manages to overcome. At the end of the Sprint we demonstrate the final product to the Product Owner (in this case it was a magazine) they make suggestions and reprioritize the backlog.  We then hold a Sprint retrospective and talk about what worked, what didn’t work, and where we could improve. On to the next sprint to start the whole process again.

    At the end of Day 2 we had a feedback session about how the class went.  We talked about what we learned and ways on which to improve the class.  For me it was nothing more of a confirmation of what I had already been practicing but there was something that was missing, more on that later.

    Now the scary part! Towards the end of the class we signed several sheets of paper and 30 minutes later I was awarded the title of, “Scrum Master”! What I didn’t tell you is that the class was filled with individuals with out any software development background.  Here is a list of some of the titles that where in the meeting.  Vice Presidents, CIO’s, Project Managers, Product Mangers, Developers and a Financial Analyst.  All of these individuals could now place, the title of Certified Scrum Master on their resume and wreak havoc to any organization that would give them the power.

    It is not that I have a problem with Scrum so much as it is I have a problem with title, “Scrum Master”. The word “master” implies that this person has attained a level of mastery of everything related to scrum though experience, experimentation and trial.  I would have preferred the term “Scrum Apprentice” to “Scrum Master”.

    Scrum is very instrumental at getting an organization to adopt Agile.  I have a post about this calling out that, “Scrum is the gateway drug to Agile”.  If you choose to adopt Scrum your organization you will gain greater insight into its culture.  This insight is not always welcomed as it will expose many of your organization process and personnel related issues.  How you choose to deal with these issues will determine how successful your project will be.

    Personally speaking Scrum cannot be practiced on its own.  Scrum lacks software engineering disciplines and practices, this is where XP excels.  By combining both methodologies into one ecosystem you have a very powerful foundation to build on.

    If you do decide to go down this path make sure to ask for the Scum Masters list of impediments and how they overcame them.  Also ask about what they have learned from their mistakes.  This will give you an idea on the level of experience the individual has running Scrum Projects.
     

Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems