Laws and principles you should know about software development

Laws and principles you should know about software development

For sure I am missing some important, but I have done this list of laws, principles or "jokes that are, indeed, true" about software development.

I'd love if you write in the comments more of these,...

Distributed Computing

  • Brewers' Theorem: a distributed computer system cannot provide consistency, availability and partition tolerance, all at optimal levels.
  • 8 Fallacies of Distributed Computing (L. Peter Deutsch)
  1. The network is reliable.
  2. Latency is zero.
  3. Bandwidth is infinite.
  4. The network is secure.
  5. Topology doesn't change.
  6. There is one administrator.
  7. Transport cost is zero.
  8. The network is homogeneous.

Project management

  • Graham's Law: if they know nothing of what you are doing, they suspect you are doing nothing.
  • Parkinson's Law: work expands to fill the time available.
  • Kinser's Law: about the time you finish doing something, you know enough to start.
  • Brooks's law: adding manpower to a late software project makes it later.
  • Conway's law: organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.
  • Ziv's Law: software development is unpredictable and that specifications and requirements will never be fully understood
  • Humphrey's Law: users do not know what they want until they see working software.
  • Wegner's Lemma: interactive systems can't be fully specified nor can it ever be fully tested.

Miscellaneous

  • Pareto Principle: For many phenomena, 80% of the consequences stem from 20% of the causes.
  • Miller's Law: the number of objects an average human can hold in short term memory is 7±2.
  • Postel's Law: Be conservative in what you do, be liberal in what you accept from others.
  • The Law Of Leaky Abstractions (Joel Spolsky): all non-trivial abstractions, to some degree, are leaky.

It's funny because is true

  • 90/90 Rule: the first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.
  • Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
  • Hartree’s Law: Whatever the state of a project, the time a project-leader will estimate for completion is constant.

要查看或添加评论,请登录

Ernesto Arroyo的更多文章

  • Pérdidas de tiempo

    Pérdidas de tiempo

    En ajedrez una ganancia o pérdida de tiempo (según el lado) es una jugada que en realidad es innecesaria e inútil…

    2 条评论
  • Attention to details makes a huge difference

    Attention to details makes a huge difference

    In software development I think people sometimes we invest a huge time and effort in having the perfect solution. But…

    1 条评论
  • Bolsa y mercados: ?Qué es un valor en subida libre?

    Bolsa y mercados: ?Qué es un valor en subida libre?

    Este peque?o artículo no es ninguna recomendación de invertir en los valores que se mencionan, es sólo una explicación…

  • Manager Decisions Guide

    Manager Decisions Guide

    One of the most important abilities for any manager is to take decisions. Bad managers don't master the techniques…

    1 条评论
  • It's not really the noise: it's that they don't care.

    It's not really the noise: it's that they don't care.

    Does this happen in your office? There are activities that produce noise. A construction work, cars, and traffic…

    1 条评论
  • ?Scrum? Las personas primero, por favor.

    ?Scrum? Las personas primero, por favor.

    Como creyente y practicante de "la agilidad", de la que duele, voy a expresar mi disconformidad con ser Scrum Master, o…

    2 条评论
  • PSD2 & AIS

    PSD2 & AIS

    Atención: las opiniones reflejadas en este artículo no representan en modo alguno las de la empresa en la que trabajo…

  • JWT claims for PSD2 HTTP message signature

    JWT claims for PSD2 HTTP message signature

    Ernesto Arroyo, David Calleja, Bimal Melwani. UPDATE: It seems we are not the first to come to the same approach:…

    2 条评论
  • Estimate is futile

    Estimate is futile

    Estimations are useless. A project managed or run using estimations being days, hours or even story points is useless…

    1 条评论
  • La banca "tradicional" igual no es tan mala

    La banca "tradicional" igual no es tan mala

    BBVA continua con su campa?a de promoción de su servicio de agregación, "Todos tus bancos son bienvenidos" y Openbank…

    1 条评论

社区洞察

其他会员也浏览了