29
.
07
.
2024
31
.
07
.
2024
Project Management
Business

Software development planning - how to avoid all the basic pitfalls and achieve your goals for once, part 2/2

Wiktor De Witte
Project Manager

The typical pitfalls and how to prepare for them

Part one here.

OK so now we know from part 1 - planning is hard and people can act against the best interest of the project.
What should we plan then? To what extent?

A Solid Plan by Kotarbiński

First off let us keep in mind features and qualities of a good plan.
There are 3 groups of qualities - Accuracy, Logical Framing and Utility Values.

Accuracy

  • Purposefulness - are there adequate means mentioned to reach the goal
  • Perspectiveness - Is it a long-term plan or a short-term patchworking?
  • Strategicality - Not too detailed so there is wiggle room

Logical Framing

  • Rationality - based on reality
  • Completeness - leaving no gaps nor ambiguities
  • Internal Consistency - so it is not contradictory in its different parts

Utility Values

  • feasibility – consistency with earned experience, no fantasising
  • operability – handiness and workability
  • flexibility – a plan that is flexible, malleable, agile, and can be adjusted in the event of unpredictable circumstances,
  • punctuality - so it can be time-bound.
  • effectiveness – so the desired outcome is certain

This is what constitutes a good plan. I know that every reader of this article can bring up a plan from their past ( or present and future, matter of fact ) that lacked one or more of these qualities and resulted in ( or will result in ) a failure.

Some of those mistakes were made because the planners lack experience and knowledge about planning and some of them were made deliberately because of the negative stakeholders mentioned beforehand. The tool above is a good enough checklist to quickly verify whether the plan is success or failure oriented.

Let me now dig into how we can make a solid plan for problems mentioned throughout the article.

  • Use already gathered knowledge on how to tame projects and products instead of depending on your instinct or lying to yourself that it will be fine.
  • Consider using already existing IT project management methods and methodologies and apply it to your project.
  • Assess how well you know the answer to “ What are we building?” and “How well do we know how to do it” and choose a corresponding method of decision making in the project.
  • Pick a project management method or methodology that suits the level of uncertainty and learn about its advantages and disadvantages.

The solid plan could end right here as those methodologies are usually well thought through and offer solutions to usual problems. However bringing two opposites together and creating a hybrid model with pros only is a thought attractive enough for many.

The General Planning Pitfalls & what to do about them.

  • Complication of complexity

As mentioned before, there are problems rooting in complexity of the software.

1. The increasing marginal cost of system maintenance and development - The pitfall that seems obvious and yet many fall into is to concept a non-maintainable or infeasible system and try to build it. It is of course a very broad topic and there are personas/stakeholders and coteries ( Death of Thousand Cuts coterie) interested in making others fall into those pitfalls and suck out money from the budget, this is why it is hard to be avoided without proper knowledge and experience as the goal might be presented as unambitious instead of infeasible. The way to avoid that pitfall is by applying the knowledge of IT project management and starting by creating simple systems that can grow overtime as its value and merits are verified in the real world. To be able to do that, one must think in phases and start off with Proof of Concept, Prototype, MVP and orientation of software development around the short feedback cycle of the end user.

2. Strictness of code language as a problem is big because it can also be downplayed by incompetent stakeholders as not as relevant as timing of the product. It is a pleasant simplification to trade off quality for better time-to-market and worry about quality later. It could be tamed from both sides - quality management that should tame lazy coding and the lazy scope requirements. For that proper quality assurance and quality control techniques should be applied - checklists, tests, scope construction templates, task creation templates, UAT, probing, Control Charts.

3. People involvement is probably the most problematic aspect as there is no permanent solution in this arms race. People and stakeholders have to be monitored as a part of stakeholder management activities in the project. I have linked above an interesting cheatsheet of archetypes that one should look for during the IT project turn of events.

  • The chaos

