Open source project (Tianwang Qianfan) feel by 9CBS Zihui

xiaoxiao2021-03-05  29

Open source project (Tianwang Qianfan), wrote some feelings

[Basic mode of operation] I have said that we have recruited project consultants. Our basic operation is also determined by the joint discretion through the project consultant. This makes me feel the role of open source before the project. Below is our development model (here is called "Thousand Sail Development Mode") and the standard enclosed source development model and standard open source development model. It can be seen that we are in general openness.

On the basis of the source code development model, it is borrowed from some of the sequentially closed development model.

Thousand sail development model

Development Team Organization Mode: Dispersion Developers Compose the Development Team through the Internet Release Time: Fixed time is released, but the module is completed, the module is released as soon as possible to provide source code object: the public releases responsible for the test department

Door: No special test sector management means: according to the life cycle management, emphasize collaboration, voluntarily participation in order to strengthen communication, for a weekly project case for people to meet, can not be able to participate in a weekly web conference. The first case of the project will be launched on April 28th, the original plan is on August 15th.

Bunch, divided into week, a total of 16 weeks,

[First Assembly] On the afternoon of April 27th, it is the day before the project started. I urgently contacted the artist of Tianjin in Tianjin, I hope he can complete our project website before the afternoon, good Officially official

Start our project team. I still remember now, I communicated with him in the afternoon. After I express my ideas, he was in a few hours, that is, eight, nine o'clock, just give

I showed the home page of the website - a place where it looks very mature, and released our website on the next day. If this work is made by me, it may be able to do it, but the quality is far less than

He and will definitely affect the next day's conference. There is a beautiful work, I also quickly find another member Chen Chao, he helped us soon assume our server - a server with Redhat 9 Linux. Through everyone's unremitting efforts, we released our work website on April 28 and held the first project meeting on the same day. In the preparatory process of this meeting, everyone has deeply felt open source.

Charm - a group of people who don't know, even those who can't meet, because they have gathered together, and worked excited for a common goal. The first meeting, everyone is very interested, after the introduction of self-introduction, I want to think about our wonderful "future", and everyone talks about some ideas for the new system. After the meeting, everyone took a group photo.

[A variety of development methods parallel] After the project team established, the official team was started. In order to avoid risks, we originally considered all strict accordance with the software engineering and borrowed the Thought of TSPI (Group Software Development Process). The entire development cycle plan from April 28th to August 15th, a total of 16 weeks

. The project uses iterative development, divided into two phases. But soon, I quickly discovered a reality, facing a loose open source team, the simple and strict development method is not efficient, and we adjust the development method. We use two phases of demand, design, and

On the basis of implementation, according to the needs of the function, the following two parallel development methods are used in certain independent development. First, the demand is very clear, there is quite grasping the successful mature independent module, which can be delivered to the skilled developers independently develop, the developers can follow their favorite development methods, as long as the rules

During the time, the development is completed, it is not necessary to strictly follow the process of software engineering, but to ensure the quality of the development of the module. Second, the development of new functional modules that can't be explored, due to the large risk, it is independently proposed. The developer of this module is required to complete the development of functional demonstrations in a shorter time. Because only functional demonstrations are not required, it is necessary to clarify the implementation method of the module to facilitate the application of the real system. In this way, the entire open source team has three three lines that move forward: follow the Software Engineering's iterative development, the small team developed by mature modules, and the exploration of new functional trials

A danger.

[Use of tools] For open source projects developed through network collaboration, collaborative development tools are naturally not less. Now I want to come, the tool we use is really quite. Website: First, build your own website, ensure that people inside and outside the team can clearly understand the progress of the project, this is the window of the entire project, our universal work has completed a beautiful website in the first time, suddenly

Give people a high starting point. Version Control Tools: Since the amount of code is getting bigger, in the development, each member must retain a copy, which is very easy to cause conflicts in development. So version control tools are very necessary. CVS is available

The source code version management system in the group collaboration environment. The same software has the SCCS (Source Code Control System) of AT & T, and PVCS, etc. CVS is used to be used, so we chose it, it

