Wednesday, December 31, 2014

One Page Project Estimates

The questions this post is providing an answer to are:

  • How can a project manager provide visibility to his / her stakeholders when he / she wants to pitch to them a new project? 
  • How can he / she highlight the risks associated with staffing and estimations and play with just a few variables so that risk is brought to an acceptable level?

The method (and its associated Excel-based simulated model) is intentionally simple, its goal being to have the outcome fit on a one or two page sheet and keep the number of variables low so that iterations are easy to make. It does not aim to provide an accurate representation for the risk nor to be used when the required precision is high.

I decided to write this post few days ago, when reading this article [Harvard Business Review] I realized that, in many ways, I have been proceeding in roughly a similar manner when providing high level estimates for my projects.

For the document that exemplifies the method I used, I kept the same example, the book store, for simplicity. Please note that:
  • Numbers in the example are totally random
  • This is a simplified model, designed to draw high level conclusions, and not a project management tool per-se. The aim is to fit all the information on a single sheet of paper, mostly communication and quick iteration purposes. Here is how:

 

Step 1:

  • Fill the "Budgets" column with the main features of the project.
  • In the "timeline" section add your estimation in terms of total headcount that you expect to have working on each specific feature. 
  • In the "confidence" level add your "gut-feeling" estimate on how accurate your estimation is. In the simulation, the duration / budget will be considered to take somewhere between:
    • Min: confidence% * estimation
    • Max: estimation / confidence%, thus a a 50% confidence will lead to Min of 50% of the men-months needed and a Max of double the men-months needed, thus prolonging the time needed to finish the work.
Therefore, padding the estimations or taking extra safety precautions are not recommended.
  • In the risk level add color coded where the uncertainty is drawn from (technology, backlog (scope), or management-related unknowns like external dependencies).

 

Step 2:

  • Fill the resource breakdown in the second sheet of the document - this shows how you plan to allocate staff to the project. First start off with the initial breakdown (the one that came from estimating each of the features from the first page)  
  • Look at the available resources and see how many people you can 100% commit to allocate according to the resource needs.  Then compare to the resource needs and add fill the "Min availability at ramp-up" column.  

 

Step 3: 


Evaluate the results - every time you press CTRL-S, a new simulation is performed.

Look at the basic simulation for resource availability:

The model is very basic. It takes into consideration the resource needs and the initial allocation probability and then randomly adds headcount to try to catch up with the needs. It assumes that, once a resource is allocated it is not deallocated until the end of the project. The basic idea is that staff may not be available in time (due to assignment to other projects or inability to recruit in time)



Look at the following section of the first table:

  • In the green square it shows how much resource buffer you have (or you need to recover from somewhere - if it is a negative number).



Look at the execution simulation results:

The most important line is the DEBT MM. This shows how much you need to recover (negative numbers) or have the capacity to be ahead of the plan (positive numbers) on a monthly basis.


 

Step 4: 


This is the most important step - iterate and play with the numbers:

  • Check what needs to be done to improve your estimates and what would be an acceptable confidence level in order to start the project.
  • See what can be scheduled earlier in order to use the extra resources that you might have in the beginning and reduce the risk towards the end of the project.
  • Play with the resource plan - after you run the simulation with the initial estimates, add / remove staff to each line to see how that will impact your buffers. Find a resource plan that you and your team feel comfortable with.

 

Step 5:


As time goes by, update the excel file with real data and see how your predictions match the reality. Don't forget that this is just a road-map simulation and a proper Agile process should be followed with the team.

End note:


Please always remember that this is a model, it is designed to help you ask yourself questions. It is simple by design because adding more variables would only make iterations cumbersome and relations between data points harder to grasp. Use the model to express to your stakeholders what you have in mind and identify some optimal resource and estimation targets that need to be met in order to proceed safely ahead.

If you need more depth, play with the formulas and add more data points to the model. If you have any questions, please ping me as well. I'd love to discuss your findings and your ideas on how to pitch and estimate risks more clearly, preferably on a single or maximum two page document. :)


Wednesday, September 3, 2014

Agile Project and Portfolio Management for Business Projects

Traditionally Agile is recognized as a software development-specific set of methodologies. The Agile Manifesto, the document that defines the pillars of the Agile movement, seems to inexorably link it to software teams. But is Agile so specific to software? Can those principles be applied to a wider range of initiatives? What if the “working software” wording is rephrased as “tangible value”?

1. Some problems Agile promises to solve:

  • Things don’t seem to finish as there are too many threads in parallel. Lack of visibility, streams of emails to ask for basic questions and a general feeling of insecurity and lack of progress.
  • “Business as usual” – process work, role based, without a clear understanding of the final objectives. Not much motivation. Fixed roles, "not my job".
  • Hard to squeeze in change initiatives due to pre-approved budgets and plans.

