There is a saying circulating in the software industry:
There are two ways to build a software design: one is to make the software very simple so that it can obviously not find the defect; the other is to make it very complicated so that it can not find obvious defects.
Recently took over a project. Software is a development tool, similar to visual development of.
The original software is used.InterOP. sourcesafetypelib. dllAfter using VSS for version control, the version control function was removed due to many factors and an FTP function was added.
There will certainly be various problems in the middle of the project, but the FTP function is basically a brand new and independent (the autonomy is very high, can be completely abandoned once done), there is no reading other peopleCode.
The requirement is simple:
The FTP upload and download functions require synchronization of server files and local files. The upload is to synchronize local files to the server (COMMIT), and the download is to synchronize files on the server to the local (update ), when uploading and downloading files, you need to determine whether the files on both sides are consistent. The preliminary plan is based on the file size or update time.
Problems encountered during development
The page layout is easy to understand:
However, after two days, we found that the demand could not determine the software functions, and the actual amount of software functions wasSufficient?
Due to the influence of total commander, a directory on the right is very pleasing to the eye for such a directory on the left. However, there are many problems.
For example, in the sorting of listview, adding files to the current directory from the external, refreshing files after deletion, and UNIX and Windows file formats, during File Download and upload, duplicate file name overwriting, skipping, and renaming ......
Especially when renaming, we found that it was far from as simple as we thought.
These functions are basic and file operations are used every day, but they are far from as easy as you think.
How many functions are required?
Is it so difficult to upload or download an FTP?
Yes, it's not hard.
I believe that the class library is dedicated to FTP encapsulation. Even if FTP commands are directly used, it is very easy to "Upload" and "Download. However, it is far from enough for a software to be "able.
During software development, I thought more than once:
Does this function work? What is the FTP Proxy (firewall? Does FTP keep connection (send virtual package? Does the file difference highlighted function do? Does it support uploading and downloading directories? ......
Someone once said, "you need to find your own requirements.
Imagine if the demand is so vague, can I find a demand for myself?
The software has implemented an FTP upload function. For the currently edited file, Select Upload in the menu to automatically upload the current file to the default FTP server. If a file with the same name already exists on the server,.
This function is enough to meet the so-called "requirements ".
Is there more features, the better?
Put this function in place, that is, it is not used first. This is a icing on the cake and is better. This function is still available when time is sufficient. ......
As mentioned at the beginning of this article, the more complex the software is, the more defects and problems there are.
The more functions, the better. It doesn't matter if the functions are not used.
Each time a function is added, it is necessary to consider not affecting this impact, but not affecting that impact. How many tests are required? How can this function be added at will?
I would like to say that the features should be determined in the early stage of software design, but the companies I have experienced only have a rough plan without detailed design. I just said what the software "can do ", A complete set of external feelings. It's like I tell you that QQ can chat, ie can browse Web pages ......
Of course, I always criticize, but it is still the same for me to start.
About last year, I was fully responsible for a small software development. I always told myself that the software was designed and designed, but coding started in less than three days ......
Post
Software development is a complex and long journey of learning.
I feel more and more that my boss in a small company is doing the right thing:
Before the project is determined, let's make a software first. When bidding, we will introduce other features of our software and what functions can we achieve, instead, we will directly present it to the customer.
The customer has no need, but he has a need when you give him the software.
My original blog address: the more software features, the better?
Welcome to my blog: nanqi.info