This is a "if there is a similar, purely coincidental" story, plus some nonsense, please do not seat. Here we go......
I am somewhat embarrassed to hold a cup of water, is sitting opposite the king of the visit, he is in other places to fight people, these years is said to harvest quite abundant, see mobile internet in full swing, naturally also want to come in a dry, although Wang always engaged in the business is also with it, but after all too long time not touch technology, some things are not Always ask me this in the first-line development mixed more than 10 years of old programmers, more than 10 years of development, there are several possibilities, but this is not the focus, so temporarily ignore this detail.
The reason why I am embarrassed is that I do not know how to answer the general needs of Wang, as if I am caught in some habitual meditation.
Wang terminal up, put the phone to me before, said: "You see, just such an app." "He's not very skilled at a few strokes on the screen, and I'm not looking very seriously because I know it's hard, and that's what all the developers are going to be asking and probably the most frequently asked question:" How long does it take to develop such an app? "I would like to say that I do not know, this may be the most straightforward and accurate answer, but in the face of Wang, the old friend, I would be a little rude to answer, so this time, in addition to the general thinking about what he refers to the app is roughly related to what aspects, but also to organize their own language, How to tell him in a very proper way, I can't estimate the matter. "You see, in such a simple app," Wang continued to fiddle a few on the screen, and then looked at me with a bit of anticipation.
I cautiously said: "Frankly, I am not sure, I am not very experienced in this area, although the development of the app, but it is very different from this, the specific analysis of all the logic, in order to estimate the time." ”
Wang always seemed to disagree with me, he shook his mobile phone, said: "I ask not much, in fact, more simple than this," he pointed to some places on the screen, continue to say: "This, this, this can not, only need such a list, there is details, you can view the changes ..."
It is natural to me to think that this is a very typical "take it easy" attitude, I think I have to let him understand the complexity of the problem, I asked: "Need to login?" ”
After a pause, the king said, "of course." ”
"What login?" User name password mode, or mobile phone login, or like QQ, Weibo, this can be borrowed third-party login? ”
Wang always seems to think about this time: "As a mobile internet, I would like to mobile phone login is definitely to, QQ, Weibo, right, and best also want ... Oh, you said the user name password before, this should also be the right. ”
I am very fluent to continue to ask: "That must have registered, if you plan to log in with a mobile phone, it is necessary to find a message platform, and login, you have to do enterprise identity authentication, to, there is login, there is a password, the password retrieval function also have it." ”
"That's for sure." ”
"At the same time there are many ways to sign in, you have to come up with a reasonable logic to put them ' Integration ', of course, the most common is the account binding, such as to your account binding mobile phone number, so that you can use the phone number to log in the same account, the same as the login, but now mobile internet users are very disgusted with the registration process, so often will require direct mobile phone login or direct login, automatic completion of the registration process, that case, Recording, and then using a mobile phone login, instead of binding, then it will produce two different accounts, and can not be "integrated" up, we have to think of a more perfect solution ... "
Wang always seems impatient with what I say: "There's no need to be so complicated?" Do you see this app? ”
"Is there a question that I have described earlier that you have tried?" ”
But Wang always seems to be not concerned about the problem, he just want to know how long it takes to do such an app, of course, how much money, this is his concern, he took out a confident tone: "What is the problem afraid of?" What is the difficulty? These I believe can be solved, but time is very important, fast, our competitors will not wait for us, just such a thing, you think, how long? ”
Look at his posture, like the sheer mix of successful people, and my humble programmer is really my throat in front of him, I would also like to continue to tell him the importance of detail, but he interrupted: "No, no need to be more accurate, you only need to estimate a range, two weeks?" Or two months? ”
I don't think I need to hide anything anymore: "I really don't know, maybe a good team can do it in two weeks (but I don't believe there's such a big team), but I'm obviously not the one who can create this kind of miracle." "I thought it might be wrong to say" two weeks to two years "in such a playful range.
Wang always seems to be disappointed with my answer. But he's a strong executive, want to do one thing, will certainly action, action must be quick, must have the result, this vigorous and resolute style of acting, indeed, I quite appreciate, but he this project, I can really help not busy, but I still out of courtesy, said: "Technical aspects have what problem, still can come to ask me." ”
====================== is not a very gorgeous dividing line ======================
"How long does it take to make an app?" "This question is estimated to be more difficult than a few days to test a person, a problem with such an inadequate condition, how to answer?"
Overall, the more clearly the demand, the more mature the team, the more accurate the estimated time. and software development This thing, no matter how many years of development, no matter how the methodology proposed, there is no way to the traditional manufacturing as the "work" is so accurate, its internal complex logical relationship dictates, software engineering, absolutely no energy production.
Users see just an app, if he is using an iOS system, maybe he will not touch Android, do not know that developers in addition to the iOS version, but also need to make an Android version, (there is no possibility of Windows edition?) The workload is undoubtedly greater) or, the web version of everything? Maybe you don't think so after you actually do it, and how does the store model really work for all occasions? Moreover, if the network is not an exception, the general user will not notice the existence of the server, the server is always so obscure for users to work around the clock, its development is probably not as much as the app itself, but also in charge of the app operations need some manpower, after large even need to form a professional team, They need a "backstage" to view and process data at any time, and if they need to be able to view and process data anytime and anywhere, I'm afraid they'll have to get a special app for backstage.
This principle is a bit similar: we saw the aircraft in the sky gorgeous to complete the annihilate mission, thought that only the fighter itself is very cow, often ignore the aircraft related to those matching, if not skilled pilots, Combat Command center, ground radar, early warning machine, supplies, airports or aircraft carriers, ground personnel and so on, then the fighter will lose combat effectiveness. The app, too, is not something that can be done as long as it runs, and supporting its facilities and maintenance work is no less simple than the app itself.
Apart from these big aspects, the details also have a lot of uncertainty, so a mature team is especially important, an experienced developer will know, at least roughly know what the development process will encounter, which problems are relatively simple, which may take a lot of time, which depends on experience. I have a word that often hangs in the mouth, that is: "Did not do things don't easy to say simple." The "Take it easy" attitude to the project does not have any benefit, if you are not sure, then to consult a person with experience in this area, even if there is no specific answer also has a general direction, along these directions to study, you can know the problems will face, of course, is not all.
About "underestimate the difficulty" this thing, my past company has a classic story, there was a small project, is ready to use a set of instruments already used in the English-only program to increase multi-lingual support, the program is not big, the content is not too much, the engineer at first thought it was a simple translation work, At most two weeks can be completed, but do not find it easy to do, the first translation to find professionals to do, their own do not good, we have no one proficient in European languages, and then there are units conversion, some countries with the metric, some in English, this has to consider, including the date display format to consider, suddenly do not know how much work , these are almost after the German word is too long, our instrument screen display, out of range, so then adjust the font, do streamline, and then meet to discuss the N times, finally want to release the time to find such a change, the size of the program has become a lot, some of the device memory can not fit, This everyone can be silly, optimize Bai, Streamline Bai, the program began some messy, finally reluctantly through Quality control department test, finally released, found a full six months. But now think about the reason why it took so much time, a very important reason is the lack of experience, the multi-lingual, international this is not familiar, took a lot of detours, so I mentioned earlier, the mature team is particularly important.
When we estimate project time, we often just forget "write code Time", and put those with the boss or customer, do requirements analysis, design, testing, and fix the bug time is not taken into account, and these times are usually more than the time to write code, I personally do not easily to please the boss and finish time to say very short, why? Why would you lie if you can't do it? If a new feature development that takes a week to complete, I usually have to take this time double, which is already more "non-conservative".
Even if the time to write code is often underestimated, the boss or the customer is likely to be dissatisfied with what you have developed, perhaps you misunderstood his functional requirements, or the interface is a bit of a lag, or this icon color is not good, you are a developer, not art, although can be a bit of art, but after all, not professional, More important is to do UI design, do a diagram of this kind of thing, also have to spend a lot of time, when you are "a pixel" in the burn, is not very eager to have a team of designers? This is the time to remind the boss: you have to make a choice between timing and function. The boss is certainly not happy, but has to make some compromises in terms of functionality. Although this will allow the Dystocia project to go online early, but for the failure of the project, the boss added a good excuse: our engineers are too poor to do as I say.
Boss or customers in addition to complain that you do not look good enough, but also to mention a lot of things: this interface can be changed to multiple choices, can increase the notification function, read unread State to have, the interface can be smooth point, last night, the program "Flash back" once ... Need to mention the function, but did not say that the specific UI to be more beautiful, and did not say that the stability of the program is better, not to reach how much throughput, of course, perhaps more important-security also did not mention, your heart startled: yes, if there are hackers, no, as long as a little bit of technical malicious users want to brush up our That's too easy, and I didn't do any of these safeguards! Fortunately, the project's reputation is too small to be considered for the time being. (It seems like most apps don't have time to think about it.)
All of these, you say the function, details, robustness or not can be automatically from the soil grow out of things, all need to spend time to think, to do, some even is a "system engineering", if the piecemeal to do, the system is filled with "flying line", will undoubtedly give future maintenance left a lot of hidden trouble. Have you considered the siege lion? Not to mention the low-performance computer that the boss bought for you to save costs and make you crazy about these "unimportant" things all day.
====================== is not a very gorgeous dividing line ======================
Saying that the king always say goodbye to me after the swift and sudden sign of the company, registered the domain name, got the office, also suddenly called a bunch of children fengfenghuohuo to make up, this development momentum, this drive, I only since sigh. The bottom of my heart really some regret how did not go with him to do business, but this is only a moment of sensibility, reason again in the next hundreds of milliseconds will I pull back: still don't go good, communicate with him not to come.
Wang's project was later soar, and he is now the CEO of a company valued at hundreds of millions of, and I feel more and more like a loser, sitting alone in my office, or holding the cup, and I'm annoyed--stop! Is this more dramatic? But although at the outset I declare this story "if there is similar, purely coincidental", but also can not be arbitrarily made up, the real outcome is: indeed Fengfenghuohuo to get a few months, and then suddenly heard, originally wanted to call to ask the King always how, but he became another super busy man, no mind with me to talk about homely. Well, the end is still the same, I am still the hard-pressed to sit in the office of the programmer, alas, don't think, start!
How long does app-take?