2. Paradigm shift:


Everything we do is a due to a change we want to see in the system.  Thus a clear, time-bound and resource-bound, measurable result is desirable.  Ideally, everything should be transparent and people commit in group to the goals. It is OK to change roles, as people that learn new skills and extend their responsibilities are more motivated, reliable and happy. Thus we can approximate that everything we do is either a project or part of a project which we plan and we allocate resources to. All these initiatives form a portfolio that needs to be managed. As objectives shift in time, everything becomes subject to challenge, discussion, and prioritization and, of course, cancellation.

Hierarchical backlog in which we link all projects to strategic objectives and areas of responsibility.

(Suggested first step: write down business goals as a hierarchical structure, with areas and owners. Each project is then linked to a specific goal. By default, the area owner becomes either the default project manager or the portfolio manager for his group of projects. In the picture above, we used Jira with the Structure plugin to organize the information.)

3. Crossing the bridges:


Agile distilled:

A set of principles on how to respond to change and maximize value creation.

Agile manifesto for non-software related projects: 

"We are uncovering better ways of developing software delivering value by doing it and helping others do it. Through this work we have come to value:

o Individuals and interactions over processes and tools
o Working software  Maximizing value over comprehensive documentation
o Customer collaboration over contract negotiation
o Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more."

Agile Methodologies Distilled: 

Practices to support the values. If values make sense and you implement practices that support them, you are already Agile. Is there anything inherently contradictory to managing in an Agile way any type of activity or task? 

What Agile is not:

  • A software-development only methodology that is completely opposite to the traditional way of managing projects. 
  • For kids, youngsters and pet projects.
  • For unconventional start-ups only.
  • Something new that has not passed the trial of time.

And, of course, the set of associated myths: 

  • Agile practitioners do not plan. 
  • Agile does not offer any guarantee nor commitment to results.
  • Agile can only be done with a physical board, post-its, endless meetings and a significant dose of nonconformist.  
  • To be Agile requires for everything to be changed.

All in one paragraph:

Agile is a philosophy, a set of lenses through which we see the world. The supporting practices feel natural and safe in most of the environments, but they do require a certain dose of sustained caring for people and discipline to implement them.

3. Agile Simple Portfolio Management for non-software teams.  


Scrap the “sprint, Agile, scrum, epics, feature, and retrospectives” terminology.  They might scare people away. Use the common human language, explain as if for a friend. Then just do it: call the meetings, follow the process, plan, ask the questions.

Jira Agile Project Board

(Suggested second step: together with the owner, define and agree on a backlog of projects that would help fulfill the business goals. There's no need to plan everything upfront. Rough estimations are enough, just to understand the business value, align on vision and on cost. Minimize the amount of project in progress. Re-discuss value and re-prioritize every iteration.)


Ok for planning, monitor and control, but why the continuous improvement? 

There is a common misunderstanding with S.M.A.R.T - The Achievable. How do I know that if I receive a business goal of "increasing the business value by 15%", the 15% is: a) realistic goal and b) the best that can be done. 

Let’s introduce continuous objectives and continuous improvement. It is OK to start with the worst process in the whole world. It is not OK not to improve everyday. When '"New Balance" built their first sport shoe in US to compete with the Chinese-made Adidas and Nike, they first built the most expensive sport shoe in the world. Then they improved. Now they are competitive. The question is: how can we improve, no matter how good we perceive ourselves to be. Compete with ourselves, not with the objective. 

For continuous improvement, we need data: track performance with charts, flows, timing. Get numbers. Agile metrics are there to follow and spark continuous improvement and retrospectives. Everything that is done goes through the process, otherwise you cannot get the full picture.


Jira Personal Taskboard

(Suggested third step: once a project is set to WIP, work with its team to break it down into tasks. Check that the tasks indeed conform to the vision and that the vision was properly understood by the team members. Follow-up. Build up on their vision as well. )


4. But how do I get control and confidence?

  • I want my Gantt chart - yes, here it is: the road-map
  • I want my project status reports - yes, here they are, the project metrics
  • I want my change requests - of course, let's prioritize for the next iteration.

Jira-provided burn-up chart

(Suggested fourth step: Follow-up the metrics and hold retrospectives. Present the metrics to the team (hold the mirror) and check how people are satisfied with the results of their own work. Brainstorm for how results can be improved - there are specific Agile practices for this).


5. Additional notes:


Jira is a great tool for several reasons:

  • With the help of the Agile plugin, it is very easy to understand how Agile works. 
  • As it is a flexible workflow-based tool, it can be extended much beyond the task / defect / project tracking. We have defined custom workflows and use the same plugins for repetitive business processes, like travel, recruitment and purchases. It comes very handy as it is a one-stop point for almost everything we do, decreasing email communication and providing visibility and tracking for almost every activity.
  • Although slightly difficult to customize for a fist time user, there is a lot of documentation out there, forums and people whom can be asked for support.


