Software development law of 99% of the developers considered incomplete, you know what?


These well-known law of software development, you know what?

As with other areas of software development, there are some very interesting laws. Programmers, architects and technical managers often mention them in meetings and chat. As a white, we often only nod in part because we do not want to let each other know that we actually do not know Brooke Davis mole or what people are.

These include some of the rules or the laws of the software development power of God saying. They are very interesting and worth a closer look, and each has the law behind the amazing background story.

In this article, share software development best-known and most common interpretation of laws and ideas with you.

Murphy's Law (Murphy's Law)

Probably one of the most famous of the law, mainly because it only applies to software development.

If something can go wrong, it will go wrong.

The first corollary: those valid (the code), but you probably did not write it.

The second corollary: The Curse is the only one to say it all the programmer can fluent language.

Conclusion: The computer will follow you wrote (the code) to do, and not do what you want.

Defensive programming, version control, doomsday scenarios (for those damn zombie server ***), TDD, MDD, etc., which are against the law of defensive practice.

Brook's Law (Brook's Law)

Most developers are consciously or unconsciously experienced Brook's Law, which states that:

Additional manpower to a late software project's delay will only make the project more severe.

If there was a project extension, simply increase the manpower is likely to lead to disastrous consequences. Efficiency of programming, software development, technical architecture review and other factors will always bring better results. If not, then the law says 明霍夫施塔特 also at work.

Hofstadter's Law (Hofstadter's Law)

Hofstadter's Law was proposed by Douglas Hofstadter, and is named after him.

Of course, this law will do with the TV series "Big Bang" in Leonard Hofstadter confused, though he said some words to some people is a little sense.

https://img.mukewang.com/5d1332b800017dc704610343.jpg

The law states that:

Even if you take into account Hofstadter's Law, the actual completion time of projects always take longer than expected.

This "law" is about the difficulty of accurately estimate time required to complete complex tasks. This law is recursive, reflect the difficulty of prediction of complex projects, even though you may have made the greatest efforts, but also know the complexity of the task.

This is why there must be a buffer during the project estimates.

Conway's Law (Conway's Law)

Software structure reflects the structure of the organization of software development.

Or put it more clear:

Organization structure of the designed system is limited to the communication structure of the organization.

Many organizations are divided according to functional skills of the team, so there will be front-end development team, the development team and the back-end database development team. Simply put, if someone wants to change things belong to other people, then he is unlikely to change these things.

More and more organizations to set up the team according to the context bounded, but also micro-services architecture based on services rather than isolated border technical architecture partitions to form teams.

Thus, according to the target software architecture to build teams can more easily implement software architecture, and this is an effective way to Conway legal confrontation.

Bosi Tuo's Law (Postel's Law) or robustness rules

Conservative output, free to enter.

Jon Postel will initially implement robust as a principle of TCP. This principle is also reflected in HTML, HTML success or failure can be attributed to its many attributes, but what HTML is success or failure, different people have different views.

Pareto rule (Pareto Principle) or 80/20 rule

For many phenomena, 80% of 20% of the reason stems from the consequences.

80% of the bug comes from 20% of the code, this is the Pareto Principle says.

Others say the company 80 percent of the work is done by 20% of employees completed, the problem is you do not know which 20% of employees.

Peter law (The Peter Principle)

This is a fairly depressing the law, especially if you happen to be personally experienced.

In a hierarchy, every employee tends to be promoted to the position of his incompetence.

Dilbert (Dilbert) comic series There are some examples in this regard.

https://img4.mukewang.com/5d1332c30001bc1c05640175.jpg

Kirchhoff's law (Kerchkhoff's Principle)

In cryptography, the system should be safe, even if all things are open systems - in addition to a small part of the information - secret key.

This is the main law of public-key cryptography.

Linus's law (Linus's Law)

This is the father of Linux Linus Torvalds named, the law states that:

If enough eyes, all of the bug will be nowhere to hide.

You can use the famous "The Cathedral and the Bazaar" to describe this law, which explains the contrast between two different free software development model:

Cathedral models - each software release will provide the source code, but the code developed between releases is limited to a set of proprietary software developers.

Market model - code development public via the Internet.

in conclusion? The source code for more extensive public testing, evaluation and experimentation, you will find various forms of bug faster.

Moore's Law (Moore's Law)

The unit cost of computer power every 24 months count double.

The most popular version is said:

The number of transistors on an integrated circuit about every 18 months will be doubled.

or:

Computer processing speeds double every two years!

https://img2.mukewang.com/5d1332cd00015f8006400299.jpg

Worth's Law (Wirth's Law)

Software is easier than slower hardware.

Refer to Moore's Law now!

Ninety-nine law (Ninety-Ninety Rule)

The top 90% of the code takes up 10% of the time, and the remaining 10% of the code takes up the remaining 90% of the time.

Some people do not agree with this?

Knut optimization rules (Knuth's Optimization Principle)

Premature optimization is the root of all evil.

https://img1.mukewang.com/5d1332d80001b98f02840420.jpg

The first to write code, and then identify bottlenecks, and finally repair!

Novarg's Law (Norvig's Law)

*** any more than 50% rate of technology will not be doubled again (no matter in how many months).

Shannon's law really

Do not updated, I learned not move!

...... McCaw.

Information: windy

Finally, make ad: soft power agile development framework (www.learun.cn), OA, ERP, CRM and other enterprise management systems development artifact, these laws are not the thing to support micro-channel, APP synchronization Oh, uncle to welcome you to show up.


Guess you like

Origin blog.51cto.com/14006516/2413975