Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Class 4: Software Licenses and Development Philosophies

Class 4: Software Licenses and Development Philosophies

Class Notes for 12/12/2013.

Ian Luke Kane

December 12, 2013
Tweet

More Decks by Ian Luke Kane

Other Decks in Technology

Transcript

  1. Software Licenses A legal instrument governing the use or redistribution

    of software. Roughly split between proprietary and open source (“free”) licenses. The end-user license agreement (EULA).
  2. iTunes EULA, for example Check it out
 Related: Richard Dreyfuss

    reads the iTunes EULA ! E. YOU FURTHER ACKNOWLEDGE THAT THE APPLE SOFTWARE AND SERVICES ARE NOT INTENDED OR SUITABLE FOR USE IN SITUATIONS OR ENVIRONMENTS WHERE THE FAILURE OR TIME DELAYS OF, OR ERRORS OR INACCURACIES IN, THE CONTENT, DATA OR INFORMATION PROVIDED BY THE APPLE SOFTWARE OR SERVICES COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE, INCLUDING WITHOUT LIMITATION THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, LIFE SUPPORT OR WEAPONS SYSTEMS.
  3. Open Source Licenses Split between permissive licenses and copyleft licenses.

    Permissive: Aim to have minimal requirements about how they software can be redistributed (BSD and MIT) Copyleft: Aim to preserve the freedoms give to the users by ensuring that all subsequent users receive those rights (GPL) Why so many licenses? Because there are different goals.
  4. Open Source License Primers Jeff Atwood’s “Pick a License, Any

    License” Cameron Chapman’s “A Short Guide To Open-Source and Similar Licenses” David Lee Todd’s “Free and Open Source License Comparison” GNU’s “Various Licenses and Comments about Them”
  5. Open Source License Philosophy Copyright and the 21st Century (Creative

    Commons) Tivoization Mixing Code with Different Licenses Patent Disputes (Apple v. Samsung) Examples: GPL: Linux
 LGPL: 7-Zip
 MIT: jQuery
 BSD: Django (used by Pinterest, Instagram)
 Apache: Hadoop
  6. Software Development Methodologies and SDLC A framework that is used

    to structure, plan, and control the process of developing an information system. Different systems have their own strengths and weaknesses and may be appropriate for a certain kind of project. They can really be considered differing philosophies.
  7. Predictive vs. Adaptive Spectrum Predictive Focus on planning the future

    in great detail while attempting to take known risks into consideration. Adaptive Focus on being able to adapt quickly to changing realities. If the need changes, the team changes as well. The future is much more fuzzy. The “Agile” software development methods.
  8. Waterfall Development Project is divided into sequential phases with various

    overlaps and some cycling between phases. Emphasis on planning, scheduling, hitting a date, budgeting, and implementing an entire system at once. Tightly controlled through documentation, formal reviews, and management sign-off between phases.
  9. Scrum Framework in 30 Seconds A product owner creates a

    prioritized wish list called a product backlog. During sprint planning, the team pulls a small chunk from the top of that wishlist, a sprint backlog, and decides how to implement those pieces. The team has a certain amount of time, a sprint, to complete its work - usually two to four weeks - but meets each day to assess its progress (daily scrum).
  10. Scrum Framework in 30 Seconds Along the way, the ScrumMaster

    keeps the team focused on its goal. At the end of the sprint, the work should be potentially shippable, as in ready to hand to a customer, put on a store shelf, or show to a stakeholder. The sprint ends with a sprint review and retrospective. As the next sprint begins, the team chooses another chunk of the product backlog and begins working again.
  11. Asshole Driven Development Asshole Driven Development (ADD) – Any team

    where the biggest jerk makes all the big decisions is asshole driven development. All wisdom, logic or process goes out the window when Mr. Asshole is in the room, doing whatever idiotic, selfish thing he thinks is best. There may rules and processes, but Mr. A breaks them and people follow anyway. (Hilariously true article by Scott Berkun)