Chaos in the project is an indirect consequence of not managing the project enough and can be a good idea from a perspective of an uneducated stakeholder that does not care for project success and can be kept in line only by following sets of rules that apply to the type of the situation the project is in - The Cynefin Matrix is a northern star to follow. Very chaotic IT projects can be tamed with short increments of value and a plan to bring about a much more organised approach of project execution by tighter management of project elements.

  • The perspective

The project elements have to be identified and there are decisions to be made how they are going to be managed. As with every other element of this article, there will be narrations to put those discussions off or out by people who feed off bad projects.
The way to go with it is to have honest discussions with key stakeholders about the project elements/knowledge areas and agree to methods and techniques to tame them. Project management methodologies also come in handy but sometimes work as a repellent for stakeholders as they fear that the methods those methodologies offer might be improper or are afraid of structure in the project.

  • The people

Understanding stakeholder management and difficult people is the starting point and one should be able to anticipate the reluctance of different stakeholders against planning and have counter arguments already… planned to convince them to plan nevertheless.

  • Calendar Thinking vs Let’s Occupy Our Hands With Something Thinking

Understanding the difference of perspectives of different stakeholders and their approach towards the calendar and other project constraints is crucial and being able to explain expectations of one group to another. Psychology stuff.

  • Unplanned work garbage bins

A big problem that can be countered differently but, in my experience, only a long-term approach with multiple methods applied is a working one. The recipe is to:

1. Make stakeholders understand negative effects of poorly planned work on examples (data, real-life cases, predictions on numbers).

2. Remind them about it from time to time as they plan to act out of line

3. Use a method/methodology that incorporates techniques to prevent scope creep or influx of poor scope requirements - from basic requirement templates to stricter change requests or functionality request procedures.

  • The problem of complexity

The only working way to fight with dying or unpassed knowledge is to remember about Stacey Matrix so that there are optimal and suboptimal ways to manage a project in a given environment, propagate that knowledge, agree with key stakeholders on project methodology,  inform people about why we use certain techniques, why there is no silver bullet and why there will never be, the pros and cons of every method.

  • The Agile

I know it sounds hard but learn to detect “Agile” bullshit - any type of wishful thinking or presenting solutions without regard to their shortcomings should be an important cue.

Here’s a cheat sheet about the above.

Problem Problem consequences Solution
Cost of complex systems and their shortsightedness • High or horrendous costs of maintenance and development
• High turnover of employees
• Low predictability
• Iterative method of project delivery
• Prototyping
• Education of stakeholders on the roots of the problem and why the methods above could solve our problems
Strictness and discipline of code language • High or horrendous costs of maintenance and development
• High turnover of employees
• High failure rate of software
• Proper quality management techniques
• Education of stakeholders on the roots of the problem and importance of quality management
People involvement • People drama in project
• Stakeholder drama in project
• Stakeholders monitoring
• Education of stakeholders on importance of stakeholders management
Project Chaos • Complete failure to formulate and meet project constraints • Proper project management techniques given the circumstances
• Using Cynefin Matrix to assess situation
• Education of stakeholders on importance of applying proper PM techniques
The Project Perspective • Semi-conscious or unconscious tradeoffs of project constraints
•  Complete failure to formulate and meet project constraints
• Application of project management methods to project elements and areas
• Education of stakeholders on importance of managing project elements and areas
Calendar Thinking • Semi-conscious or unconscious tradeoffs of triple constraint constraints
• People drama in project
• Incentives to formulate coteries around own type of thinking
• Education of stakeholders on different perspectives on project constraints
The problem of complexity of the project = failure to apply proper management and decision making methods to the project • Everything Everywhere All At Once - infliction of pain to all stakeholders by erasing all attempts at setting up reasonable decision making process • Remember about Stacey Matrix
• Education of stakeholders on different perspectives on project constraints
• Agreeing with key stakeholders on project methodology
• Informing people about why a certain technique is applied, why no silver bullet ever occurs and that the methods have pros and cons
The Agile • Cargo Culting resulting in application or misapplication of methods to an environment that doesn’t benefit from them
• Frustration of stakeholders
• Failure to meet project constraints if any formulated
• Filter Agile BS

How to prepare for Stakeholder management oriented towards planning work

