Estimation of software engineering workload

Source: Internet
Author: User

During this time, I was thinking about software engineering issues.

I remember reading software engineering books before, but I forgot a lot of things, so I thought about software engineering from my own reality. First of all, let's take a look at the recent Beijing report. Remember that I counted my work that I had completed about two or three weeks ago. Because I am used to providing myself with a detailed function, I will check it when it is finished. I counted the results and found that I completed about one or two functional points in a day, that is, about 30-40 points in a month.

The granularity defined by myself is about other changes brought about by a mouse or keyboard operation on the interface. For example, if a node of a tree is dragged to a list, the List has corresponding items; another example is to add a filter string to filter out the corresponding node of the tree. Of course, if some functions are similar to those of the completed functions, code reuse is required to complete the process. Therefore, it is easier. If it is easier to complete, it is not a function; of course, some framework code that is already familiar with is not a function point. So the function point is in my definition, which makes me feel that I have to spend time designing the functions to complete.

Of course, I don't think there is anything wrong with one or two feature points for a day. I just think it's nice to have a silly robot to write these feature points. After that, I thought that my work efficiency has always been one or two functions every day? So I thought, I could consider the project that took about three months to write the document. However, I was not happy at the moment, so I estimated that the 20-day * 3.5-month * 2 would be about 140 feature points. Then I thought that if I had an average efficiency, then, the JSP editor created by another group has 150*4 million members and more than 600/R members. But at that time, I was just thinking that I didn't count them immediately.

Today, I think it would be forgotten to record things. So I decided to count the number of functional points that I achieved in document generation. The result is about 40 documents on the interface, about 50 documents in the three documents, and about 20 functions implemented by the underlying document generation tool, there are 10-20 performance functions. The total number of function points is not very different from my previous estimation. I want to count the functional points of the JSP editor. I gave up when I counted more than one hundred, because I didn't know many implementation details, I know that this editor uses a framework of IBM. I cannot determine how to calculate the number of features that only these four people have added during this period. However, I believe that the function points are also within my estimation range.

Then I remembered the jsp editor that was not yet extended. I thought about it a little bit. That editor is about 10 functional points (mainly the text editor of eclipse ), then, we can expand from 10 function points to more than 600 (or actually more than 1500 ?) Function, how should the development mode be handled? This seems to be quite knowledgeable, I think. First, you can scale the function up to 10 times, which may be a case; then, you can scale up to 10 times based on 10 times, which is also a case. A sudden expansion of 100 times is also a case. 10 times or 10 times more, which is beyond the control of ordinary people. However, if you scale 100 times (or even 1000 times), it is no longer a simple function extension, the writing or intervention of new frameworks and new engineering management modes are more involved, so there are also great risks.

In fact, all functions can be extended. If someone is familiar with "Notepad" and someone is extended to "ultraedit", the Extended Function Points here are at least 1000 times. This/r requires a software project to limit the number of functional points. For example, I just wanted to make it simple, and you just needed to extend it to me. Adding new functions to a programmer without restraint only increases the overall cost. The increase in costs may not be able to return on the benefits of the Software. So to a certain extent, just give me some of the necessary functions. I have learned a lot about the implementation of this document. You can do anything that is generated by a document without limit. You can introduce a framework similar to the Word document editing framework. But this is definitely not true. It is definitely wrong.

But there is another problem, the so-called design integrity. If there are not many functional points in a design, the design integrity may be involved. Just like a jsp Editor, If you scale 10 times to 150 feature points from 15 feature points, there is no qualitative change, it even gives people the feeling that this thing is always so awkward and provides some useful functions. However, if it is not done well, it is only half done and is not complete. For designers, you should pay attention to either directly expanding 100 times or not. Therefore, it is easy for the coding staff to Expand functions without notice, resulting in conflicts between design and process management. The other is to provide a threshold value for the encoding staff. For example, you can say to the encoding staff: Hey, you have extended some of the functions here to the top. Of course, the coding personnel should look at the personnel level from those aspects and how to expand the function points, as well as how many times the designer sets the Extended Function Points.

I have said so much about my actual experience. I checked the code in the past few months and suddenly found that the average number of lines of code I contributed per month is about 10000 lines, with an average of over 500 lines per day, of course, if some useless code segments and comments are removed, there may be around 400 lines every day. After that, it seems that there are too many points. It is wrong, and the code quality cannot be guaranteed. I want to check the approximate scope of the number of lines of code. However, I find that the number of lines of code does not matter. Two Articles have written well:
1. It's Not About Lines of Code -- By Charles Connell
Http://www.developer.com/java/other/article.php/988641
2. Quantitative supervision of software development process Author: Chen Bing, China Software Evaluation Center
Http://tech.ccidnet.com/pub/article/c29_a77106_p1.html
Although the number of lines of code in/r is not a problem, it is worth noting. For example, I added 20000 lines of new code to the report project in July! The report also prepares code for the beginning of October. This ...... Is there too much code I have added? Is the number of feature points I have extended this month too large? Should I re-adjust the product quality to ensure that software engineering management can be implemented on time and by point? This is a question worth pondering.

Record it so that you do not forget to think about software engineering in the future.


October 02 PM

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.