HAPPY MANAGING! :)

Monday, August 4, 2014

The Leader - A Perspective And An Aspirational Model

What the leader is and does:

  • Attention to details & depth of understanding - relentless pursuit of perfectness in any deliverable. Seeks for beauty, concision, simplicity, clarity. Is not satisfied with default answers and quickly spots assumptions, both in his own reasoning and in others.

  • Autonomy & entrepreneurship - finds work for himself and his team. Helps his team develop their autonomy, through clear roles and responsibilities. Holds people accountable, thus he is perceived as a delegative and empowering leader. He is self-motivated by growth and achievement and tries to secure a bigger impact for himself and for his team.

  • Integrity - speak the truth, even if inconvenient . Does not take shortcuts in his work, even if sometimes it means taking the difficult path. Does not procrastinate. Does not hide anything. Commits and assumes responsibility for the results, either good or bad. Does not seek to blame others.

  • Collaborates for results with his peers and his manager. Manages transparently and brings tough subjects to the table confidently. Looks people in the eyes. Negotiates for win-win. Recognizes his team interest.

  • Curious and always learning - sees every interaction as an option to learn something new. Passionate about at least one field related to game production (programming, game design, project management, art)

  • Exceptional communicator - synthesis / analysis skills. Presentation skills - both in writing and verbal. Clarity and vision.  Adapts to his / her audience, up, down and across. Is able to express complex ideas in simple terms. Does not use meaningless wording. Seeks for beauty, concision, simplicity, clarity. Understands and assumes what he says and brings value to the communication.

  • Finisher - is capable not only to propose and start new initiatives, but also prioritize among different ones. When committing to a course of action, drives it to completion.

  • Results driven - keeps things simple by focusing on clear, measurable results. Understands that "implementation matters" and does not trade integrity for short-term gains.

  • Energy, optimism, social skills - people feel energized when he is in the room. Instills positive energy in the team. Cheers people up. Is well educated and knows how to behave in social situations (including meetings). Inspires confidence and expertise.

  • Visionary, strategic thinker and tactician, all in one - is able to think long term, define goals, chart plans and inspire people. Is able to zoom-out and zoom-in and work at different levels of detail.

  • Inclusive leader - is humble and self-confident. Relies on people and understands roles and responsibilities. Manages to make people feel accountable for their own results. Respects people and their point of view. Is able to drive the discussion towards rational arguments. Is able to call meetings and bring difficult subjects to the team for finding solutions.

  • Disciplined pursuit of daily activities - the team knows what to expect from him, he has a set of rituals and a transparent schedule.  Always on time, always predictable. Holds 1:1s, retrospectives and is constantly for lookout on how to improve processes.

  • Systemic view - Fixes the root causes, not the symptoms.  Has a systemic view of cause & effect and understands feedback loops.

A leader might be:

  • Project management expert or agile practitioner

  • Passionate  about engineering, product, design, quality, management, …

  • Motivated by power/impact and/or achievement

  • People oriented or product oriented - the things that matters are: people feel they are led to victory, they feel the project is good for their careers and that there is always something new to learn and improve.

  • Good public speaker

What the leader is not:

  • People pleaser (up-down-across) - These leaders are reluctant to take unpopular decisions and be open. They create an unhealthy environment of low performance and comfort around them, based on social networks and office politics. Also, they tend to "buy" support instead of challenging the teams for results.

  • Syndicalist leader - These leaders will always create a rift between the team and the management, pushing towards antagonism instead of alignment.

  • Passive aggregator of information - the leader adds value to any communication, by being able to summarize it and lead meaningful discussions with his peers, managers and team. He understands the requirements, the language, is able to extract the substance and act as an independent hub of knowledge.

  • Tyrant - The opposite of syndicalist leader. Disregards his team and is willing to take easily decisions that  affect his direct reports (salaries, free days, maternity leaves cuts, etc… )  in the name of company profit.

  • Non-committal and non-responsible - discusses people instead of results. Invents problems and likes office drama. Comes to rescue when conflict appears. Does not take responsibility for failure.

  • In only for himself - people around him and their successes don’t matter. All he cares is his career or proving his point of view. Focused on showing how good he is and how the results depended solely on himself.

  • Opaque to others ideas (up / down / across)  - not be mistaken for self-confidence. Self-confidence means exactly the opposite: showing vulnerability, willingness to learn, involving other people, asking for opinions.

  • A leader in the vacuum - willing to sacrifice collaboration and integrity for quick wins. Does not care about the impact of his actions on the future, people and projects around him.


  • Complainer - sees problems and possible improvements but fails to take action to remedy them.

Saturday, May 17, 2014

My Dream of the Perfect Organization

