From ecea86359b12524cd93a57baabcb7096ae32fad6 Mon Sep 17 00:00:00 2001
From: Hui Lan <lanhui@zjnu.edu.cn>
Date: Fri, 21 Feb 2020 18:46:29 +0800
Subject: spm-slides.tex: netscape stories, lessons and quotes from Jamie
 Zawinski and Joel Spolsky

---
 spm-slides.tex | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 131 insertions(+), 3 deletions(-)

(limited to 'spm-slides.tex')

diff --git a/spm-slides.tex b/spm-slides.tex
index 79a5455..023d331 100644
--- a/spm-slides.tex
+++ b/spm-slides.tex
@@ -317,13 +317,141 @@ Example: \href{https://hadoop.apache.org/who.html}{Huawei on Hadoop}.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Browser Wars}
 
-Netscape versus IE in early days (1990's).
+Netscape versus IE in early days (mid and late 1990's).
+
+\begin{itemize}
+\item Netscape.
+  \begin{itemize}
+  \item 1994.  Mosaic Communications Corporation, then Netscape Communications.  Mosaic Netscape 0.9, then Netscape Navigator 1.0.  Over three-quarters of the browser market within three months of launching.  Virtually no competitors.
+  \item 1995.  IPO, market value of 2.9B. A highly innovative product. Thousands of employees.  
+  \item 1997.  Netscape Communicator: Netscape Navigator, Netscape Address Book, Netscape Mail and Newsgroups, and Netscape Composer.
+  \item 1998.  BAD YEAR. Netscape Communicator 5.0 release delayed (and never released).  Acquired by AOL for 4.2B.
+  \item 2002.  Netscape 7.
+  \item 2003.  AOL closed the Netscape department, outsourced it to  Mercurial Communications, a Canadian Company.
+  \item 2007.  Netscape Navigator 9. Market share: IE 77.4\%, Firefox 16\%, Netscape 0.6\%.
+  \item 2008.  Shut down by AOL. No more support. No further releases.
+  \end{itemize}
+\item IE.
+  \begin{itemize}
+  \item 1995. Microsoft IE 1.0, 2.0
+  \item 1996. IE 3.0
+  \item 1997. IE 4.0
+  \item 1998. IE 5.0. Consistently better product, in terms of speed and stability, bundled with Windows OS (dominating desktop market). Free of charge.
+  \end{itemize}
+\end{itemize}
+
+%All browsers https://www.techpaparazzi.com/how-web-browsers-looked-from-in-90s/
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Jamie Zawinski and Joel Spolsky}
+
+``In January 1998, Netscape hit one of its blackest periods -- the first round of layoffs…  At this point, I strongly believed that Netscape was no longer capable of shipping products. Netscape's engineering department had lost the single-minded focus we once had, on shipping something useful and doing it fast. That was no longer happening. Netscape was shipping garbage, and shipping it late.''  - Jamie Zawinski, Former engineer, Netscape.
+
+
+``Now the problem here is that the product's direction changed utterly. Our focus in the client group had always been to build products and features that people wanted to use. That we wanted to use. That our moms wanted to use. 'Groupware' is all about things like 'workflow', which means, 'the chairman of the committee has emailed me this checklist, and I'm done with item 3, so I want to check off item 3, so this document must be sent back to my supervisor to approve the fact that item 3 is changing from 'unchecked' to 'checked', and once he does that, it can be directed back to committee for review.' Nobody cares about that shit. Nobody you'd want to talk to, anyway.” - Jamie Zawinski.
+
+``Open source does work, but it is most definitely not a panacea. If there's a cautionary tale here, it is that you can't take a dying project, sprinkle it with the magic pixie dust of ``open source,'' and have everything magically work out. Software is hard. The issues aren't that simple.'' - Jamie Zawinski.
+
+``The old mantra 'build one to throw away' is dangerous when applied to large scale commercial applications. If you are writing code experimentally, you may want to rip up the function you wrote last week when you think of a better algorithm. That's fine. You may want to refactor a class to make it easier to use. That's fine, too. But throwing away the whole program is a dangerous folly, and if Netscape actually had some adult supervision with software industry experience, they might not have shot themselves in the foot so badly.'' - Joel Spolsky, Software engineer, and co-founder, Glitch
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Lessons from the competition}
+
+{\bf Netscape's mistakes}.
+
+Poor product, poor product decisions, product direction.
+
+{\em Feature creep}. Kept adding features with ``no break, no time for rearchitecture''.  Consequences: (1) Messy codebase.  (2) Buggy product.
+
+%Feature bloat (too ambitious). Bloatware.  Groupware.
+
+5.0 never released. 6.0 released prematurely after 3 years (under management pressure).
+
+%Outdated browser core.
+
+MISTAKE.  Try to do everything from scratch (in year 1998).
+
+%JOEL SPOLSKY  https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
+
+{\bf IE's upper hand}.
+
+Always ``Free of charge''.  Microsoft could affort it.
+
+Bundled with Windows OS.
+
+Not that bad in the beginning, and consistently better afterwards. Frequent releases.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Status quo}
+
+Netscape Navigator evolved to Firefox.
+
+Internet Explorer evolved to Edge.
+
+Even more browsers nowadays: Firefox, Chrome, Safari, Edge, Opera, UC Browser, QQ, 360, Sogou, Baidu, etc.  Which one are you using now?  Which one will win?
+
+I am using Edge now.  (I used Firefox many years.)  I think unless
+you have a clear advantage in your product, it is very hard to compete
+with a company who bundles its product with its operating system.  For
+most users, why do they need to bother with downloading something
+(usually big) that is not far superior to the default one
+which is free?
+
+% 95\% of the users are laymen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Starting from scratch}
+
+How to treat old code wisely?  Throw it away?  
+
+Why do programmers want to start from scratch?  Fundamental Law of Programming (Joel Spolsky): It’s harder to read code than to write it.
+
+Starting from scratch can be an absurd strategy or behaviour.
+
+Startup company killer: Build one to throw away.
+
+Big misconception: New code is better than old.  
+
+Reasons;
+
+\begin{itemize}
+\item You cannot guarantee that new code is better than old code.
+\item When we add code, we add functionality, and bugs as well.
+\item While old code looks ugly, new code can be even worse.
+\item You may make old mistakes again, and make new mistakes.
+\item Old code has been used, tested and fixed.  New code has not.  This means tremendous efforts and time (usually invisible to you) have been invested in the old code. That's money.
+\item Old code: maybe the fix is just one line of code, or just a few characters.  But that demands tremendous efforts. Throwing away code is throwing away the efforts, sometime years of programming work.
+\item  (Old code) doesn’t acquire bugs just by sitting around on your hard drive. - Joel Spolsky.
+\end{itemize}
+
+
+{\bf Software years}.  Even if your new code is better, you may be several software years behind, and therefore, lose market.
+
+% Things You Should Never Do, Part I https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Refactoring old code and building upon it}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Losing focus}
+
+Don't even think about creating bloatware, or groupware.
+
+Carry on your product vision.
+
+Many Distractions, One True North.
+
+
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Old Code}
+\foilhead{Rhythm of releases}
 
-Starting from scratch can be a absurd behaviour.
 
 
 
-- 
cgit v1.2.1

