I. Problems encountered
1. What kind of team development model is more efficient?
2. What are the core competencies of the software industry?
3. What are the pros and cons of extreme programming?
4. What kind of software is a good software?
5. Is it really appropriate to develop and test by different people?
Two. The proposed software and software engineering
Software: In the 1860 's, Ada (Augustaadalovelace), for the first time tried to write software for Babbage (Charles Babbage) mechanical computer.
Software Engineering: The 1968 North Atlantic Treaty Organization's computer scientists at the International conference held in Germany, the first time to put forward the term "softwarecrisis". At the same time, discuss and make out the "software crisis" countermeasures. For the first time in that meeting, software engineering was proposed.
three. Project management software
(1) Microsoft TFS
Advantages: And VisualStudio integration of the best, the function of itself is very powerful, and is not only a source management, but the personal use generally also mainly with its source management functions.
(2) Git
Git is a free, open source distributed version control system for agile and efficient processing of any or small or large project. Git is an open source distributed version control system for efficient, high-speed processing of project versioning from very small to very large.
Advantages: Suitable for distributed development, emphasizing individual. Public server pressure and data volumes are not too large. Fast and flexible. Conflicts can easily be resolved between any two developers. Work offline.
Cons: Less data (at least Chinese information is scarce). The learning cycle is relatively long. does not conform to conventional thinking. Code confidentiality is poor, and once the developer has cloned the entire library, all code and version information can be fully exposed.
(3) Mercurial
Mercurial is a lightweight distributed version control system, implemented in Python language, easy to learn and use, and strong extensibility. It is an open source project based on the GNU general public License (GPL) license.
Compared with the traditional version control, it has the following advantages:
Easier to manage. Traditional version control systems use centralized repository, and some repository-related management can only be done by the administrator alone. Due to the use of distributed models, there is no such trouble in Mercurial, each user to manage their own repository, administrators only need to coordinate synchronization of these repository. A more robust system. The distributed system is more robust than a centralized single-server system, and a single-server system cannot run once the server has problems, and distributed systems are usually not affected by one or two of nodes. The dependency on the network is lower. Since synchronization can be done at any time, Mercurial can even be managed offline, only when there is a network connection.
(4) BitBucket
BitBucket is a source-code hosting site that uses mercurial and git as a distributed version control system with both business plans and free accounts.
Features: Unlimited number of private warehouses, unrestricted disk space, support https/ssh;bug tracking, project WIKI;API Support, flexible permission control, customizable domain name, RSS change record output, custom download
Personal blog Job Week1