czwartek, 1 stycznia 2015

Technical papers for programmers

  1. Out of the Tar Pit (by Ben Moseley and Peter Marks)
    • Accidental vs. Essential complexity
    •  "We have argued that complexity causes more problems in large software
      systems than anything else. We have also argued that it can be tamed
      — but only through a concerted effort to avoid it where possible, and to
      separate it where not. Specifically we have argued that a system can usefully
      be separated into three main parts: the essential state, the essential logic,
      and the accidental state and control." 
  2. Dynamo: Amazon’s Highly Available Key-value Store(by Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels)
  3. Time, Clocks, and the Ordering of Events in a Distributed System (by Leslie Lamport (1978))
  4. Anchoring and Adjustment in Software Estimation. (By Jorg Aranda,  Steve Easterbrook).
    • Although the patterns on each condition are visible on the chart,
      the following numbers help to clarify it. The “2 months”
      participants had a mean estimate of 6.8 months. 
    • The control condition has a slightly higher mean estimate, at 8.3 months
    • and the “20 months” condition’s mean estimate is 17.4 months.
       
  5.  State the Problem Before Describing the Solution (By Leslie Lamport)
    .
    • a brief informal statement of the problem
    • the precise correctness conditions required of solution (this is the most important point that allows verify that we solve the right problem)
    • the solution
    • a proof that the solution satisfies the requisite condition