Controlled chaos methodology for project development
Nesvit Bogdan, COO of Crystal Clear Soft, shared with App2Top.ru with his material about the essence of chaos management within the management of a gaming company.
To date, the CIS game dev has become accustomed to focusing on Western models of building work processes, on Western models of company development, and on everything Western in general. But do not forget that we have a completely different mentality, and some methods, principles and rules simply do not work in our difficult conditions, or require adaptation. Similar trends are relevant in approaches to project development. And our own experience suggests that in many cases such modifications have the right to exist.
That is why a separate term gradually emerged – controlled chaos. This technique is hybrid and its main goal is to effectively build the company’s work in the conditions of the CIS market.
In reality, multiprojection is possible, and it is quite realistic to manage the chaos resulting from a multitude of tasks on a multitude of projects. Of course, “controlled chaos” is an original term that intersects with Western methods. The effectiveness of such a workflow depends on many circumstances, but our own practice and communication with colleagues show that many companies do not have the same scale of tasks that involve a strict division of responsibilities and a clear matrix hierarchy.
In a standard situation, a company has a pool of projects that it is working on. At the same time, each project has its own dedicated development team, which allows us to talk about a matrix approach to development. What the project management procedures will be, whether it is the PMI, PMI2 or PRINCE2 methodology, this is already a secondary question. Here everything depends on the specifics of the company’s work and on the specifics of its needs.
Situations in which traditional resource allocation is effective
1. The project is large or a big bet is made on the project
If a big bet is made on a project, or it is some kind of MMO project, and a huge budget is spent on it, it makes no sense to disperse forces into smaller projects. All the necessary forces should be concentrated on it as a priority task. Every minute should be spent for the benefit of this particular project, because your future directly depends on its success. You have no right to make a mistake.
Only when the company has profitable projects, and each new game is a planned development, you can afford to move away from the canons and in practice understand whether the new working method is effective for you in order to successfully apply it in the future.
2. The company has stable financing and there is no incentive to change
The derivative of the first point. When there is money, many people prefer not to follow the path of change, because any changes for better or worse invariably involve problems and inconveniences. Why optimize the company’s work or start saving if everything is fine anyway? You won’t stop driving your car if earnings allow? But if gasoline suddenly rises in price by 2 times, and earnings decrease, then the issue of cost optimization will become acute. And it doesn’t matter that by using a different methodology for building workflows, you can reduce the budget, because the budget is not limited, and no one needs an additional headache either. Usually, external circumstances push for changes, and it is they that stimulate the search for their own path.
3. The pool of projects is strictly limited by their small number
Let’s assume that the company is doing 1-2 projects and it has no new ones, or they will be done strictly after the first two projects. The situation itself does not push us to change anything. Tasks are set only for these projects, all forces are concentrated on them, there is no need to optimize anything, because the freed resources have nowhere to go.
4. The company specializes in large hardcore projects
This is also one of the derivatives of the first paragraph, but with a small caveat. In the first point, your project is your last bet, after which you either became a millionaire or left with empty pockets. And if you already have successful large projects or permanent funding, and large projects are put on stream (for example, MMO or large online casinos), then a theoretical failure will only be an annoying failure. In this situation, the projects themselves assume the allocation of permanent resources and large time costs for them, regardless of the final result.
5. The company is engaged in outsourcing or outstaff development
If a developer is allocated for outsourcing or outstaff development, at this time he is a priori inviolable for inclusion in other projects, including the development of his own. At least, as one of the companies engaged in outsourcing development, we practice this approach in working with our partners. This is an ordinary corporate ethics, a matter of reputation and prestige of the company. Naturally, it is possible and necessary to plan the loading of the developer after the end of the outsourcing work, but in no case should he be distracted from his current tasks.
In general, after reading it, it seems that there are no disadvantages in all this strict distribution of responsibilities and strict division of people into projects. The company has several projects, each project has its own team under the control of its project manager, there are clear responsibilities and clear responsibilities, everyone is happy. But, in fact, there are disadvantages.
Now that we have figured out in which situations it is effective to use standard workflow management schemes, it is logical to talk about situations in which such solutions may not be effective.
Situations in which controlled chaos is effective
1. Multiprojectness is the fundamental strategy of the company’s development
In one of his many reports, the CEO & Founder of our company, Mikhail Kharkov, talked about what multiproject is, what its advantages and disadvantages are. You can watch it on the main page of CCSoft, or on the youtube channel of CCSoft. He considered multiprojectness from the point of view of the company’s global development strategy, and in this article we are in close contact with multiprojectness and consider the methodology for building work processes and managing a company with multiprojectness.
2. The company develops its own projects
When a company develops its own projects, its hands are not bound by external obligations. She sets priorities for projects and tasks herself, builds the work process taking into account her own characteristics and internal circumstances. All this allows you to clearly plan your work, make it predictable and easy to analyze.
Roughly speaking, inside yourself you can do whatever your heart desires, as long as it brings the result you need. If you work for outsourcing, a lot depends on the customer, which breaks the plans and obliges you to build the development process in a way that is convenient for a particular customer.
3. The company specializes in casual or midcore projects
This point is not an axiom, but it will significantly facilitate the implementation of the methodology under consideration.
Hardcore projects are complex in themselves, so they are more difficult to predict and more difficult to operate with. Much more complicated. But casual projects are easier to predict, easier to plan, easier to develop. Accordingly, the risks associated with incorrect planning of the development process are reduced. You have a clearer picture of the distribution of resources at a particular stage, which allows you to calculate with great accuracy the time periods for which resources can be used on other tasks.
After understanding the situations in which controlled chaos can be applied, it’s time to talk about the methodology of controlled chaos itself. Of course, it is necessary not only to understand the essence of this methodology, but also to know in advance all its advantages, risks, features of implementation and use. Only after evaluating the full package of information can we conclude whether it suits you, how it should work and how to come to it.
What is the essence of controlled chaos?
1. Allows you to launch multiple projects at the same time with minimal resource costs at the start of work
Naturally, you will still connect the necessary resources, or you will gain the required number of hours in total. There’s no getting away from it. But you will do it when it is convenient for you, and not at the start of work! That is, the key idea is that in order to launch a project, it is not necessary to immediately involve a full-fledged team. You can first start making concept art, for example, or immediately draw all the UI windows, and then do the code. And you can generally use ready-made game engines to redesign or release a new project based on the old one. There are a lot of options.
2. Allows you to optimize resources as much as possible
In the company, every employee is busy with something, there is no temporary downtime and no relaxation. Even if you have a small startup, you can still develop ahead of time, making preparations for new projects.
3. Allows you to quickly transfer resources from project to project
Often the same outsourcing work cannot be planned (you never know the time at which a potential customer will place an order), and it does not start quickly (you never know when the customer will make the final decision and give the go-ahead to start development). That is why the start of such work is quite chaotic and you need to adjust to it (we do not take into account cases of planned outsourcing, i.e. long and stable cooperation, when everything is already predictable and understandable). And in order to properly start/stop development processes, you must be ready for flexibility.
4. There is a readiness for any development
A derivative of the previous paragraph. In fact, this technique is relevant when a company does not stop only on its projects or outsourcing, but develops in all directions, increasing its income from various sources.
5. Allows you to quickly expand your business
If you do more projects, gradually you have more capital turnover, respectively, there are more people and more finances at your disposal. All this allows us to talk about a significant expansion of the business in a relatively short time.
6. Allows you to vary the direction of the company’s development
This is great if the company has a clear understanding of what it is striving for and which way it is going. However, in today’s conditions of fierce competition, financial crises and a whole host of other problems, external factors can always break plans or force you to reconsider them. Therefore, it is very important to be ready for quick decisions on changing the direction of development or quick adjustments of plans. Adapting to modern trends, you will be able to survive in any conditions, or increase the dynamics of your growth.
Advantages of Controlled Chaos
1. Saving development resources
When a developer works in one project, he inevitably has temporary downtime associated with waiting for progress from another specialist (for example, a programmer is waiting for graphics from a designer). If the developer switches between projects, it saves money due to the lack of downtime.
2. Competent allocation of resources
By allocating resources, you always have the opportunity to optimize them. Let’s say you don’t always need a strong artist to draw UI in casual and midcore projects. It is often enough to plant a qualified UI artist for two or three weeks, who will draw the concept of the main interfaces and 2-3 secondary windows, and then replace him with a junior or more another designer (“tech guy”) who does not draw concepts, but does well methodical tedious work like assembling interfaces based on ready-made concepts and layouts.
3. Lower budget for the development of all projects
A fairly obvious point: when resources are not idle, the budget for project development is automatically reduced.
4. Cost-effective offers for partners
Thanks to the competent use of resources (resource planning and their smart allocation), you can not only reduce budgets for your own projects, but also make economically very profitable offers for outsourcing partners, as well as launch profitable joint projects.
5. The ability to launch more projects
If you have a free resource, why not start doing a new job? For example, if you have free designers, start drawing concepts for new projects. And, as already mentioned, it is not necessary to fully launch the project! You can, for example, first draw the graphics, and after two months start making code. Or vice versa, first do the code on the plugs, and then involve designers in the development process.
6. Simplified planning of the company’s work
When you have potentially new projects identified in advance, it becomes possible to plan the company’s work more competently in advance and have a plan for its development. When you clearly understand what developments you have (for example, three months ago you drew a concept for a potentially new project or you have a ready-made engine for a HOG project), it is much easier to decide on future plans, respectively, it is much easier to build a company development strategy and look to the future. In addition, having clear plans has a positive effect on employees, because they are confident in the future and feel more comfortable.
7. Professional development of employees and the company as a whole, by gaining work experience in all genres and directions
A very important point. The problem with many developers is that they have been sitting on 1-2 projects for years, so their work experience is quite limited. If the developer constantly switches between projects, he gets more experience working in different projects, genres and directions. And it is important to observe the adequacy of the degree of transition between projects: a developer should not “jump” back and forth over a dozen projects; he should “walk” between two or three projects, and as soon as one ends, another is given to him instead. That is, the total pool of its tasks should be limited to such a number that gives a certain load on different tasks. But the stack of his tasks should not be unbearable, and switching between projects should not take a lot of time and moral strength. At first it will be difficult, but gradually developers get used to this mode of work. It’s just a matter of habit.
8. The ability to “plug” weaknesses in the company’s team
There is a problem of a shortage of personnel and a lack of their qualifications in any company. You always want to have the perfect team, but it’s not always possible. Therefore, you need to be able to eliminate your shortcomings, if they are present. Let’s say if you have only one concept artist, it would be stupid to keep him on one project, because other projects would be done more slowly, or would suffer in quality. Therefore, you can try to use it outside of projects according to a simple scheme: a conceptual artist makes concepts, switches to the next project, and his work is “picked up” by another artist who will be able to finalize art based on a ready-made sketch.
Factors that allow you to manage chaos
1. Clear planning of projects and resources for them
In order to reduce the risks associated with the terms of work and the dates of adding/subtracting resources on projects, roadmaps by deadlines, by people and by tasks are vital. Understanding on what date you need certain resources, and for how long they will be used, it is much easier to plan the whole work as a whole.
2. Timely completion of tasks at all stages of development and, as a result, timely release of resources
It is necessary not only to correctly write down the tasks on paper, but also to complete them on time. This means that you need to constantly monitor the progress of your work (or have conscientious employees and responsible team leaders), and respond to delays in time. Predict them, eliminate them, so as not to break the overall plans.
3. Qualification of the senior management, from CEO to team leaders
All management units should work together, clearly understand the company’s plans, plans for the development of certain projects and priorities for them. This will allow you to allocate resources more competently and monitor their work more closely.
4. Understanding the essence of the tasks
It is necessary not only to set tasks, but also to explain them to employees, explain to them the general plan for current projects and plans for the future, tell them in advance about the current and future process of building work. By this method, you motivate them to work faster, because they know that a new job is already waiting for them, and it is necessary to complete the old one before the start date so that there are no overlaps and problems.
Another small psychological factor: you make it clear that the company has big plans, that is, it is stable, successfully developing and increasing.
5. Unified standardization of development processes within the company
To simplify the process of “walking” from project to project and to minimize the time of “entry” into the project for any developer, it is necessary to standardize the development processes within the company. You need to understand that if you have Flash games, then everyone should write, for example, on a clean flash or on the same frameworks. There should not be such a thing that one of the developers prefers PureMVC, someone prefers Robotlegs, and someone generally “saws” their own engine. And as a result, to enter the project on your own engine, any of the third-party programmers will need extra time. In such conditions, it is very difficult to talk about a painless “transfer” of resources.
6. “Airbag”
This term means that if one of the employees fails due to illness or you decide to transfer him to another task, such a person has someone to replace from resources within the company. You should always have a replacement. Well, or at least it is necessary to strive for this. As a last resort, you always need to have contacts of several outsourcers who, if necessary, will help you secure the development process.
7. Guarantees are needed that employees will not quit in a short period of time
It is vital to have guarantees that you will not lose an employee in the middle of development, because this will break the entire chain of current and future tasks. How to get them? It’s easy: starting from signed contracts under which an employee undertakes to work N hours in your company, and ending with personal arrangements if you work in the company of friends. There are numerous other options, for sure you will have your own solution to this issue. The main idea is that, having such guarantees, you can not be afraid to make plans in advance. And if an employee suddenly decides to quit, you will have enough time to fully replace him.
Disadvantages and bottlenecks of controlled chaos
1. The development time can be stretched
Naturally, if you connect everyone at once, the development process will go much faster than if you connect everyone “when there is time”. And, as a rule, the development time is not unlimited, but quite tangible and is constantly criticized by investors or other persons interested in a quick result. But, firstly, we are talking about the complex development of the company and the long-term construction of work processes, and not about some single project. And secondly, we eliminate the minus if you just do the work for the future in advance, and at the right moment you “throw” a sufficient amount of resources on the task. The same rule is sometimes valid for outsourcing development. For example, having drawn the concept of a city builder for yourself, you may well “outsource” it to work, and make a new concept for yourself later.
2. Insufficient qualifications of developers
If the level of developers is insufficient, the stack of their tasks gradually fills up and task overlays appear. From here, delays in deadlines and all the resulting problems begin.
This risk is eliminated:
- By the same “airbag”
You identified the problem, immediately threw additional resources or replaced the resource, solved the problem. - By constantly strengthening the team with new strong personnel
Each new strong developer not only contributes something of his own, but also points out bottlenecks and ways to neutralize them, teaches all employees something new. - By increasing qualifications within the company
Gradually, your team gains experience and over time begins to take on more and more tasks, giving out more and more high-quality results.
3. Incorrect development planning
This risk should never be discarded. No matter how competently you allocate resources, it is impossible to take into account every last subtask. However, the disadvantage is offset by the introduction of a standard, but not excessive document flow. There is no time for excessive document flow, and it is not needed, but sufficient will help to control and plan the work. To the list of documentation that we talked about above, you can add standard procedures like working with task trackers and version control systems, as well as other traditional auxiliary measures.
4. The probability of moving from controlled chaos to unmanageable
There is always a risk that at some point you will stop controlling the situation. The solution is simple: do not take your hand off the pulse and constantly keep everything in your head or on paper. Only by total control and operation of the global task stack can anarchy be prevented.
5. Dependence on a variety of factors and the specificity of the methodology itself
Of course, there is quite an obvious understanding that this methodology is not suitable for everyone and not in all situations. And that for its implementation it is necessary to carry out a lot of preliminary work and bring together many factors. However, as practice shows, many, especially novice developers, have long slipped into chaos. So why not start managing it?
6. Other risks and pitfalls
A rather abstract point. But its lack of specificity is explained only by the fact that each company has its own problems and its own specifics, it is very difficult to predict it. Whatever it is, in any case, the risks will be less if you develop your own projects. Internally, it is much easier to prioritize and manage processes.
In general, at this stage, it is possible to complete a brief abstract consideration of the specifics of this methodology for managing workflows within the company’s game development. Why did it get the name “Controlled Chaos”? In practice, the technique is quite specific and requires a lot of qualifications, a lot of experience in game development. And sometimes it seems from the outside that the management of ten or more projects is rather chaotic and logically inexplicable, generates disorder and anarchy. But if you understand its essence, modernize it for your own environment and can successfully apply it in practice, then the result will be amazing.
Of course, like any medal, there are two sides to it. And it is quite possible that one day you will realize that “something went wrong.” But answer yourself honestly: “How often in your life have you completed a project that went off without a hitch from start to finish, and not only according to documents, but also in reality?”. Perfect development is possible only on paper, in any case you will have to solve a whole bunch of problems. So how do the problems and risks associated with template development exceed the problems and risks associated with controlled chaos?