Administration, HR, IT support teams:

Live and promote company values: Whenever you ask people, they know the core values and believe in them. They give answers in terms of values and are able to make decisions based on them. They use every means possible to share and disseminate processes, organization and culture. They are on a constant lookout for learning and sharing knowledge:

  • 1:1 with leads
  • workshops
  • repeat the messages on all occasions
  • make the language accessible and behavior oriented, not buzzwords
  • create and support values through messages outside the boundaries of the company: language of job ads, imagery in job ads, any external communication (emails to suppliers, candidates, etc).

Why culture and values are so important? Because there are many ways to do things, many organization types that are successful. Therefore it is needed to have a guideline in terms of what best practice fits the team and be able to choose through dialogue and introspection.

Message: We are smart rebels. We understand the organization and act not because we follow processes blindly but because we understand what we do. We can explain everything, we have initiative and we learn from our mistakes. 

Administration is there to support people: All requests are handled swiftly and transparently. Administration is an example of organization and aims of decreasing load from the product development team.

Everyone participates in marketing the organization and its projects:  

  • Follow-up on events and propose participation.
  • Encourage people to speak at conferences.
  • Organize in-studio events and develop a network of partners for media exchanges.
  • Follow-up on press releases, find ways to promotes ourselves, connect with bloggers and press.
  • Follow-up with teams and project managers and make sure they understand they build a company they like to work in. Each team should provide recommendations that pass the in-probation period. Teach and advocate this behavior. Ask what has been done and assist in planning next steps.
  • If a studio within a larger organization, develop a network within the company at large and be recognized as a major contributor.

Product development:


Managers / Project / Product Managers:

Understand they are part of the driving entrepreneurial force within the company and they involved in building an organization they wish to work for. Thus they need to plan, recruit, participate in talks about staff development, help define vision, develop their people. They listen to other opinions and they are able to identify communication deadlocks, which makes them excellent communicators. They are humble and smart.


  • Develop network within the company and outside.
  • Master project management. Provide plans, track, follow-up on objectives.
  • Define ways in which they can bring extra value and be competitive.
  • Measure everything - product performance and team performance.
  • Develop their core teams. 
  • Create an atmosphere of fun and focus within their teams. Pitch and advocate their projects. Excite their staff. Make sure their people constantly recommend profiles to join the company. Make this as a constant focus.
  • Own the projects beyond ship date. Follow, request data, understand the business of the projects and pitch improvements based on metrics and business aims.
  • Develop their staff and create succession plan for the ultimate goal of making sure they can subtract themselves from the production processes, to be able to scale and take on new developments safely. 
  • Understand cost constraints and lead their projects with business in mind. 

Technical / Team Leaders:


  • They are the driving force of innovation within our studio. 
  • They shape opinions. They don't complain but change what is not working. They suggest solutions to problems and encourage engineers to become better at what they do.
  • They are an example for the technical staff in terms of core skills, motivation and values.
  • They develop their staff, have courage to express themselves, look into the eyes of their people when they deliver news. They are not afraid of confrontation because they know the project is king and have the moral authority to expect results. They listenbut are not afraid to say no with compassion.
  • They work side by side with their teams and are an example of commitmentThey work harder than anyone else in the team.
  • They network with other professionals and are always on top of the latest trends and news. They always learn something new.

Associate project managers:


  • They only think about project management, process optimization and decreasing risk.
  • They are crazy about meeting goals and shipping on time and they cannot sleep when the project risk is increasing.
  • They are an example of lateral leadership, organization, clarity of expression and clarity of plans.
  • They have a deep understanding of everything in the project and can have a technical conversation about any feature they are supervising.
  • They propose solutions, feature cuts, replan, rebaseline and measure everything. 
  • They love metrics, Excel and Jira. 
  • They like clarity and can spot assumptions from a distance.
  • They make sure the project hits all the milestones, drive quality control, negotiate and set objectives for 3rd party service providers that fall under jurisdiction. They make sure the team has no blockers and they are the go-to persons for getting stuff done.
  • They manage the relation with everyone from the production team and any external provider. They recognize the Producer as the main decision maker in the project thus they make sure he is properly informed and he has all the data to take the proper course. They exercise their reporting and communication skills on the producer so that, when time comes, they are ready to move into his role.

Engineers: 


  • They are continuously developing themselves technically and on core skills. They read, prototype, communicate.
  • Engineers are crazy about automating boring activities. They are keen on making the world around them a better place and suggest solutions for the problems they spot.
  • They enjoy networking with other engineers and discuss technical problems and solutions.
  • They ask questions and are passionate about what they do.
  • They think 3-7 times before answering "it is impossible".
  • They don't complain, but suggest improvements. They seek improvement in themselves first.
  • They are the driving force that makes our company a better place for everyone and the root of all innovation.