
At the end of last year, an order for small automation came to our company. A comrade of my boss, an entrepreneur tired of the abundance of errors due to the human factor, wanted to automate the process of preparing layouts for subsequent machining. Layouts were performed in Avtokad and Photoshop. The task seemed to be solved and interesting. The entrepreneur received a positive response. And what came of it, read on.
The most impatient can skip the narrative and go directly to the conclusions, for all the others ... I will tell an instructive story.
To begin with, because of the lack of confidence in the fundamental possibility of solving the problem and how to solve it, the customer did not have a clear algorithm for achieving the desired result. Simply put, he wanted the mock-ups themselves to be cut, preserved, placed on a cutting table. But he had no criteria that the result meets his requirements. There were no such requirements. In fact, all the necessary data was, but passed between employees by word of mouth and were not documented. The issue was resolved by a large joint Skype meeting with a consistent demonstration of the work of designers in both programs. It was decided to write two separate scripts. One, for exporting layout geometry data to XML, for AutoCAD on Lisp. The second is to generate a layout template and then cut it into JavaScript for Photoshop. A work flow chart was created describing the key points that played the role of TK. Everything started so well.
')
By the way, for writing the script in AutoCAD a trial version was installed for 30 days. It turned out that autocad impossible to buy via the Internet and you need to go to the official distributor. Photoshop was purchased with monthly payment.
Then came the winter holidays, the timing and cost, prepayment ... In general, all the boring from the point of view of the programmer. But the lack of a clear TK has already played a role here. More on this later.
In general, when we got down to work, the trial period of AutoCAD ended. Another attempt was made to buy a subscription to the autocad for the quarter. But she again broke about physical delivery in a period of 7 to 14 days. This question does not relate to the topic of TK, but I really want to throw a stone in the direction of Autodesk. I had to put a probe of the previous version.
As for the task within AutoCAD, there was crystal clarity, since the customer’s designer selflessly helped and answered all the questions. We decided how to separate the wheat from the chaff (details from the narrative). The code was written in just a couple of hours. Hey, autodesk, and you wanted to make us wait 2 weeks. We were still in euphoria, how things are going well.
It came to Photoshop. While the preparatory work was being done, a discovery was made that one could write not just a script, but an entire extension. On the one hand, we did not seem to promise anything like that. On the other hand, cool, do better than promised. Immediately an unexpected conclusion: if the client has a bad idea of ​​what he gets, he will not appreciate what he received from you more. Opportunities were explored on the go, ideas were thought out and swept aside during the layout and programming. Something because of complexity, something because of laziness. From here one more conclusion: if the client has a bad idea of ​​what he gets - he will not notice that somewhere you have given up the slack. In our case, this did not concern the functionality, but rather the design.
After the first release, it turned out that some layouts did not want to form normally in Photoshop. After analyzing XML, it turned out that some of the details consist of several unrelated lines. Accordingly, they are perceived by the program as separate parts. If there were a TK, we could say that under the conditions at the entrance we have a part limited by one closed polyline. And so had to negotiate. As a result, they wrote a method that combines the selected segments into one detail. Easy to get off of course. But an hour of time for programming, and some more before that, was spent searching for the cause. And if the customer had rested and said that the search for parts is our problem and the designer will not highlight anything ... Here we would get to look through lines, search for intersections, solve T-shaped intersections and share one line in two adjacent figures. In general, they would also decide, but the price would be completely different for us. Hence the conclusion: TK is your best lawyer.
Further more. Despite the fact that the document is formed according to the previously agreed requirements, the customer did not really trust the program. Therefore, I insisted to add to it a check for compliance with the document requirements before cutting. Apparently, he feared that the designer could change the parameters of the document in the process of registration. This, too, was not in the original agreement. The task seemed trivial, and we decided to meet the client. As a result of some surprises and unhealthy perfectionism, writing a check took 4 hours. Hence another conclusion: TK will protect you from yourself, or at least help to ask for extra money.
The most important and most expensive lesson was learned at the very end, although its roots were at the very beginning. At the stage of forming an agreement in correspondence, a document “flown through” explaining how a part should be placed on a cutting table. He was accompanied by the phrase "for general information, you probably will not need it." It is this “most likely” that should have been paid attention. The document was made in Word and on each new computer it spread out as it was convenient for him. It was very difficult to understand what exactly was drawn there. As a result, we read the explanation as "you do not need." In fact, the essence of this drawing was reduced to the fact that the designer can, at his discretion, place the part along one of the edges of the material. And a couple of typical examples. Naturally, everything that should not happen, surely happens. Therefore, the main conclusion: describe in the TZ the most incredible option and the cost of its solution. Perhaps the customer would prefer to do it manually.
Why am I writing all this? And the fact that work without TZ has a lot of minuses, as well as several advantages, the main thing is to be ready for anything.
Minuses:
- A large degree of uncertainty. If you are accustomed to follow clear instructions, and not to come up with solutions on the go - then ask for a detailed TK;
- High probability of "extra" work. Invented on the go solution may not like the customer. If you do not have his signature under this decision, then the hours or even the days of your work can go to the trash;
- Undefined terms. After all, there are constantly new tasks and edits. I hope at least you took an advance? Who knows if the project will succeed;
- Everyone knows the saying "time is money." But time may be uncertain. And you probably signed up for some specific amount. So you can jump out to the minus;
- Most of us are passionate people, including work. A clear TK will save you from excessive zeal;
- The client does not appreciate the "gifts". Any work beyond what you originally planned to do is taken for granted by him;
- The client basically underestimates your work. As a result, your objections are perceived as a desire to evade work.
Pros:
- Freedom to make decisions. You are not limited to the rigid framework of TK. Found a more optimal solution can not agree;
- Responsibility and initiative. When solving nontrivial problems, the solution may come at the most unexpected moment. If the client is ready to trust you as an expert and only looks at the end result, then the absence of the TK is in your favor;
- The absence of TK can justify increased uncertainty and lay the budget for all sorts of "surprises." But take care of this in advance, after the start of work it will be too late;
- Formation and verification of TZ requires an investment of time and effort before the start of the main work. The absence of TK allows these efforts to be postponed to a later date. True, paying for it with interest;
- The opportunity to "replay" in their favor poorly specified moments. Especially if your tongue works better than your head.
Of course, the listed “pluses” are a joke. I urge everyone not to repeat our mistakes and always work with a clear and intelligible TK. Want freedom, write it in the TK. Responsibility and initiative enter there. It is better to ask for more money for your reputation as a reliable and honest performer, as well as for the preparation of the TK. The time and effort spent on drawing up the TZ will pay off with the health and nerves saved during the delivery phase. Well, the fact that the heads of the Habr “cook” perfectly, I almost do not doubt.
Interesting to all projects and those literate. jobs!