Paradox of Prosperity: A Hit Mobile Game’s Initial Success Eroding Into Long-Term Paralysis- Part 2
Build a resilient and adaptable game service tooled for the long haul.
Production-led proactive measures to mitigate the impact paralysis from technical debt.
Practical guide to address issues early with the aims to prevent future challenges.
Enhance developer productivity and ensure sustainable development practices.
This series split into two sections, dives into a frequent challenge I have witnessed with top-grossing mobile game teams. In the first instalment, we’ll explore the elements that affect a game team’s capacity to fulfil delivery expectations and adaptability as they evolve from a nimble startup to a sophisticated service organisation. This second part outlines steps you can take as a producer to prepare your game for the future, guiding it through its growth from a global launch to large-scale live operations.
Part 2- Paralysis Mitigation
In part 1, we were told a cautionary tale. The story highlighted the journey of creating a hit mobile game, initially exhilarating but soon fraught with challenges due to early shortcuts. As the small team expanded, the simple codebase became a complex obstacle, slowing progress and stirring frustrations. Mounting technical debt and internal tensions underscored the tale’s lesson: the critical need for foresight and a sturdy foundation in game development, showing how initial choices affected future success and stability.
Here, we will explore steps producers can take to mitigate the impact of mounting technical debt. Mitigation involves taking steps to lessen the severity or impact of any potential problem, aiming for a proactive approach. Addressing issues early aims to prevent future challenges and ensure operations run smoothly and efficiently. This strategy is about safeguarding against adverse situations before they escalate, embodying the essence of being prepared and responsive.
How can a producer mitigate long-term paralysis?
It would be a wee bit naive to think you, as a producer on the line, could single-handedly solve all long-term growth problems. Decision-making is sometimes outside your bailiwick and often above your pay grade. Some may even argue this is solely an engineering leadership issue, while others don’t care or only have their eyes on the short-term prize.
Given those constraints, there are still proactive measures you, as a producer, can take that can have a material impact down the line. You can introduce small, manageable actions taken today that can save a great deal of time, effort, and resources in the future. By doing this, you create leverage. You become the fulcrum. With the right mindset and point of application, you can achieve seemingly impossible tasks.
“We cannot direct the wind, but we can adjust the sails.”
– Dolly Parton
Production-led proactive measures to mitigate long-term paralysis
Below, we outline seven tactics you can employ beginning today. These can be performed asynchronously and mainly in any order. Still, I would recommend leaning into the initial step, “Deeply engage with the development team,” first and foremost, as the benefits gained from this step will inform and influence the subsequent tactics.
Deeply engage with the development team
Attend technical meetings as an observer to learn.
Familiarise with technical jargon and processes.
Dive into technical documentation and developer comments.
Gain technical insight to understand team challenges.
Use knowledge to make informed decisions.
Act as an ambassador.
Engaging deeply with your development team is not just beneficial; it’s essential. You might not come from a tech background, but there’s no time like the present to dive in.
Consider attending meetings not just as a participant but as an observer. Be that fly on the wall. This approach allows you to listen, learn, and absorb knowledge almost by osmosis. It’s all about immersing yourself in the environment and picking up on the nuances of the technical world.
Start familiarising yourself with the lingo. Understand what source control is and how the build process unfolds. Learn about how your game gets built for distribution. Dive into the technical documentation and sift through developer comments. It’s like learning a new language; every bit you pick up will make communication smoother.
Here’s why this matters: Technical insight empowers you. It gives you a clearer perspective on the technical hurdles your team faces. This understanding enables you to bridge the gap between tech speak and the language of business stakeholders.
With this more profound technical knowledge, you’ll make decisions more confidently. You’ll weigh the pros and cons of technical decision-making with a more informed eye.
Perhaps most importantly, you become an ambassador—an advocate for your team among the non-tech savvy. It’s about translating complex tech concepts into actionable insights everyone can grasp.
Promote an improved developer experience
Guard developer flow state to boost productivity.
Minimise distractions to allow high-value work to flourish.
Address issues like subpar documentation and fast-paced innovation to avoid productivity loss.
Enhance feedback loop efficiency to fuel innovation and maintain high developer motivation.
Enhancing the developer experience is paramount to fostering innovation and efficiency. By promoting an environment that prioritises deep work, understanding of code, and efficient feedback loops, we pave the way for developers to boost their productivity by significant margins and engage in high-value work without the hindrance of common roadblocks.
Become the guardian of protecting your developer’s flow state. Creating a flow state boosts productivity significantly. Developers who carve out time for deep work see their productivity soar by as much as 50%. It’s all about keeping distractions at bay to allow high-value work to flourish. This focused approach enables developers to work more efficiently, producing quality work faster.
The impact of understanding code can’t be overstated, with a significant leap in perceived productivity linked to a solid grasp of code. But there are roadblocks. Issues like subpar documentation or the relentless pace of innovation can drag productivity down. Be ready to plough the way and clear obstructions.
Feedback loops also play a pivotal role. When code reviews are swift, innovation jumps. The efficiency of these feedback mechanisms keeps developers’ curiosity alight and their motivation high. This nurturing environment is a breeding ground for creativity. Keep an eye on the flow of feedback loops.
Investing in the developer experience pays off happier developers and tangible business benefits like heightened productivity, more innovation, and less technical debt.
Identify, document and communicate technical debt
Identity tech debt.
Document and categorise tech debt in your project management system as a backlog item.
Communicate new technical debts as accrued in status reports.
Produce monthly technical debt summary report with new debts accrued, actions are taken and a list of backup debts.
Include technical debt as part of the roadmap planning process.
Technical debt has a sneaky way of creeping into your game. Only with an open eye, active listening and attention to detail can you identify it. You cannot solely rely on your development partners for identification as they may be too close or lack the voice to call it out.
Start by documenting and categorising technical debt within your project management system, treating it like any other backlog item. This method lays down a structured framework for tracking technical debt and deciding which issues to tackle first. Be sure to tag accordingly, as this will aid in surfacing this work in the future.
Make it part of your routine to share updates on new technical debts as they come up, incorporating this information into your regular status reports. This strategy ensures that your team and stakeholders stay in the loop about the hurdles you’re currently facing. We know that not all the intended recipients read these reports, or those that do may not appreciate the debt accrual, but these records are crucial artefacts in the future when questions about these debts are bound to arise.
At the end of every month, put together a summary report on technical debt. This should cover any new debts that have cropped up, what actions you’ve taken to sort out existing ones, and a rundown of technical debts queued up for attention later on. Your development lead or their proxy should co-author this. This report should be widely distributed across the studio.
Remember to weave technical debt considerations into your roadmap planning. This way, you’ll ensure that reducing technical debt is as important as rolling out new features and enhancements. It’s all about balancing between meeting immediate demands and maintaining long-term stability.
By doing this, you create leverage. You become the fulcrum. With the right mindset and point of application, you can achieve seemingly impossible tasks.
Integrate technical debt into risk and issue management
Break down technical debts into risks.
Frame and classify technical debt as a risk.
Evaluate consequences of debts.
Calculate a risk score.
Prioritise risks based on their scores.
Appoint a risk owners.
Equip the owner with authority and capabilities.
Define a risk response strategy.
Continuously review risks.
Integrating technical debt into your risk and issue management process requires a nuanced approach. First, it’s essential to track technical debts in your backlog and reports and break them down into risks. Although technical debt is already an issue, framing it as a risk is important. This means communicating what could happen if the technical debt isn’t addressed by a particular time or milestone, highlighting the potential undesirable outcomes.
Technical debts should be classified into two categories: deliberate and inadvertent. This helps in understanding the nature of the debt and planning the management strategy accordingly. Once categorised, the next step is to evaluate the potential consequences of these debts. Traditionally, this involves assigning a likelihood and impact score, ranging from 1 to 5, to each risk. Multiplying these scores gives you a risk score, which helps prioritise the risks. Those with the highest scores are the ones you’ll want to monitor closely.
Appointing a risk owner is also a crucial step. This person, equipped with the necessary authority and capabilities, is responsible for defining and executing a risk response strategy. Strategies could include contingency plans, risk avoidance, or acceptance. Furthermore, it’s essential to continuously review these risks, as their impact, likelihood, and consequences can change over time.
For a deeper dive into managing risks effectively, consider exploring more resources on risk management.
Design work to balance functional and technical value
Tune into player feedback and market research.
Align game with player expectations.
Maintain robust code and architecture.
Allow for development development best practices.
Iterate quickly with prototypes.
Balance delivery and future-proofing.
Refactor for quality and maintenance.
Radicallty prioritise.
Tune into what your players genuinely desire. The core value of your game hinges on meeting these needs. If the gameplay doesn’t resonate with the players, the craftsmanship behind it loses its shine. Keep a close ear to the rail with a diligent review of user stories, playtest feedback and market research. This approach ensures you’re always aligned with player expectations.
However, don’t let the technical side play second fiddle. Robust code, SOLID design principles, good architecture, and streamlined processes are the backbone of consistent functional delivery. Embrace test-driven development (TDD), continuous integration (CI), and pair programming to uphold your game’s technical integrity. Give your developers the time to develop these artefacts and best practices.
Emphasise the power of quick iteration through spikes, prototypes and short development cycles. This strategy allows you to refine the game’s features and underlying tech based on playtest feedback. Striking the right balance between immediate delivery and future-proofing is critical.
Never underestimate the value of refactoring. It’s a strategic move to enhance technical quality without hindering the delivery of new features. By refining the codebase bit by bit, you ensure the game remains adaptable and easy to maintain.
Remember, not every feature or technical tweak is equally essential. Employ prioritisation tools such as the MoSCoW method or Value vs. Effort matrices to distinguish between the urgent and the postponable. Effective prioritising means continually focusing on what truly adds value.
Include knowledge sharing and continuity in the work
Value documentation as much as working software.
Promote knowledge sharing.
Turn code reviews into collaborative learning.
Integrate documentation into the development workflow.
Include learning and knoledge sharing in retros.
Foster a mentorship culture.
Organise ‘Documentation Hackathons’.
Navigating tech debt while keeping the team agile and productive can be quite the balancing act, but it’s manageable with a strategic approach. You may value working software over comprehensive documentation, but the software must be comprehensively documented to survive as an enterprise. Knowledge sharing and continuity are pivotal in this quest, ensuring that your team avoids the pitfalls of tech debt and thrives.
Schedule informal sessions to share insights or recent learnings about new technologies, methodologies, or even post-mortems of recent challenges. This promotes a learning culture and helps identify potential areas of improvement or innovation within your projects.
Turn code reviews into a collaborative learning experience rather than just a gatekeeping step. Encourage team members to explain their thought processes, discuss alternative approaches, and share insights on best practices. This fosters a sense of collective ownership and helps spread valuable knowledge across the team.
Make documentation part of the development process, not an afterthought. Encourage the team to maintain updated documentation for their work, including the “how” and the “why” behind code decisions. This can be invaluable for new team members or when revisiting older projects.
During retrospectives, include a segment dedicated to learning and knowledge sharing. Discuss what went well or didn’t and highlight any new knowledge gained, how it was applied, and how it could be beneficial moving forward.
Establish a mentorship culture within the team where more experienced developers can guide juniors. This relationship should go beyond navigating the codebase to include best practices, career advice, and broader knowledge sharing.
Organise’ Documentation Hackathons’. Teams rarely focus intensely on documentation. By setting aside dedicated time for updating, improving, or even creating documentation in a hackathon-style event, teams can transform what is often seen as a tedious task into a fun and engaging activity. This also rapidly improves the accessibility and quality of project documentation, aiding knowledge sharing and continuity.
Evangelise continuous improvement mindset
Embrace small daily improvements.
Involve every team member in improvement efforts.
Lead by example in seeking feedback and making changes.
Celebrate team improvements publicly.
Foster a feedback culture for continuous growth.
You can foster a culture of continuous improvement, enhance productivity, and mitigate long-term paralysis in your production process. Remember, even small actions taken today can lead to significant benefits.
Improvement doesn’t have to be massive or groundbreaking; even small, daily changes can lead to significant benefits over time. It encourages the notion that there’s always room for improvement in every aspect of the development process.
A continuous improvement mindset strongly emphasises the involvement of every team member in the improvement process. Those directly involved with the work are believed to have the best insight into how processes can be improved. Many ideas from others, especially early on, may not be great. Understanding this in a culture of continuous improvement is critical. Valuing all contributions while quickly sifting through less promising ones without attachment fosters innovation. This approach raises the chances of discovering impactful ideas.
The first step is to walk the walk. Show your team that you’re committed to continuous improvement by actively seeking feedback, implementing changes, and transparently sharing your learnings. When your team sees you embracing improvement, they’re more likely to follow suit.
Recognise and celebrate instances where team members have improved, whether by completing tasks more efficiently, finding innovative solutions, or collaborating effectively. Publicly acknowledging these achievements reinforces the value of continuous improvement.
Create a culture where giving and receiving feedback is encouraged and valued. This can be done through peer reviews, one-on-one discussions, or anonymous feedback. Emphasise the importance of constructive criticism in driving improvement.
Conclusion
As we wrap up this insightful journey into the heart of proactive production strategies, it’s clear that mitigating the effects of technical debt is more than a task; it’s an ongoing commitment. By deeply engaging with your development team, promoting a culture of knowledge sharing, and embracing a mindset of continuous improvement, you, as a producer, can steer your project towards sustainability and success.
Remember that the journey from a global launch to managing large-scale live operations is filled with challenges. Still, with the right approach and a keen eye on the present and future, you can confidently navigate them. This guide is more than a toolkit; it’s a beacon for those willing to take the lead in forging innovative and sustainable paths.