Messy projects, bad performers and clients from hell

Entropy is inevitable

Working with AI tools once again shows how fundamental principles of any communication are. The more you code with AI, the more the code turns into overcomplicated and buggy crap. One thing depends on another, you solve one feature, four others break. As a result, 90% of work becomes fixing something that had just been working fine. The situation is aggravated by the fact that in the process of work I also get new inputs — I realize what should have been done differently, what I hadn't taken into account or where I made a mistake. So I change the task on the fly. Entropy is increasing — maximum chaos, it's madly annoying.

And all this mess reminds me of... an ordinary life in miniature. An usual project or business. Let's compare: start of the project, everything is super, you like everything, you've already thought of everything in your head. The first results, if you like it — super, but there are a couple of corrections. Something's forgotten, but then remembered — we'll add it too. A mistake happened, let's get distracted and correct. Multiply this by the number of people in the project — the more people, the more uncertainty and transaction costs.

Because human-to-human communication is imperfect. You can't verbally explain an entire idea fully at once. To describe it in such a way, you first have to complete the project.

This is a contradiction: to make a project good at first try, you have to do it first. So we'll need more time, inevitably. This means that both the executor and the client would attempt to decrease their own responsibility in the project, as much as they could. Otherwise we'll get situation in which the executor "didn't think and implemented incorrectly", and the business "didn't set the task accurately enough and changed it in the process". The story is as old as the time itself.

This situation is resolved by creating a knowledge base and describing the project context.

Business owner, manager

It is important to understand to which performer the task is assigned to. The less experience, the lower the position — the more specific the task is set, down to a literal instruction. Then it's also important to personally oversee the process and each result increment. It's an expensive process that takes up valuable time. You'd want to just "load" the idea into the performer then simply get results. The nuance is that such specialists are of senior grades, experienced, and therefore — expensive.

To set a task is to outline the project context:

  • The image of the result, what exactly needs to be done
  • How the solution will be used by the CA
  • How the solution will affect the business
  • How this situation and problem is solved now, while the result is not yet available
  • Technical, time and financial constraints
  • Perspective of development — what will happen with the solution in the future, whether support or development is planned, what is the horizon of life

The task should be set in writing. Naturally, who'd want to spend so much time on it? Writing is costly, but if one don't put amorphous thoughts and reasoning into text, details and connections will be missed. To set an abstract task and then to expect a solution from a non-senior expert would fail the project. The choice gets down to either spending money or time.

Designer

The very same list — it is important to do it yourself, to help the customer. The work of setting the task — lies on the designer. Make sure that you correctly understand the customer, that you have the same expectations of the result.

It is necessary to outline the limitations of the project, to break it down into separate, interdependent understandable modules. Based on this decomposition, develop a work plan. Expecting this document from the customer is at least optimistic, even naive. It is serious work, but there is no other way to do it on larger projects.

In setting the task we look for a balance — to get all the important constraints without overcomplicating the project documentation. The good news for designers is that if the client does not take on this work, you could and it's well paid for. While this way there will be more management and less design in the project, it's worth the investment to get a top-notch result.