Is it possible to create a truly open studio for the joint implementation of web projects?
I hope for some of you, this question is just as relevant as it is for me.
He worked in private studios and now works with them as a freelancer. At the same time, neither cooperation with the “normal” studio, nor independent execution of orders is considered correct ...
Thinking about the way to organize a studio - it is a studio, with its own style, with team work on a project, with a single responsibility to the client, but at the same time Open: where the community of professionals stands for the place of the team (perhaps not a lot), the responsibilities are minimized (we participate only that is interesting), and all the profits are divided between the project participants - I described in detail my thoughts on the functioning of the open distribution mechanism of work within the studio from the moment the application was submitted by the client.
So, open process of work on the project. What is he like?
To begin with, we define ...
The community I'm talking about is open, everyone who has the right level of ability and recognizes the values they have developed can easily join it and, if they wish, go out. In the first place are the personal interests of each, and not obligations to each other.
The strength of the community, I believe, is not in breadth (the number of participants), but in form - the quality of the composition, the ability to think in one direction. This is not a community scale free-lance.
I see the community of the studio is not large, so as not to lose a certain style. Man 50, and the composition is not constant (someone leaves, someone comes).
Work in the studio begins with the application of the client. The question "What did the application do in the studio?" I propose to highlight a separate topic.
Perhaps the client was led by one of the community members, for which he can count on gratitude (for example, the right to carry out part of the work on the future project).
Perhaps, our fictional studio has been working for a long time, it is quite well-known and many applications come directly through the studio site.
Now we believe that the application for the project has been received and it is time for the community to rally for its execution.
1. The beginning of the process - an application from the client.
This can be a fully-formed TK, brief, or just a message about the desire to develop something.
All entries are visible to community members. Only those who have the “skill” of the project manager can answer. The answer is the stated willingness to work on this application. The answer also includes the amount that the manager wants to get for working on the application or the method of its calculation (for example, the percentage of the project budget).
Who decides who to respond to applications, and who does not?
Solves community! The task of the future manager to declare himself and show everyone that he has the necessary abilities. On the basis of the information provided, the community will decide (for example, by voting) the manager or not, and will assess his skill level (I suggest to make the assessment on a standardized scale, for example, from 0 to 10).
What to do if two managers answered one application?
- If the first manager is already working on two applications, and the second is only on one, then the second one is selected. This will allow you to distribute orders evenly throughout the community, while the most interesting orders tend to get to the most experienced managers;
- With an equal number of jobs, a manager whose skill is higher is chosen;
- With similar skills selected who called the lower price.
How to deal with the greed of the manager? How to help him objectively evaluate his work?
- Create competition. Several managers can respond to the application and, under equal conditions, the winner will come out with a lower price.
- To offer the manager not a fortune-telling over the figure, but the choice of an evaluation scheme for his work. There may be several schemes. It is important that each of them is approved by the community and is considered optimal (an example of the scheme - the manager receives an amount equal to 10% of the project budget + preparation of the TOR is paid at $ 15 per kilogram). At the same time, it is possible to allow him to change some parameters (for example, he considers this project to be extremely complicated - 10% boldly changes by 15%)
- The cost of work is open. This amount is seen by all project participants. The manager will think three times before inflating the cost, because he knows that any of his wrong actions can go to community arbitration where his “karma” (skill) is noticeably lowered.
Manager selected. You can work on the application.
2. Evaluation of the application.
Everyone understands that the majority of applications are a request to give a clear answer (specify the price and time) to a poorly asked question (too compressed brief, not clear TK, etc.).
The manager is in a very difficult situation. On the one hand, he cannot ask the client to pay for the development of the TZ, and then wait for the performers to be determined for it and a clear budget will be formed (and it’s not at all clear whether the client is ready to accept it). On the other hand, having named their price and terms, the manager will put the community in a very tight framework, not always true.
How to be? I will try again to combine the "incompatible."
First you need to process the application as soon as possible. The manager asks the client clarifying questions on the application, just enough so that there is an opportunity for her approximate evaluation by the performers. For an approximate assessment, in many cases a full-fledged TZ (which is definitely needed in the process of work) is not required.
The manager splits the processed application into parts (for example, design-layout programming). And makes them to assess the community. Everyone has the right to both answer and keep silent, while a number of obligations and privileges are imposed on appraisers:
- Evaluation of the application takes place within a period not exceeding 12 hours from the moment of its publication by the manager;
- Work on the application is distributed primarily among those performers who participated in its evaluation;
- The contractor cannot refuse to work on the application which he assessed, if no performer expresses a desire to work on it for the price indicated (in case of refusal he will receive a “-” in karma from the community, he will be more difficult to participate in other projects).
Items that remain without evaluation manager assesses themselves based on their considerations.
Now the manager has all the necessary numbers and besides, they are approved by the community. You can create a budget. Only again, the hitch, the performers do not want to think the same way and the numbers are very different. What is the right thing to do?
I think we should give this question to the manager. He as no one else knows what the client wants, what amounts he agrees with. In one case, he will choose the cheapest option (it is important for the client to complete the task, but he has a lot of money in the money) in the other, on the contrary, he will raise the bar to the top (the client appreciates quality and is ready to pay for it), in the third he will offer the client to choose the budget on his own ( at the same time, the client understands that he would not choose - the task will be completed completely and on time, he only sets the quality of performance he needs).
Budget approved. The client fully trusted the studio and made his first installment. You can start drawing up the TK.
3. Tasks, project teams and implementers.
In the course of conceptualizing the project, TK is written from which tasks, in turn, are formed.
The task should not only be understandable and not only unambiguously describe the subject excluding a dual understanding and hidden places, it also has to be something complete. Ideally, the contractor should only penetrate into the task itself and not think about what part of the project it is. In this case, the combined solutions of these problems are a holistic organic object.
The more such tasks the manager can distinguish from the TZ, the higher his skill.
Tasks are published in the community and visible to all participants. When publishing, the manager indicates which categories of participants can answer the task (for example, the program to assemble the interface on ExtGWT can only be answered by programmers and only those familiar with ExtGWT). The manager also indicates the marginal cost of the task, beyond which the output goes beyond the approved budget. Responded to the task is considered the performer. In response, the performer indicates the value of their work.
Tasks have much in common with applications. We can say that the task is a community application for yourself. The level of knowledge, the choice of one of several performers who answered the problem - these questions can be solved in the same way as requests from managers.
Artists selected. Now they can be called a project team. This is no longer a community, but rather a team, where the success of the project is in the hands of everyone. At the same time, the isolation of tasks does not exclude that the group will have to frequently exchange the results of its work and closely interact.
For example, two programmers are involved in the project, both are working on certain functional modules, the modules being logically complete and interacting through the API. It would seem complete isolation. But at the same time they have a common project code, they can observe everything in the collection, they see what has been done well in the work of another, and that “I would have done better”.
Another interesting point - the group will not "grow together." Each time it is impossible to say with certainty who exactly will be included in the project team and each time one can observe various amazing textures of thoughts and realizations.
There is an exchange of experience. And it is beautiful.
Work is underway. We are waiting for its completion.
4. To each according to merit.
What could be the ending? I am sure that only positive!
If one of the performers does not cope with the task, this is not a reason to throw the project. The community is much wider team. Replacing the careless can be found faster. Groups change dynamically, personal connections are not so strong. Problems become easier to solve at the moment of their inception, and not when everything has already fallen. Oral obligations to the "colleague" are minimized, you can safely ask him to leave if he stops work, leaving the question to the project manager or to the entire community.
Work completed! It's time to collect stones, and at the same time to assess each other.
The project manager writes a review for each artist, the performers evaluate the work of the manager and his own, indicating the strong points in the implementation of tasks. The general review and the whole project, in turn, go to the court of the community, which corrects the "karma" of each of the project participants.
Time is running out and time is coming up for creativity. When interest prevails over knowledge, and feelings whisper - success will surely come.
All of us have something hidden. Even the fact that we are good at what we deserve to consider a “pro” was once not accessible to others. In order to extract it, it took many cones to fill, both for themselves and for their “colleagues”, by deceiving by pulling an interesting job out of their hands, understanding that you would make it worse than they would have done. Or deliberately participating in the “total debauchery”, in the work for which no one wants to take, from which sick, just to extract from there a grain of experience and get another precious review in profile.
What will happen if the community only exploits the skill of the masters, and the waste (not an interesting job) merges the little experienced participants?
First, we will become hostages of our own skills. For example, a programmer who has a good hand on assembling sites in a netcat will have to assemble them further. Even when this job has become boring to him, I want to master other technologies - everyone knows him as a collector of sites in the netcat and how easy it is for him to take a good order for the netcat, it’s just as hard to start working on something else.
Secondly, an excellent designer, known to the community as a not a bad layout designer, who has not yet gained confidence but has already learned something, will most likely go away and work for a long time where he will be allowed to “open up”.
How to proceed? I propose to introduce a system of "free skills."
This is a skill that can be anything. We believe that each participant has it (to a greater or lesser extent). A free skill can be used in answers to tasks (or applications) - when answering, it is simply considered, for example, that free skill = experience with the symfony framework, and the participant's response is treated equally with others. We also introduce a number of rules:
- The higher the "karma" of the participant, the more he brought benefits to the community, the higher the level of his free skill;
- When answering a task, a participant with a free skill is insured by an experienced performer;
- If the task is done well - the level of free skill increases + the skill in which he performed is assigned to the participant. If it is bad, then on the contrary, the next time it will become more difficult for him to perform in a work unusual for him.
A healthy community does not treat yourself as a consumer! And it helps to reveal the potential of each participant.
What is good community? The ability to give an objective assessment of conflicts between people, to act as an arbitrator!
This can not boast of any "closed" studio. Its decision is always subjective by definition.
Whether an experienced PM decides the conflict, or whether they decide together with the studio management - the decision is always based on their subjective perception of the picture, they are (almost) always interested, it is very difficult to disengage from current events, each decision is the result of lobbying someone’s interests.
Therefore, I still cannot afford to openly participate in joint projects with studios. Lobbying in a relationship, I prefer the balance of power. I always ask for advances, and I give control over the result only if there is full payment. This alignment of forces allows me to be free from inter-group relations. No matter what the designer thinks about the layout designer, and the PM about all together. It does not concern me. The same is true of the attitude of the studio towards me. We can openly express to each other everything we want, and this almost does not affect teamwork, because they are connected to me not by personal relationships, but with money, time spent and commitment to the customer.
The other side of the medal is that hiding the result causes many technical problems, especially when there are many people working on the project. Sometimes it turns out to establish interactions through the API while keeping everything at home, sometimes you can open a part of the code without losing control over the result, sometimes you have to give up control and stay in uncomfortable lobbying conditions.
What will give me a message? It will allow me to become open and take off the extra burden of controlling the result!
In an open studio, I’m ready not to take advances and not hide the project code I’m working on — as much as I’m ready to work through the “No Risk Transaction” on freelance. Because I know that the project’s money is not in the hands of an interested person with whom a conflict may arise (or maybe not), and any conflict can be resolved by a community that I trust.PS: For those who are close to the ideas of an open studio, a group has been created - http://groups.google.ru/group/semaco
I propose to unite in it, to find answers to questions together and try to bring our thoughts to life :)