One must start with identifying who will stir the pot in the project and identify their goals and expectations. By recapitulation - different stakeholders have different interests and thus will have different goals and expectations. Fortunately, it is possible to derive their approach towards planning as an activity and forecast their actions on it.
Project managers should formulate coalitions ( and break off other coalitions and coteries )  to be able to drive off any attempts at sabotaging the planning process.

Let’s take a look at default IT project stakeholders, their default interests, their approach towards the planning and what can we do about it - the table is enriched with difficult people in IT projects.

The Planning Pitfalls by Stakeholders

Stakeholder Goals and expectations Approach towards planning Potential actions PM Actions
Customer / User • High quality and effectiveness of the end product
• Punctuality of product realisation
Happy to contribute but rarely engaged in planning activities due to other interests to attend to. Emphasizing quality and punctuality im preestablished communication channels Alliance formulation, engagement
Sponsor • Accordance with agreed project constraints Not happy to contribute, would prefer not to be engaged and instead be informed about planning progress and constraints. Proposing or agreeing to trade-offs to ensure better project constraints outcome ( time, budget, scope). Engagement
Regulator • Law compliance Neutral as non compliance with law will be sanctioned Law compliance audit, sanctions Cooperation, Adaptation
Subject Matter Expert • Effective problem formulation
• Clear responsibility scheme
• Attractive salary
Various - dependant on responsibility scheme. Could favour self-interest or project interest. Favouring planning to ensure project stability or neutral / negative to benefit off constant subject Engagement, influence
Executive • Effective project realisation according to organisational goals
• Strengthening own position
• Increasing prestige
• Salary increase
Positive in case of clear causation of planning and increased success of project. If not - neutral or negative. Project oversight, pressure to plan or not to plan Alliance formulation, cooperation, influence
BA • Stable requirements
• Realistic schedule
• Attractive salary
Various - dependant on responsibility scheme. Could favour self-interest or project interest. Favouring planning to ensure project stability or neutral / negative to benefit off constant subject, becoming a difficult IT project persona Engagement, influence
Product/Project Manager • Effective project realisation
• Suppression of conflicts and friction
• Career development
Positive in almost all cases except very toxic project environments becoming a difficult IT project persona N/A
Helpdesk • Clear work procedures
• Proper tools equipment
• Fair compensation and good work hygiene
Positive as not interested in other constraints except quality Offering know-how and subject matter experience,becoming a difficult IT project persona Engagement, influence
System Admin • High quality of the product ensuring stable work environment
• Fair compensation and good work hygiene
Positive as not interested in other constraints except quality Offering know-how and subject matter experience, becoming a difficult IT project persona Engagement, influence
Supplier • Favourable cooperation constraints - price, schedule etc. Positive if affects their cooperation constraints, neutral if not Know-how offered during planning or neutrality Engagement, influence
Internal Users • High quality of the product ensuring stable work environment Positive as not interested in other constraints except quality Offering know-how and subject matter experience Engagement, influence
Developer • Realistic schedule and tasks
• Effective cooperation with suppliers and contractors
• Fair compensation and good work hygiene
• Effective project realisation
• Suppression of conflicts and friction
• Career development
Positive if clear criteria of success and good organisational system present Alliance and coterie formulation, becoming a difficult IT project persona Stakeholder management oriented towards clear criteria of project success and organisational system, difficult IT project persona countermeasures
Tester • Realistic schedule and tasks
• Effective cooperation with suppliers and contractors
• Fair compensation and good work hygiene
• Effective project realisation
• Suppression of conflicts and friction
• Career development
Positive if clear criteria of success and good organisational system present Alliance and coterie formulation, becoming a difficult IT project persona Stakeholder management oriented towards clear criteria of project success and organisational system, difficult IT project persona countermeasures
Trainer • High quality of the product ensuring stable work environment
• Fair compensation and good work hygiene
• Effective project realisation
• Suppression of conflicts and friction
• Career development
Positive if clear criteria of success and good organisational system present Alliance and coterie formulation, becoming a difficult IT project persona Stakeholder management oriented towards clear criteria of project success and organisational system, difficult IT project persona countermeasures

