Author: OSS Developer Language: text
Description: I was disappointed in how you compared the Linux Kernel to a dictatorship Timestamp: 2013-07-28 15:33:56 +0000
View raw paste Reply
  1. Hey guys, I enjoy LAS, Unfilter and the Bitcoin show. However, I was
  2. disappointed in how you compared the Linux Kernel to a dictatorship and
  3. "like a prison". As an Open Source developer and maintainer myself, imho the
  4. Linux Kernel's development process is stuck in the 1990s.
  5. Allow me to explain.
  6.  
  7. In 1999 Test Driven Development (TDD) [1] first appeared, and later spread like
  8. wild fire throughout the OSS world in the 2000s. Before TDD, developers relied
  9. on tedious code-reviews and manual QA. With TDD, all new code had to have tests
  10. which tested each and every edge-case. This allowed developers to reason about
  11. the correct behavior, with code instead of English. TDD also gave contributors
  12. and maintainers a way to quickly determine if a patch introduced bugs.
  13. If a patch broke tests or lacked tests, then it would not be accepted
  14. until the contributor fixed their patch. More active projects automated
  15. this even further, by using Continuous Integration (CI) servers
  16. (ex: Travis CI [2]) to run the test suite against every new Pull Request/commit
  17. and send an automated email to the offending contributor/developer;
  18. sans the Finnish curse words of course. ;)
  19.  
  20. Automated testing acts as a buffer between contributors and developers,
  21. reducing conflict and increasing productivity.
  22. If Linus wants more patches with fewer bugs, than maybe it is time to embrace
  23. TDD and/or Continuous Integration as a front-line defense against stupid.
  24.  
  25. Just my 0.02 mBTC from the front-lines of Open Source.
  26.  
  27. [1]: http://www.agiledata.org/essays/tdd.html#WhatIsTDD
  28. [2]: https://travis-ci.org/
  29.  
  30. PS: you can get dd/ddrescue to print status updates by sending the USR1
  31. signal to the process:
  32.  
  33. watch 'kill -USR1 $(pidof dd)'
View raw paste Reply