The document discusses whether to refactor code and the process for doing so. It advises being objective about whether refactoring will provide benefits or cause missed deadlines. It says to double and triple check facts before deciding and, if refactoring, to start a new Sprint 0 phase to analyze causes and revamp the roadmap rather than immediately beginning development.
2. Should I Refactor?!?
➢ Objectivity is key!!!
➢ Will refactoring provide benefits in time, HC, money, etc… ?
➢ Will refactoring provide you with future optimizations?
➢ Will you miss milestones and deadlines if you do not refactor?
➢ Etc, etc...
3. Am I Absolutely Sure?
➢ Double Check your facts and findings!
➢ Triple check your facts!
➢ Make a decision!
4. What now?
➢ What do I do when I decide to refactor?
➢ DO NOT jump into another dev cycle!!!
➢ RESPECT CEREMONY!!!!!!
➢ Start a new Sprint 0
➢ Only start dev AFTER your new sprint 0
5. Your new Sprint 0
➢ You DO NOT need to start completely from scratch
➢ Analyze what caused the refactoring first
➢ If branching decisions need to be made
➢ Revamp your roadmap
➢ LAUNCH DEV!!!
Notas do Editor
This is a presentation on things I have learned about refactoring in the game development industry.
Objectivity is key!!!
The decision to refactor should not be taken lightly
Refactoring is a huge undertaking
Will refactoring provide benefits in time, HC, money, etc… ?
Will this decision help or hinder any of the following;
time
Human Capital
Money expenditures
any other major development process
Will refactoring provide you with future optimizations?
If you refactor will it allow you to expedite development in the future?
Will this provide you with the ability to use additional tools not considered before?
Will you miss milestones and deadlines if you do not refactor?
Will you not meet your obligations if you do not refactor?
If you do refactor and you achieve your deadlines, will it fundamentally and/or negatively impact your end product?
Etc, etc…
There are many questions you should ask yourself here, too many to go over in one presentation, but the importance is to be honest and objective about your decision(s)
Double Check your facts and findings!
Once you have analyzed the situation;
Make sure that you have not missed anything
Make sure your findings are right
Make sure you have been truly objective
Triple check your facts and findings!
Once you have double checked your facts and findings;
Repeat the process again!
The decision to refactor cannot be a mistake.
This means that you MUST ensure it is correct!
Make a decision!
Do I refactor or not?
What do I do when I decide to refactor?
So you have decided to refactor, what now?
DO NOT jump into another dev cycle!!!
One of the worst mistakes most teams make, both in refactoring and in normal “Agile” is just jumping into dev.
DO NOT DO THIS!!!!
RESPECT CEREMONY!!!!!!
Ceremony exists for a reason!
To ignore it is means failure!
I get it, dev is fun. Releasing your vision is exciting. Making money is awesome!
You usually only get one shot to impress your end user.
If you fail at this, it becomes exponentially hard to win them back.
Start a new Sprint 0
Be objective about this process
Do not end it prematurely
This can also be a double edged sword
As such, do not fall into analysis paralysis
This is a fine line to walk and you must be careful about it
Only start dev AFTER your new sprint 0
You DO NOT need to start completely from scratch
You don't need to do a Sprint 0 for every aspect of your project
Analyze what caused the refactoring first
Start by focusing on what caused the refactoring in the first place
What about it needs to be changed?
Can any of the existing work be salvaged?
Does this change your pipelines?
Have you updated ALL of your documentation to reflect this change?
If branching decisions need to be made
Analyzing your primary refactor may lead to your need to revisit one, all and/or more of the following;
Aspects
Processes
Tech
Documentation
Etc…
Revamp your roadmap
DO NOT forget to revamp your roadmap once you have completed all of your other Sprint 0 refactoring!
LAUNCH DEV!!!
Only AFTER your Sprint 0 is fully completed, you may launch Development!