Based on Bartosz Grucza’s Zarządzanie interesariuszami projektu - pages 308-321.

And here it is. You can use this knowledge to plan your own projects and be able to counteract planning obstructionists. I hope you find it helpful.

Wiktor De Witte
Project Manager

Check my Twitter

Check my Linkedin

Did you like it? 

Sign up To VIsuality newsletter

READ ALSO

How to become a Ruby Certified Programmer Title image

How to become a Ruby Certified Programmer

14
.
11
.
2023
Michał Łęcicki
Ruby
Visuality
Vector Search in Ruby - Paweł Strzałkowski

Vector Search in Ruby

17
.
03
.
2024
Paweł Strzałkowski
ChatGPT
Embeddings
Postgresql
Ruby
Ruby on Rails
LLM Embeddings in Ruby - Paweł Strzałkowski

LLM Embeddings in Ruby

17
.
03
.
2024
Paweł Strzałkowski
Ruby
LLM
Embeddings
ChatGPT
Ollama
Handling Errors in Concurrent Ruby, Michał Łęcicki

Handling Errors in Concurrent Ruby

14
.
11
.
2023
Michał Łęcicki
Ruby
Ruby on Rails
Tutorial
Recap of Friendly.rb 2024 conference

Insights and Inspiration from Friendly.rb: A Ruby Conference Recap

02
.
10
.
2024
Kaja Witek
Conferences
Ruby on Rails

Covering indexes - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Ruby on Rails
Postgresql
Backend
Ula Sołogub - SQL Injection in Ruby on Rails

The Deadly Sins in RoR security - SQL Injection

14
.
11
.
2023
Urszula Sołogub
Backend
Ruby on Rails
Software
Michal - Highlights from Ruby Unconf 2024

Highlights from Ruby Unconf 2024

14
.
11
.
2023
Michał Łęcicki
Conferences
Visuality
Cezary Kłos - Optimizing Cloud Infrastructure by $40 000 Annually

Optimizing Cloud Infrastructure by $40 000 Annually

14
.
11
.
2023
Cezary Kłos
Backend
Ruby on Rails

Smooth Concurrent Updates with Hotwire Stimulus

14
.
11
.
2023
Michał Łęcicki
Hotwire
Ruby on Rails
Software
Tutorial

Freelancers vs Software house

02
.
10
.
2024
Michał Krochecki
Visuality
Business

Table partitioning in Rails, part 2 - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Backend
Postgresql
Ruby on Rails

N+1 in Ruby on Rails

14
.
11
.
2023
Katarzyna Melon-Markowska
Ruby on Rails
Ruby
Backend

Turbo Streams and current user

29
.
11
.
2023
Mateusz Bilski
Hotwire
Ruby on Rails
Backend
Frontend

Showing progress of background jobs with Turbo

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Ruby
Hotwire
Frontend
Backend

Table partitioning in Rails, part 1 - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Backend
Ruby on Rails

Table partitioning types - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Backend

Indexing partitioned table - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Backend
Postgresql
SQL Views in Ruby on Rails

SQL views in Ruby on Rails

14
.
11
.
2023
Jan Grela
Backend
Ruby
Ruby on Rails
Postgresql
Design your bathroom in React

Design your bathroom in React

14
.
11
.
2023
Bartosz Bazański
Frontend
React
Lazy Attributes in Ruby - Krzysztof Wawer

Lazy attributes in Ruby

14
.
11
.
2023
Krzysztof Wawer
Ruby
Software

Exporting CSV files using COPY - Postgres Stories

14
.
11
.
2023
Jarosław Kowalewski
Postgresql
Ruby
Ruby on Rails
Michał Łęcicki - From Celluloid to Concurrent Ruby

From Celluloid to Concurrent Ruby: Practical Examples Of Multithreading Calls

14
.
11
.
2023
Michał Łęcicki
Backend
Ruby
Ruby on Rails
Software