It can provide the following features: Synchronous modification, maintain different versions, find history. Development Tools: Because the project is large, there are more people, and the development tools we use are also a lot. Modeling: The slightly large system requires a global plan, which we used Rose and Visio. Code development: VI, Emacs are commonly used in Linux tools, Eclipse CDT is also a good choice, Magic C is another "magical" tool we find, it can make you

Under Windows, by the interface similar to the VC, debugging the program under Linux, which has also been applied in our development. Document establishment tool: Doxygen, we found that it is a nice document establishment tool that can establish a variety of different forms of documentation by analyzing the marks set in the source code. Code Format Tool: Although this is a lot of tools, we have not enough energy to pick. The only tool IDENT used, actually modifies our source code, causing compilation that cannot be passed. Compile, debug tool: We chose the most widely available GCC, GDB. Publishing Tools: As the project progresses, you may need to be released, AutoConf, Automake, Tar is necessary. RPM is also a more popular release tool, or it can be considered. BUG management: Can consider using Bugzilla, but we have not used any bug management tools. In addition to these development related tools, we found the most important thing that is actually the tools used for communication: Air: "Is the air communication tool?", It is a medium that we communicate in our face! Yes, after practice, we find that face-to-face communication is still the most important and efficient communication tool. So as long as

It is possible, or it is a face, but it is not necessary to whisper with the developers around you with QQ. Instant Communication Tools: such as QQ, MSN, etc., it has almost become the second efficient communication method. In addition, almost all of them can be adopted by us. And the fact that this is still not too far, communication is the most important!

[The release of the first module] Project is only in less than three weeks, and Xie Han, "Small Team, which is developed by mature module", released the first module - TCP port scan module for searching for providing FTP Service host scan

. This module uses a new way, and the work that is originally required for 1 month is increased to just a few hours! The issuance of the first module greatly improved the morale of the entire open source team, and our project influence in the world is also preliminary.

[Problem continues] The project continues, the third week is very fast, there is no special thing. With the arrival of the fourth week, there are quite a few members face the pressure of the final exam, but they have to stop developing work. The entire project is in the first

A few days a few days in front of the stagnation state. I decided to change this status quo, temporarily recruited a number of members without the final exam pressure, but because it is halfway, it is not effective in a short period of time.

. After a hundred bored five-week end, it was found that the project progression was very slow during the absence of the core developers. With the arrival of the sixth week, most developers have ended the final exam, we

The golden development period - the holiday has arrived. But followed by new problems: The developer suddenly suddenly, the original organizational structure is no longer adapted to the new situation.

[Changes in organizational structure] At the beginning of the project, there are not many people, and the organizational structure is also simple, as shown below: Considering the actual grasp and time input, the project team leader also assumes the work of the development manager, and Direct leadership. Consultant collaborative project team leader. Each core developer is responsible for a specific

The development of subsystems, taking into account the weight and cumbersome project team leaders, one of the core developers also undertake some assistant to the development manager, and the project team leader does not work as a core development. In the sixth week, the personnel reached 16 people, the original organizational structure is no longer able to meet the management requirements at this time, and adjust the potential. At first we would like to divide the development team into 2-3 groups according to the general practice.

Each team selects a group length, and the team leaders report to the project leaders. As shown in the figure below: But this adjustment is quite difficult: on the one hand, development work has begun, so that the original person will change the role or adjust development content will be very difficult; on the other hand, the entire development team is in addition to the project group

In addition, other people lack sufficient understanding and sufficient working hours for the overall system, so it is difficult to select the right person to bear the role of the group length. After many discussions and project consultants, the final organizational structure is like

under:

This seems a slightly complex structure. In fact, the basic idea is simple: 1. The work content of the core developer who has begun to work is basically unchanged, and the auxiliary developers cooperate with core developers; In order not to increase the management workload of core developers, there is no role in the development of small groups; management work is directly responsible by the project team leader; 3. In order to prevent excessive work of the project team leader, strengthen the role of the development manager assistant; arrange a auxiliary developer to cooperate with its work. In general, the new organizational map is still reasonable in the implementation. However, the project team leaders must undertake many management, coordination work, and some development work is hard than others. But as a unique full-time staff, this is still acceptable.

转载请注明原文地址:https://www.9cbs.com/read-32478.html

New Post(0)