Generally speaking, the formation of the current Java-EE enterprise development efficiency is low because of a few: the division of meticulous, technical line long, customers can not participate in the development of the complexity of too high. These aspects of the factors between cause and effect, interaction, and finally the entire development process dragged into the mire. The following is discussed in detail.
5.1 Division of Labor meticulous
The entire theoretical system of Java EE, from the commercial giants such as IBM, so they put forward the technical framework, the overall adherence to the principle is to strengthen the Division of labor, strengthen the layering. The original belongs to a whole application system, cut into the user interface layer, the application of logic layer, data access layer, data storage layer of different levels, and at each level of the continuous refinement, the characteristics of the division of labor to maximize. This method of division of labor may be a good example, but in the actual project development, the strict division of Labor will necessarily mean a lot of jobs, multi-level communication and coordination of personnel. In actual work, the work should be cut to that level to complete, is a compromise result, rather than relying solely on academic discussion can draw conclusions.
After using the Java EE, inadvertently will accept this division of work mode and work model, and by default according to this pattern to form a development team, so the development team began to expand, there is the development of the foreground, there is a background development, plus the database development, plus testing, Project Manager Light Coordination so many people's work is too busy, and there is time and energy to really consider the project's architectural optimization.
Another negative effect caused by the meticulous division of labor, is that a lot of people in the beginning can only be confined to one of their jobs, the lack of real awareness of other people's work, project team members, in addition to the project manager, there is little chance to really grasp the whole system concept, so in thinking about the problem, Can not exceed the limitations of their own role, only to be businesslike. In the overall project perspective, almost everyone in the elephant, there is no overall concept, the project a lot of problems are covered up to the last minute to focus on the outbreak.
In the view of software engineering, appropriate information shielding can reduce the interference of invalid information to the staff, in order to improve their efficiency and judgment ability; But when this view goes to extremes and attempts to treat every worker as a mechanical device that cares only a little, the entire project team becomes very mechanical because it is impossible to grasp the overall information, Nor is it possible to truly reflect on the project itself and improve it as a whole. The entire project team will soon fall into a collective unconscious.
5.2 Technical Courses
There is a strong connection between the problem of technical route and the meticulous problem of division of labor. Because the division of labor is strengthened and emphasized, different positions, different roles of staff naturally use different technical routes to try to solve problems, and gradually develop their own set of technical route out. For example, the front-end development of the use of HTML language, and later developed Css,javascript, and JavaScript has developed several sets of different versions, adapted to different browser environment frame platform, and in the background of the development of the Java language, first developed a JSP tag library, and the development of Jstl, with WebWork, and the development of struts, and the development of spring; and database interactive access to the place, with the hibernate, and itabits and so on; at the same time, the development of log4j, caching tools, such as a variety of things out.
The reason for the development of so many new things come out, one of the reasons is to strengthen the Division of labor, everyone in trying to solve their own problems, in accordance with their own ideas put forward a new thing, and then gradually develop, so a new thing appeared.
The emergence of these new technologies, the emerging framework, has indeed simplified the development of some part of the work, on the other hand, from the perspective of the overall project development, the more technology used, the project itself has become increasingly confusing, the development and maintenance of the hidden costs in the rapid increase in imperceptible.
Spring's appearance is a good annotation of this situation, because there are so many things to be used in development that it is not easy to configure, so the spring inventor thought of a way to put all these things into a big bag, loaded together, and called Spring. But frankly, does this really simplify the development of the entire project, and I'm very skeptical about it.
5.3 Development maintenance complexity too high
Development and maintenance of the complexity of the problem, and the division of fine, technical line of the long advance is a causal factor. As the division of labor became thinner and more trivial, the use of more and more technology, users can only have an understanding of the situation, the overall system development complexity increased, need to understand a lot of technical knowledge of the combination of people to complete a project; From the maintenance point of view, the maintenance personnel must understand so many technical knowledge, In order to ensure the long-term stability of the system operation.
Development of the time division is too thin, the use of excessive technology, and ultimately lead to the development and maintenance of the complexity of the increase, will inevitably lead to the development and maintenance of high costs.
However, many people face this problem, the instinct of the first reaction is to continue to strengthen the Division of labor, to try to devote more manpower to solve the problem, but ignore the division of labor itself is a part of the problem, in trying to solve the problem while strengthening the problem.
5.4 Clients cannot participate
Because of the design of the whole development model of Java EE, we do not consider how the customer should participate and how to present their opinions. For detailed analysis, see the analysis in the above section.
At the same time, in such a complex development environment, the developers themselves can not describe the overall development process, the development of the overall structure, in this case, the customer itself is more unable to intervene in the development of the whole process, but only after the completion of the program development to make comments to modify.
From the user's requirements to the final program implementation, in a complex development process, it takes a long time to complete, in the process, the customer is unable to participate. The revision of the final program will make the development of the project into a new round of changes, so as to further lengthen the project cycle. At last everyone was exhausted.