In last May, there were few projects in the company. I organized a project for internal office management (OA ). The first objective is to allow some technically poor personnel in the company to get real programming training; the second objective is to use idle personnel to develop a product for the company and Implement Scientific Management internally, you can also consider selling in the future.
As a result, this project was launched in March, and the development progress was delayed,CodePoor quality. There are several reasons to consider:
1)ProgramWeak technical skills
2) unfamiliar with JSF Technology
3) The JSF framework has bugs and few tags are available, which is insufficient for projects and requires additional development of custom tags.
4) Frequent personnel changes
5) according to the advice of the latest version of <Software Engineering> and the Hitachi development process, the specified development process is unreasonable.
A) in the design phase, the presentation of each tag on the web interface is clearly described, which requires a lot of manpower.
B) the development process is as follows:
Use-case design-image design-system modeling-Database Design-coding-code review-
Preparation of standalone test model book-"standalone test
Compiling a set test style book-"set test
This development process looks perfect. In fact, due to the high Project Progress requirements in China, it is impossible to pay such high development costs. If the project management is improper, many documents are written, but no one does.
6) management personnel check the code relatively weak
7) I lack a qualified project manager. Because of my many considerations for the company, the project manager is only named. The only thing that matters well is that the database design is done by myself.
8) lack of experience in complicated OA services (especially attendance services), and design and change.
The above is a problem. Here we also talk about the gains:
1) programmers have been given a practical opportunity. In the past, programmers with weak capabilities in our company had never been given the opportunity to program. They only did some testing work. This time, many programmers were greatly improved.
2) master the basic knowledge of JSF and train a team that understands JSF technology through practical training and document writing.
3) OA is the first large-scale Web system developed by many people in the company, in this process, it is found that domestic projects are generally unable to withstand <Software Engineering> and "perfect" process management in the Japanese development process. Therefore, the subsequent OA development process is simplified:
Use-case design (including review)-> art screen design
-> Database Design
-> Programmers write the basic picture-> integrate the artist's picture-> code review (especially enhanced)-> programmer cross-test (as required by use-case)
4) How can code review be more effective?
The programmer is required to write the call code first (a bit similar to the test-driven development method. In this case, many classes and methods do not actually exist, so the compilation will not pass). The technical manager reviews the call code, after no problem occurs, the programmer implements various classes and Methods one by one, and the technical manager reviews the code again. To ensure quality and reduce costs, code review is the top priority.
5) using the netbeans6.5 + ubuntu8.10 development environment, a good development speed (good Linux performance), and avoiding the problem of Windows piracy, eclipse configuration is troublesome, better use of netbeans.
6) after finding the icefaces framework for subsequent development, icefaces can provide all the features of Web 2.0, and as long as you write pure Java code, it reduces the burden on programmers, all the basic knowledge of JSF can be used.
Therefore, I believe that the products developed by alpha3 of OA must be faster, better, and more powerful. However, we need to continue our practice.
Follow-up 1 ):
Due to the arrival of the financial storm, the company encountered a serious deficit and many things could not be continued, including OA projects. While I was temporarily away from the company, the fire of my technology was not extinguished. I personally developed and researched icefaces technology.
First, I used icefaces1.8.1 Based on the Woodstock visual JSF project, and found many bugs in icefaces1.8.1 (for example, ice: tree may cause some problems when using the BIND attribute ), fortunately, I have a thick technical base and can always find a way to get around. After sun no longer supports the Woodstock project, icefaces.org also gave up its support for this project. Therefore, we cannot find visual icefaces1.8.1 in netbeans6.7. This was a blow to me, because my English website has been writing for a while and 4000 lines of Java code have been completed.
However, I soon discovered that facelets can be well integrated with icefaces In The Future of JSF. It took me a week to port the original code to the new framework, soon I found many advantages:
1) facelets delivers faster performance
2) facelets provides accurate error information
3) XHTML is more strict than JSP and can detect errors earlier
4) The template features provided by facelets can greatly improve the efficiency of web development.
For details, see my two articles.Article<Use facelets to develop JSF Programs> and <use icefaces + facelets to develop web programs>