<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Software Industrialization</title>
    <link>http://softwareindustrialization.com/</link>
    <description>Software Industrialization</description>
    <language>en-us</language>
    <copyright>Mitch Barnett</copyright>
    <lastBuildDate>Fri, 09 Oct 2009 06:57:34 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>mbarnett@uniserve.com</managingEditor>
    <webMaster>mbarnett@uniserve.com</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/softwareindustrialization" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=90f19b6c-228d-4cef-8f91-e9945c75eeb9</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,90f19b6c-228d-4cef-8f91-e9945c75eeb9.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,90f19b6c-228d-4cef-8f91-e9945c75eeb9.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=90f19b6c-228d-4cef-8f91-e9945c75eeb9</wfw:commentRss>
      <title>Software Abstractions</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,90f19b6c-228d-4cef-8f91-e9945c75eeb9.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/BliV3J893ZA/SoftwareAbstractions.aspx</link>
      <pubDate>Fri, 09 Oct 2009 06:57:34 GMT</pubDate>
      <description>&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;When I use
the term &lt;a href="http://en.wikipedia.org/wiki/Software_engineering"&gt;software engineering&lt;/a&gt;&lt;?XML:NAMESPACE PREFIX = O /&gt;,
the definition I am referring to is:&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;&lt;em&gt;“Software
Engineering is the application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software, and the study of these
approaches; that is, the application of engineering to software.”&lt;/em&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;So what then
is a Software Abstraction?&amp;nbsp; Take this paragraph from the awesome book, &lt;a href="http://www.amazon.com/Software-Abstractions-Logic-Language-Analysis/dp/0262101149"&gt;“Software
Abstractions”, by Daniel Jackson&lt;/a&gt;: 
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;&lt;em&gt;“Software
is built on abstractions.&amp;nbsp; Pick the right ones, and programming will flow naturally
from design, modules will have small and simple interfaces, and new functionality
will more than likely fit in without extensive reorganization.&amp;nbsp; Pick the wrong
ones, and programming will be a series of nasty surprises: interfaces will become
baroque and clumsy as they are forced to accommodate unanticipated interactions, and
even the simplest of changes will be hard to make.&amp;nbsp; No amount of refactoring,
bar starting again from scratch, can rescue a system built on flawed concepts”.&lt;O:P&gt;&lt;/O:P&gt;
&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;Brilliant!&amp;nbsp;
It’s the first paragraph of the 1&lt;sup&gt;st&lt;/sup&gt; chapter into a world of real software
design - i.e. formal specification, including the ability to model and automatically
analyze&amp;nbsp;your design:&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;&lt;em&gt;“Unlike
theorem proving, this analysis is not “complete”: it examines only a finite space
of cases.&amp;nbsp; But because of recent advances in constraint – solving technology,
the space of cases examined is usually huge – billions of cases or more – and therefore
offers a degree of coverage unattainable in testing.”&lt;O:P&gt;&lt;/O:P&gt;
&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;&lt;em&gt;“Moreover,
unlike testing, this analysis requires no test cases.&amp;nbsp; The user instead provides
a property to be checked, which can usually be expressed succinctly as a single test
case.&amp;nbsp; A kind of exploration therefore becomes possible that combines the incrementally
and immediacy of extreme programming with the depth and clarity of formal specification.”&lt;O:P&gt;&lt;/O:P&gt;
&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;Check out &lt;a href="http://alloy.mit.edu/alloy4/"&gt;Alloy
Analyzer&lt;/a&gt; and the &lt;a href="http://alloy.mit.edu/community/"&gt;Community&lt;/a&gt;.&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;It’s slow
going for me, but I am getting through the book.&amp;nbsp; Until you read this and run
Alloy Analyzer, you cannot imagine the number of “cases” Alloy Analyzer can run, like
the text says, a billion or more.&amp;nbsp; It picks apart your design like you have never
seen before.&amp;nbsp; Imagine what the number of cases would be when you combine dozens
of models to formulate a software application.&amp;nbsp; 
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;This is a
leap forward in software engineering design in my opinion.&amp;nbsp; Being able to analyze
your design against a billion cases without writing a single line of production or
test code is unheard of in mainstream software development industry today.&amp;nbsp; Using
this design approach will produce software design's that will be more robust, perhaps
by orders of magnitude, than any manual method we apply today.&amp;nbsp; The software
design itself, is a complete formal specification&amp;nbsp;used&amp;nbsp;by the “end” software
programming language to&amp;nbsp;transform the complete design&amp;nbsp;into a&amp;nbsp;runtime
solution.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;What about
the software engineering definition comment in the opening?&amp;nbsp; I am pointing out
that we are following the definition of software engineering by using Alloy for designing
software; it is one way to apply a systematic, disciplined and quantifiable approach
to software design.&amp;nbsp;&amp;nbsp;In my opinion,&amp;nbsp;we as an industry, and as professionals,
should be applying more&amp;nbsp;effort towards software design.&amp;nbsp; Why?&amp;nbsp; Read
the “Software is built on abstractions…” paragraph again.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;Daniel Jackson
and his team’s work on Alloy Analyzer, to me, is the state of the art in software
design today.&amp;nbsp; When will it become mainstream?&amp;nbsp; Good question, but you can
help.&amp;nbsp; As a Software Designer, have a look at Alloy.&amp;nbsp; Maybe apply it to
a hobby project.&amp;nbsp; With enough practice, perhaps introduce formal design specification
to the workplace on one small specific issue or algorithm you are working on.&amp;nbsp;
That's my approach.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;I know change
is hard and everyone resists, but look at it as an experiment to try out, see how
it works, and if it makes sense to you.&amp;nbsp; As a software engineering practitioner,
I am trying to become a better software designer by&amp;nbsp;learning new&amp;nbsp;concepts
and techniques.&amp;nbsp; I believe Daniel Jackson’s Alloy makes me a better software
designer.&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;font size=2&gt;&lt;span xsscleaned="font-size:10.0pt;&amp;#10;font-family:Arial"&gt;
&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=90f19b6c-228d-4cef-8f91-e9945c75eeb9" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/BliV3J893ZA" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,90f19b6c-228d-4cef-8f91-e9945c75eeb9.aspx</comments>
      <category>Design</category>
    <feedburner:origLink>http://softwareindustrialization.com/SoftwareAbstractions.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=d0619938-c22f-4b1f-acfb-d20eb4eacce3</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,d0619938-c22f-4b1f-acfb-d20eb4eacce3.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,d0619938-c22f-4b1f-acfb-d20eb4eacce3.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d0619938-c22f-4b1f-acfb-d20eb4eacce3</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Software Reliability in Web Application/Site Design</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,d0619938-c22f-4b1f-acfb-d20eb4eacce3.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/1gmV4e-cYTk/SoftwareReliabilityInWebApplicationSiteDesign.aspx</link>
      <pubDate>Tue, 01 Sep 2009 06:06:22 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;"Software reliability engineering relies heavily on a disciplined software
engineering process to anticipate and design against unintended consequences."&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://en.wikipedia.org/wiki/Reliability_engineering#Software_reliability"&gt;Wikipedia
Software Reliability&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The six paragraphs in this explanation on Software Reliability are bang on in my experience.
In fact, the statement above best describes the difference between project success
and failure. The more disciplined the software engineering process the better quality
the output, in all measurable aspects, is my conclusion after 18 years as a software
professional. Btw, &lt;span style="FONT-SIZE: 10pt; COLOR: #003300; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;disciplined
!= bureaucratic || inefficient.&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
I wonder if software reliability engineering had been applied to the following web
sites, it would have been less likely for me to see these messages:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/mbna error resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/Another reddit error resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/more reddit isssues resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/Reddit be right back resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/Reddit be right back1 resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/Technorati errors resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/linked in we will be back resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/linkedin downtime resize dup.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The irony here is that these two messagess occurred on two seperate dates, not just
20 minutes apart :-)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/vs2010 download bug resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
An Error Has Occured?&amp;nbsp; Pics or it didn't happen! Oh... well how about directing
me to another download site that is known to be working?&amp;nbsp; I can't imagine what's
in the "On-line Self Help."
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/FedEx Java resize.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
No way man! &amp;nbsp;;-)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://softwareindustrialization.com/AeroplanAModernWebSiteIsDownFor2Days.aspx"&gt;Aeroplan,
a fairly large transactional site, was down for two days&lt;/a&gt;. I wonder if software
reliability was on anyone’s minds when the site was designed…
&lt;/p&gt;
&lt;p&gt;
You may have noticed that some of the screen shots show maintenance messages, not
error messages (and other reliability messages). I find it hard to believe that there
is (still) the practice of scheduling "planned outages" for web application/site maintenance
on the main public domain web site. First business rule in the world wild web, you
are always open for business.
&lt;/p&gt;
&lt;p&gt;
Sure, some of these sites have staggering amounts of traffic and processing. However,
it is 2009, where computer hardware has never been cheaper and the most powerful at
the same time. Content Management Systems and Ecommerce systems, have never been more
plentiful, more mature, and the most&amp;nbsp;featured for the least amount of dollars. 
&lt;/p&gt;
&lt;p&gt;
That’s one of the points behind having a disciplined "software engineering process."&amp;nbsp;
One of the most important activities, in my experience, is designing for software
reliability. No, I don’t mean life and death reliability, but given the budget constraints,
what is the best or most acceptable "business risk" the web application/site is able
to mitigate from a reliability point of view. 
&lt;/p&gt;
&lt;p&gt;
What do I mean by business risk in this context? Given that &lt;a href="http://www.aeroplan.ca/home.do"&gt;Aeroplan&lt;/a&gt; was
not able to transact business for two days, let alone how it looked to "customers",
I would be surprised if the executives signed off on that their main public web site
could be down for a two day period.&amp;nbsp; And no, I don’t mean "&lt;a href="http://en.wikipedia.org/wiki/High_availability"&gt;high
availability&lt;/a&gt;" or &lt;a href="http://en.wikipedia.org/wiki/Uptime"&gt;five nines uptime&lt;/a&gt;,
albeit related, I mean software reliability. Even if you paid for five nines up time,
it is very likely your software will error out (or you planned a maintenance window!)
well before you hit that uptime number.&amp;nbsp; &lt;span style="FONT-SIZE: 10pt; COLOR: #003300; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;I
would say&amp;nbsp;that this is&amp;nbsp;predetermined by how&amp;nbsp;your software was designed
and engineered.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
I wonder when the "&lt;a href="http://en.wikipedia.org/wiki/The_Tipping_Point_(book)"&gt;tipping
point&lt;/a&gt;" will occur where the general public will stop accepting software that is
the analog equivalent of missing a wheel on a car. Sure you can drive it, but not
very well. That’s the ultimate problem with software, it is completely invisible to
the majority of people, but if they saw it, and it looked like a car, then they would
see that missing wheel, hear the engine misfiring, and see/smell the smoke bellowing
out where&amp;nbsp;canola oil was used instead of engine oil. The car is clearly a lemon
and would not sell. Even if it did sell, there is a &lt;a href="http://www.lemonlawamerica.com/"&gt;lemon
law&lt;/a&gt;.&lt;u&gt;&lt;font color=#0000ff&gt;
&lt;/p&gt;
&gt;&gt; 
&lt;p&gt;
Yet software&amp;nbsp;contunues&amp;nbsp;to be built, and software products exist today, that
are the equivalent of the lemon of a car, but there is no lemon law or even a guarantee
of any sort for software. There is a reason for that. Some would say that software
is too complex or at least no-one, other than &lt;a href="http://www.fastcompany.com/magazine/06/writestuff.html"&gt;NASA
can afford the level of software reliability engineering&lt;/a&gt; that we comparatively
see in our cars today. Do you think that is true? 
&lt;/p&gt;
&lt;p&gt;
Based on my experience, I don’t think so. In fact, over the mid term and long run
of a software lifecycle, spending the engineering time to design the software correctly
(or as best as possible given budget constraints) easily costs (considerably) less
than just trying to bang the software out using the latest du jour software process
methodology and then fixing&amp;nbsp;the heck&amp;nbsp;out of it for years to come. At least
my own anecdotal experience supports that position.
&lt;/p&gt;
&lt;p&gt;
These software quality issues were screen snapped over a couple week time frame while
I was browsing the net.&amp;nbsp; What does it mean?&amp;nbsp; I feel it means a couple of
things.&amp;nbsp; One is that I am one person, the smallest possible sample size, yet
look at the poor quality software I&amp;nbsp;encountered during a short time frame.&amp;nbsp;
I can't imagine what the impact is on millions of users sampling (hundreds of ?) thousands
of web applications/sites daily.&amp;nbsp; The other is there seems to be far and few
between companies that actually practice designing and engineering software in a disciplined
manner...
&lt;/p&gt;
&lt;p&gt;
Updated Next Day - Ha!&amp;nbsp; 
&lt;/p&gt;
&lt;h1 _extended="true"&gt;&lt;font size=2&gt;&lt;a href="http://www.cnn.com/2009/TECH/09/01/gmail.outage/index.html"&gt;Gmail
outage deprives millions of e-mail&lt;/a&gt;&lt;/font&gt;
&lt;/h1&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/art_gmail_from.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=d0619938-c22f-4b1f-acfb-d20eb4eacce3" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/1gmV4e-cYTk" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,d0619938-c22f-4b1f-acfb-d20eb4eacce3.aspx</comments>
      <category>Engineering</category>
    <feedburner:origLink>http://softwareindustrialization.com/SoftwareReliabilityInWebApplicationSiteDesign.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=5a9c6d46-47d7-4033-b0fc-1f9e677271cc</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,5a9c6d46-47d7-4033-b0fc-1f9e677271cc.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,5a9c6d46-47d7-4033-b0fc-1f9e677271cc.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5a9c6d46-47d7-4033-b0fc-1f9e677271cc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
        </p>
        <p>
          <img src="http://softwareindustrialization.com/content/binary/whos your daddy.jpg" border="0" />
        </p>
        <p>
+1 WolframAlpha
</p>
        <img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=5a9c6d46-47d7-4033-b0fc-1f9e677271cc" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/xHAecqa-Rtk" height="1" width="1" /></body>
      <title>Who's Your Daddy?</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,5a9c6d46-47d7-4033-b0fc-1f9e677271cc.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/xHAecqa-Rtk/WhosYourDaddy.aspx</link>
      <pubDate>Sat, 15 Aug 2009 07:32:09 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://softwareindustrialization.com/content/binary/whos your daddy.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
+1 WolframAlpha
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=5a9c6d46-47d7-4033-b0fc-1f9e677271cc" /&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,5a9c6d46-47d7-4033-b0fc-1f9e677271cc.aspx</comments>
      <category>Industrialization</category>
    <feedburner:origLink>http://softwareindustrialization.com/WhosYourDaddy.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=673bfd8c-9f79-4983-9523-e22a92b7ac50</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,673bfd8c-9f79-4983-9523-e22a92b7ac50.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,673bfd8c-9f79-4983-9523-e22a92b7ac50.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=673bfd8c-9f79-4983-9523-e22a92b7ac50</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>YouTwitter – Next Gen Twitter</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,673bfd8c-9f79-4983-9523-e22a92b7ac50.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/3BWaINtNR0M/YouTwitterNextGenTwitter.aspx</link>
      <pubDate>Tue, 11 Aug 2009 06:50:20 GMT</pubDate>
      <description>&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;I&amp;nbsp;must be getting old.&amp;nbsp; I find
twitter enables a curious social behavior, seemingly aimed at &lt;a href="http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator#Attitudes:_Extraversion_.28E.29_.2F_Introversion_.28I.29"&gt;extroverted
people&lt;/a&gt;, and some would say at its &lt;a href="http://www.cnn.com/2009/TECH/08/07/twitter.attack.reaction/index.html"&gt;extreme&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Narcissistic_personality_disorder"&gt;narcissistic&lt;/a&gt;.&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;While I don’t use twitter myself, or even
Facebook, I do blog, ergo, I must be one of them too.&amp;nbsp; Myself, I am simply interested
in the technology as the human factor seems to be hurtling towards &lt;a href="http://en.wikipedia.org/wiki/The_Singularity_is_Near"&gt;Singularity&lt;/a&gt; at
a rate I no longer can understand.&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;&lt;?XML:NAMESPACE PREFIX = O /&gt;I spend a lot
of time in front of&amp;nbsp;computers, I mean at least 8 hours a day for the last 18
years or so, mostly as a professional Software Engineer.&amp;nbsp; As a Software Designer,
I find twitter interesting, but why don’t we design the equivalent of twitter on video
(with sound) instead of text?&amp;nbsp; YouTwitter would allow you to record a video for
5 - 7 seconds (or whatever). We certainly have the computing horsepower, the bandwidth,
and what seems to be a critical mass of cell phones with video/audio record functions
and wifi capabilities.&amp;nbsp; Not to mention any computer/laptop/netbook/media center/(Xbox?)
with a microphone, web cam, and internet connection.&amp;nbsp; Which essentially means
the same size market as “regular” twitter is today, but rather than serving up text,
now serving 5 second video (with audio). 
&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;As a Software Engineer, it is interesting
to think of the design and implementation of such a system.&amp;nbsp; Who knows, maybe
it is already happening, and this shows how out of touch I am with social networking
;-)&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;If YouTwitter existed, I probably would use
it – not only would it be fun, but change the way we communicate via computers.&amp;nbsp;
Take me for example, at 50 years old, and really been on one form of computer or another
since 1980, I am (really) tired of writing text.&amp;nbsp; It would be way cool not to
have to type any more text.&amp;nbsp; I write too much already and that’s why I would
like to see YouTwitter.&amp;nbsp; If I had the time and capital investment, I would design
and build it myself.&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;&lt;/span&gt;&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;YouTwitter
is more than that.&amp;nbsp; What about the capability to see people’s interaction without
the text?&amp;nbsp; Did I mention how our overall communication style would change if
I could see you speak instead of just reading your text?&amp;nbsp; Is this the next evolution
in social networking?&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;span xsscleaned="font-size:&amp;#10;12.0pt"&gt;I don’t know, but I would use it, even as
an introvert.&lt;O:P&gt;&lt;/O:P&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=673bfd8c-9f79-4983-9523-e22a92b7ac50" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/3BWaINtNR0M" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,673bfd8c-9f79-4983-9523-e22a92b7ac50.aspx</comments>
      <category>Futures</category>
    <feedburner:origLink>http://softwareindustrialization.com/YouTwitterNextGenTwitter.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=45c5da62-e31f-4fdb-bf5f-5029b0b3258e</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,45c5da62-e31f-4fdb-bf5f-5029b0b3258e.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,45c5da62-e31f-4fdb-bf5f-5029b0b3258e.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=45c5da62-e31f-4fdb-bf5f-5029b0b3258e</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>The (Lost) Art of Software Engineering</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,45c5da62-e31f-4fdb-bf5f-5029b0b3258e.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/7hqIoAhGM3Y/TheLostArtOfSoftwareEngineering.aspx</link>
      <pubDate>Tue, 04 Aug 2009 04:12:02 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Quick, tell me what is common between, “&lt;a href="http://www.amazon.com/Tragedy-Second-Narrows-Ironworkers-Memorial/dp/1550174517"&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;Tragedy
at 
&lt;st1:PlaceName w:st="on"&gt;Second&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;Narrows&lt;/st1:PlaceType&gt;
– The Story of the 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceName w:st="on"&gt;Ironworkers&lt;/st1:PlaceName&gt;
&lt;st1:PlaceName w:st="on"&gt;Memorial&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;Bridge&lt;/st1:PlaceType&gt;
&lt;/st1:place&gt;
&lt;/a&gt;” and Software Engineering?&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Answer:
They are both stories about engineering and one has tragedy in human lives.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The Tragedy at 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceName w:st="on"&gt;Second&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;Narrows&lt;/st1:PlaceType&gt;
&lt;/st1:place&gt;
is an absolutely compelling story about engineering design. The tragedy is the number
of lives lost due to what appears to be an engineering design oversight.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Ironworkers
Memorial is of very special meaning to me as I live near 
&lt;st1:City w:st="on"&gt;Vancouver&lt;/st1:City&gt;
and occasionally have the privilege to drive over the 
&lt;st1:place w:st="on"&gt;
&lt;a href="http://en.wikipedia.org/wiki/Ironworkers_Memorial_Second_Narrows_Crossing"&gt;
&lt;st1:PlaceName w:st="on"&gt;Ironworkers&lt;/st1:PlaceName&gt;
&lt;st1:PlaceName w:st="on"&gt;Memorial&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;Bridge&lt;/st1:PlaceType&gt;
&lt;/a&gt;
&lt;/st1:place&gt;
.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt; I have a
lot of respect for the Ironworkers, Engineers and the entire craftsman who worked
on this piece of art.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The art is that
traffic flows across the bridge at the same speed as the #1 Highway in 
&lt;st1:country-region w:st="on"&gt;
&lt;st1:place w:st="on"&gt;Canada&lt;/st1:place&gt;
&lt;/st1:country-region&gt;
– the user experience is seamless and that’s its beauty, it is also by design (i.e.
it has been engineered that way).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceName w:st="on"&gt;Ironworkers&lt;/st1:PlaceName&gt;
&lt;st1:PlaceName w:st="on"&gt;Memorial&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;Bridge&lt;/st1:PlaceType&gt;
&lt;/st1:place&gt;
also has a special meaning to me as it relates to software engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
believe software design and development is an engineering activity.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
fact, the more years I do this (since 1977 in electronics engineering and slowly moving
to software engineering since 1991) the more I believe it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
do others, including educational institutions. You can get a &lt;a href="http://www.bseng.uvic.ca/"&gt;4
year degree in Software Engineering&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; and the States
have been doing it since &lt;a href="http://www.se.rit.edu/"&gt;1996 when I saw it at RIT&lt;/a&gt;&amp;nbsp;while
working at Eastman Kodak in Rochester, NY.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Damn
man, you can even get a &lt;a href="http://www.cs.cmu.edu/~wls/isri/phd.html"&gt;PhD in
Software Engineering&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Software Engineering in the 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceType w:st="on"&gt;province&lt;/st1:PlaceType&gt;
of 
&lt;st1:PlaceName w:st="on"&gt;BC&lt;/st1:PlaceName&gt;
&lt;/st1:place&gt;
is recognized as a professional practice and since 1999, you can apply to &lt;a href="http://www.apeg.bc.ca/"&gt;APEGBC&lt;/a&gt; to
become a &lt;a href="http://www.apeg.bc.ca/reg/pengappdocsrequired.html"&gt;licensed Professional
Software Engineer&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Aside
from having an &lt;a href="http://www.abet.org/"&gt;ABET&lt;/a&gt; recognized 4 year engineering
degree, 4 years documented experience, 4 P. Eng.’s to stand up and &lt;a href="http://www.apeg.bc.ca/reg/docs/referenceform2009.pdf"&gt;vouch&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;for
your sorry ass&lt;/a&gt;, &lt;a href="http://www.apeg.bc.ca/prodev/lawethics/lawethics_seminar.html"&gt;attend
a 2 day law and ethics seminar&lt;/a&gt; or &lt;/font&gt;&lt;font color=#000000&gt;consume the equivalent
in CD-ROM, and pass a &lt;a href="http://www.apeg.bc.ca/reg/ppe.html"&gt;2 hour Professional
Practice&lt;/a&gt; examine&lt;/font&gt;&lt;font color=#000000&gt;, there are additional requirements.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
need to fill out a &lt;a href="http://www.apeg.bc.ca/reg/docs/syllabussoftware.pdf"&gt;Software
Engineering Checklist&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; and you need to complete the &lt;a href="http://www.apeg.bc.ca/reg/docs/softwareengineeringexpguidelines.pdf"&gt;Software
Engineering Experience Guidelines&lt;/a&gt;.&lt;/font&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color=#000000&gt;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;It is very interesting to read over the last two documents, Software
Engineering Checklist and Software Engineering Experience Guidelines.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
point being, if you want or need a description of what Software Engineering is and
how to document it, spend a bit of time reading these short documents.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;While
a bit old, the first principles hold true, which is what I refer to the lost art in
my title (more later).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;As mentioned previously, &lt;a href="http://en.wikipedia.org/wiki/Software_engineering"&gt;Software
Engineering&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; is a recognized &lt;a href="http://en.wikipedia.org/wiki/Professional_Engineer"&gt;professional
practice&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; in 
&lt;st1:State w:st="on"&gt;
&lt;st1:place w:st="on"&gt;British Columbia&lt;/st1:place&gt;
&lt;/st1:State&gt;
.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Check out the &lt;a href="http://www.apeg.bc.ca/reg/peng.html#benefits"&gt;benefits&lt;/a&gt; of
becoming a licensed Professional Software Engineer.&lt;/font&gt;&lt;font color=#000000&gt; Meet
the &lt;a href="http://www.computer.org/portal/cms_docs_software/software/homepage/2008/s6car.pdf"&gt;first
licensed Software Engineer&lt;/a&gt;, Philippe Krutchen, who was licensed in 1999 in BC.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Software Engineering to many people have many different meanings.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Some
think/feel software development or programming is an artistic endeavor.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Others
think of it as craftsmanship. From my perspective, I agree with everyone. In fact,
it is all those things and much more. Some people&amp;nbsp;feel that the &lt;a href="http://www.gaudidesigner.com/uk/sagrada-familia.html"&gt;La
Sagrada Famillia&lt;/a&gt; is art.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt; Some
would say the &lt;a href="http://www.flickr.com/photos/mark_boucher/1678892845/"&gt;craftsmanship&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; that
went into it was second to none.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
it was also engineered (i.e. designed). &lt;a href="http://www.flickr.com/photos/kleptoclaire/989534778/"&gt;Check
this out&lt;/a&gt;, &lt;/font&gt;&lt;font color=#000000&gt;Gaudi designed the weight-bearing of his
buildings, upside-down with string and bearings.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
when you looked in the mirror, of course it was right side up.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
I saw this first hand.&amp;nbsp; &lt;/span&gt;Engineering at its finest, well before modern
engineering with all our &lt;a href="http://en.wikipedia.org/wiki/PC"&gt;fancy calculators&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;and
our &lt;a href="http://en.wikipedia.org/wiki/Iphone"&gt;StarTrek Communicators&lt;/a&gt;.&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;So Software Engineering is design, art, craftsmanship and any
other word that people want to use that is not engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Call
it what you will, I agree with you.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
it is also part engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That to
me is the lost art, specifically the engineering design part.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;In fact, I would say Software Engineering, at its very core, has
four fundamental activities: requirements analysis, design, code, and test.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Of
course you have to deploy and operate, maintain, and a whole pile of other things
(reports, UI enhancements, skinning, ad infinitum), but I just want examine these
four core activities.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Let’s put some
definition around what I am getting at:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;Requirements Analysis:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
don’t care if you use story points, scenarios, use cases, flowcharts, or animated
puppets to gather and package software requirements.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
question is how accurate is your transformation and how good you are at repeating
it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Understand what I mean?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
do we as a team communicate “what” needs to be built?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;To
answer the question, I am suggesting use whatever methods and tools you want as long
as the result (i.e. the transformation) is accurate and you can repeat that accuracy
on multiple projects consistently and eventually, predictable.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That
to me is the lost art of software engineering in requirements analysis.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
is the percentage accuracy of our requirements gathering and packaging? i.e. relative
to the intent of what the users actually require.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
btw, if the users or community can’t tell you, in gory detail, what they want, then
no amount of software is going to solve the problem.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Capiche?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What’s
our percentage repeatability and predictability?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That’s
the theory and in practice it does works.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
it is a lot of very hard work, so you really don’t see it too often in our field,
hence the lost art.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;Design: Ah, the crux of software engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Your
choice of design methods and tools should be determined on which methods and tools
will result in the least complex, but most (easily) extensible design possible.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
short, at its essence is a &lt;a href="http://illumin.usc.edu/article.php?articleID=11"&gt;mathematical
formula for reducing complexity&lt;/a&gt;, but the art is your application of the formula
at the problem at hand.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Again how accurate
is your design transformation relative to the requirements you used to produce that
design?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Can you do it consistently as
new and old problems come your way?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Whether
you choose a &lt;a href="http://alloy.mit.edu/community/"&gt;formal design method like MIT’s
Alloy&lt;/a&gt;, &lt;/font&gt;&lt;font color=#000000&gt;(if you have never used Alloy before, try it
on for size, it really demonstrates software complexity through modeling. ) or a traditional
OOD method, is really not the ultimate issue here – choose whatever method/tool yields
the most accurate Requirements -&amp;gt; Design transformation.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;Code – it seems everyone knows how to code in their favorite programming
language.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Again ultimately, from a software
engineering perspective, use whatever programming language yields the least complex
representation or transformation of the design.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oh,
yeah, I know what about the human factor – where are we going to find &amp;lt;insert favorite
language here&amp;gt; programmers?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Or the
million other factors that occur when selecting a programming language. Does it really
matter?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Not if you want to produce the
least complex implementation.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Test – There seems
to be a dazillion and one testing methodologies/tools. Does it really matter which
one you use or what tool?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I don’t think
so.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Again, what percentage accuracy is
our testing against the 3 previous transformations? Oh sure, at what level of effort
you ask? What was the requirement for testing accuracy and coverage?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Don’t
have one, better get one.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;More lost art.&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Oh, I know I am greatly simplifying the above, but isn't that
a lost art also?&amp;nbsp; It seems to me that year after year we further complicate our
art, not simplify it.&amp;nbsp; One lost art of software engineering is trying for the
most accurate transformations from requirements to test (and eventually deployment,
operations, and maintenance.).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Another lost art it seems is designing for a least complexity
solution or at least making it a priority.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
that takes time, commitment and data.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
that’s my point.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It appears the trend
I see in our industry, and if Jeff Atwood’s blog on &lt;a href="http://www.codinghorror.com/blog/archives/001288.html"&gt;Software
Engineering: Dead&lt;/a&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt; is
any indicator, reading the comments are an eye opening experience about people’s thoughts
on Software Engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I have been
there myself, on more than one occasion, and in fact, is normal for most companies
that are trying to design software, but really don’t know how.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The only way to improve what we do as Software Engineers is to
measure what we do and how we do it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oh
sure, that tired&amp;nbsp;old saw.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I have
seen it work with my own eyes to know the truth and value behind it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Yet,
we as an industry seem to have completely forgotten the value of measuring what we
do and how we do it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Other industrialized
industries&amp;nbsp;would cease to function without this feedback control loop.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Can
you imagine pro sports without stats? It would never happen, but the trend in our
industry seems to be moving away from measuring anything and just going for it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
wonder why that is?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;My hope is that over time Software Engineering, while a Professional
Practice in 
&lt;st1:place w:st="on"&gt;
&lt;st1:State w:st="on"&gt;British Columbia&lt;/st1:State&gt;
&lt;/st1:place&gt;
, becomes more widespread, and what I used to take for granted as standard operating
procedure (SOP) in Electronics Engineering, will become SOP in Software Engineering.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
like anything, this is going to take time and education, particularly for folks that
don’t know about the engineering part, or for others like me that have lost it from
time to time.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=45c5da62-e31f-4fdb-bf5f-5029b0b3258e" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/7hqIoAhGM3Y" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,45c5da62-e31f-4fdb-bf5f-5029b0b3258e.aspx</comments>
      <category>Engineering</category>
    <feedburner:origLink>http://softwareindustrialization.com/TheLostArtOfSoftwareEngineering.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=c22ba764-25e7-4c27-b582-d19e5893ef71</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,c22ba764-25e7-4c27-b582-d19e5893ef71.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,c22ba764-25e7-4c27-b582-d19e5893ef71.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c22ba764-25e7-4c27-b582-d19e5893ef71</wfw:commentRss>
      <title>Unprecedented – A Two Year Software Guarantee!</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,c22ba764-25e7-4c27-b582-d19e5893ef71.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/1T5XWBhD5N8/UnprecedentedATwoYearSoftwareGuarantee.aspx</link>
      <pubDate>Tue, 19 May 2009 05:11:53 GMT</pubDate>
      <description>&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;font color=#000000&gt;As an 18 software development professional, I have been waiting
for this day for a long time.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Honestly,
I thought this day would never happen in my lifetime, but it did and in a form I would
have never guessed:&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;“&lt;a href="http://news.bbc.co.uk/1/hi/technology/8044125.stm"&gt;The
future of games development has been called into question after the EU Commission
suggested developers provide a two year guarantee&lt;/a&gt;.”&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;Two year guarantee on… games?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
would have thought that &lt;a href="http://en.wikipedia.org/wiki/Therac-25"&gt;medical software&lt;/a&gt;&amp;nbsp;or &lt;a href="http://web.archive.org/web/20050830190246/www.fastcompany.com/magazine/06/writestuff.html"&gt;aviation/guidance
software&lt;/a&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;or any other software application/system
that could put people in harms way would have been the first industries to have instituted
guarantees on defective software.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;Never did it cross my mind that it would be the gaming industry,
but then again, after thinking about it, it makes perfect sense.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Video_game_industry"&gt;Video
games are a multi-billion dollar business&lt;/a&gt; targeted at mass consumers, a.k.a. the
public.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So when lots of people’s games
don’t work, something has to give.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt; tab-stops: 357.0pt" class=MsoNormal&gt;
&lt;span style="mso-tab-count: 1"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;The key clause is, "two year guarantee on all games in the event
that a bug or glitch is encountered preventing you from completing the game and/or
ruining the experience."&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;As the articles states:&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal&gt;
&lt;font color=#000000&gt;“At present, retailers are not obliged to give a refund on a video
game that has a bug or glitch that prevents a user completing a game. If the proposals
become law, this could change as users would have the right "to get a product that
works with fair commercial conditions". &lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;Note it says proposal, but I say great, it is about time!&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Why
is it only in the software industry, people and corporations spend trillions of dollars
on software and none of it is guaranteed? &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;No,
I don’t mean delivery guarantees, or warranty periods, I mean outright quality guarantees.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;For me, as someone who develops software, I could not be happier.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
marks the day that there is enough critical mass in the public to demand better quality
software products.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Really it means that
software will need more engineering, as in &lt;a href="http://en.wikipedia.org/wiki/Software_engineering"&gt;software
engineering&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal&gt;
&lt;font color=#000000&gt;“Software engineering is the application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of software,
and the study of these approaches; that is, the application of engineering to software.”&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;At age 50, I have had two careers, the first in electronics engineering,
where the application of systematic, disciplined, quantifiable approach… was never
even questioned, talked about, it was simply expected, standard operating procedure,
institutionalized, etc.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But when I entered
my software career in 1991, I was very surprised to find that in the software world,
there were debates going on, still today, whether software development is engineering
or art or science or…&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;Fortunately today, many universities are offering undergraduate
degrees in &lt;a href="http://www.bseng.uvic.ca/pages/prospect/details.html"&gt;software
engineering&lt;/a&gt;&amp;nbsp;and have defined the &lt;a href="http://www.cs.concordia.ca/prospectivestudents/softwareengineeringvscomputerscience/"&gt;difference
between computer science and software engineering&lt;/a&gt;.&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;This means that younger generations will be more exposed to software
engineering rather than us “old guys” where there was no such thing called software
engineering when we went to university.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;I
also believe that software engineers should be licensed as Professional Engineers
(P.Eng. in 
&lt;st1:country-region w:st="on"&gt;
&lt;st1:place w:st="on"&gt;Canada&lt;/st1:place&gt;
&lt;/st1:country-region&gt;
).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In fact, in 
&lt;st1:State w:st="on"&gt;British Columbia&lt;/st1:State&gt;
, 
&lt;st1:State w:st="on"&gt;Alberta&lt;/st1:State&gt;
and 
&lt;st1:State w:st="on"&gt;
&lt;st1:place w:st="on"&gt;Ontario&lt;/st1:place&gt;
&lt;/st1:State&gt;
, you can be &lt;a href="http://www.apeg.bc.ca/reg/pengappdocsrequired.html"&gt;licensed
as a professional software engineer&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;You can read an excellent paper on, "&lt;a href="http://www.computer.org/portal/cms_docs_software/software/homepage/2008/s6car.pdf"&gt;Licensing
Software Engineers&lt;/a&gt;"&amp;nbsp;by Philippe Kruchten&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;From
the article, “The only purpose of licensing software engineers is to protect the public.”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
totally agree.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Now Philippe suggests
that licensing software engineers who designs&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;and
develops software that can kill is protecting the public.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
agree with that as well.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But I would
take bit of a broader definition that not only includes software that kills, but again
protects the public from financial impact, which basically covers most business software,
like ecommerce, banking, trading insurance and any applications that deal with money,
but also even t the point of gaming software, which is what this article began with
and the proposed two year warranty.&lt;/font&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;
&lt;font color=#000000&gt;Perhaps a little reflection is required to let what I am saying
fully sink in.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For any software development
project that has any impact on the public, financial or otherwise, the software engineer
responsible for “sealing” the blueprints should be a licensed software engineer.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A
licensed professional software engineer is bound by professional practice and code
of ethics.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That means that a licensed
professional software engineer is legally responsible for the design of the software.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Think
about that.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Aside from the responsibility,
the way software is designed and engineered is going to change in our world.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
can only be grateful for that and like I said early on, it is about time.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Today
is a red letter day!&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=c22ba764-25e7-4c27-b582-d19e5893ef71" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/1T5XWBhD5N8" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,c22ba764-25e7-4c27-b582-d19e5893ef71.aspx</comments>
      <category>Engineering</category>
    <feedburner:origLink>http://softwareindustrialization.com/UnprecedentedATwoYearSoftwareGuarantee.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=a39dfd70-91b8-4c41-ab77-514bc4127c6d</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,a39dfd70-91b8-4c41-ab77-514bc4127c6d.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,a39dfd70-91b8-4c41-ab77-514bc4127c6d.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a39dfd70-91b8-4c41-ab77-514bc4127c6d</wfw:commentRss>
      <title>Real Software Engineering</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,a39dfd70-91b8-4c41-ab77-514bc4127c6d.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/6Z8bon73LXw/RealSoftwareEngineering.aspx</link>
      <pubDate>Tue, 12 May 2009 05:29:48 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Over a half dozen years or so, I have noticed a trend in our software
engineering world towards collecting less and less data about what we do and how well
we are doing it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This would be contrary
to lets say professional sports where data collection (i.e. stats) is a well know
practice and pastime, plus on the rise, whereas in our professional software engineering
world, it appears to be on the decline.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
wonder why?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;A history lesson first.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A
fantastic short paper called, “&lt;a href="http://www.cs.umd.edu/~basili/publications/proceedings/P94.pdf" target=_blank&gt;Lessons
learned from 25 years of process improvement: The Rise and Fall of the NASA Software
Engineering Laboratory&lt;/a&gt;”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;provides some
real insight to a problem that now seems to be rippling through our industry en mass.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
would say the Software Engineering Laboratory (SEL) was ahead of its time and has
seen some possible future outcomes that may be coming true for some (most?) organizations
in the corporate world.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The SEL collected software engineering metrics on process improvement
from 1976 to 1991 and beyond.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I am not
going to summarize the lessons here, you can read the excellent paper for that, and
if you were/are ever a part of a real software engineering organization, none of the
lessons learned should come as a surprise.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
I think that is the real lesson to be learned from this paper and the amazing contributions
to software engineering that came out of the SEL and that is, very few organization
are actually practicing real software engineering process improvement.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
in fact, I would suggest that the latest trends in software development lifecycles,
like Agile, XP, Scrum, et al are actually going the other way.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Allow me to explain where I am coming from; here is one of the
lessons learned from the SEL: &lt;em&gt;“Establishing a baseline of an organization’s products,
processes, and goals is critical to any improvement program.”&lt;/em&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
most other industries, this is a given, including professional sports.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Heck
even in non professional sports, like your college track and field events, you establish
your baseline for the 100 yard/meter sprint and constantly trying to improve on that
as a simple example.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Yet, in the software
engineering world, where is our baseline?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We
have embarrassing baselines like spending &lt;a href="http://lrv.fri.uni-lj.si/~franc/COURSES/VP/FBI.pdf" target=_blank&gt;millions&lt;/a&gt; and &lt;a href="http://www.cbc.ca/news/story/2004/02/13/gunregistry_rdi040213.html" target=_blank&gt;billions&lt;/a&gt; (note
- how embarrasing, in my home country!) of software that is of poor quality or &lt;a href="http://www.cds.caltech.edu/conferences/1997/vecs/tutorial/Examples/Cases/failures.htm" target=_blank&gt;doesn’t
even work&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Maybe that is why we don’t
measure ourselves?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;We have “new” software development lifecycle methodologies that
promote no collecting metrics on how well we are developing software.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Its
astounding and disturbing, not only to me but to businesses that are forking over
millions of dollars for software development projects that seem to have nothing more
than an ad hoc process of going wherever the project meanders, no matter how long
or at what cost, let alone even validating if the right problem is even being solved
in the first place.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;How do I know this?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;I
have been in the software engineering business for 18 years and had the privilege
to have experienced many a software shop ranging from&amp;nbsp;multinationals like Eastman
Kodak, Motorola to midsize companies and to small start ups, including my own, in
several different industry verticals and locations in 
&lt;st1:place w:st="on"&gt;North America&lt;/st1:place&gt;
.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I had the good fortune of being taught
Software Engineering Management, a 2 year post graduate program&amp;nbsp;from the University
of Calgary, taught&amp;nbsp;by Motorola University, where each of the &lt;a href="http://www.masetllc.com/about/karl.shtml" target=_blank&gt;instructors
had many a year experience and stories&lt;/a&gt; about software engineering projects, both
failures and successes and most importantly, what the differences were/are.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
have kept in touch with past employees/friends in the industry to hear interesting
anecdotes over a virtual beer.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And finally,
I spend a lot of time researching and reading about software engineering in general.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;And my conclusion is that we as an industry are (way) off track
and seem to be heading further off track with the invention and adoption of new methodologies
that are not based on (any) actual factual experience/metrics/historical data&amp;nbsp;like
the 25 years of solid software engineering experience that the SEL has produced.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Why do I believe that?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
see it everyday and in several companies that I may come in contact with due to my
job.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I don’t need any further proof than
that.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Just even the simple metric of
“establishing a baseline” of anything in your organization should be proof enough
for you.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What data have you collected
for x software engineering projects you have undertaken, in any of the companies you
have worked for?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I bet it is a small
percentage, if any at all.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Why is that?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I think
the SEL folks hit it on the head with one of their lessons learned, &lt;em&gt;“It is difficult
to make an engineering organization aware of the importance of software engineering
to their mission.”&lt;/em&gt; I would substitute engineering organization with “any” organization.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Software
is everywhere and in everything.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It is
almost as ubiquitous as the telephone or power, yet we have no way to measure its
quality, effectiveness or how productive we are at&amp;nbsp;designing and constructing&amp;nbsp;it.&amp;nbsp;
In fact, I would say that that any given orgranization is not even aware of how important
the role of software plays in their very own organization.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;And we software engineers, developers, programmers, coders, craftsman,
or whatever we believe in (I believe that software design and construction is an &lt;a href="http://www.apeg.bc.ca/reg/pengappdocsrequired.html#other" target=_blank&gt;engineering
discipline&lt;/a&gt;) are our own worst enemies.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Behold,
I give you &lt;a href="http://www.reddit.com/r/programming/" target=_blank&gt;programming.reddit.com&lt;/a&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;where
almost 100,000 subscribers argue over which is the best is programming language, ever,
every day, year after year.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Or &lt;a href="http://www.codinghorror.com/blog/" target=_blank&gt;CodingHorror.com&lt;/a&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;with
+100,000 subscribers, with its blog name, light hearted or not, sends the wrong message
to the masses that coding results in a horror show. Or even &lt;a href="http://news.ycombinator.com/" target=_blank&gt;Hacker
News&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;… How would any organization looking to solve a
serious business problem that costs millions of dollars in software engineering take
anyone of these seriously?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Or just assume
that the whole lot of us is represented by these blogs and news feeds?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;No
wonder we&amp;nbsp;have credibility problems.&amp;nbsp; No wonder we don't collect stats!&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;So what we do about it?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Just
like anything, it takes a lot of hard work and some critical mass for an organization
to realize that software may be a big part of their business and that maybe they should
seriously consider looking at how software could be engineered for their business
based on real software engineering principles and not on the latest and greatest fad
of the month.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I don’t know about you,
but if I was to spend a million dollars on any software engineering project, I would
want to be sure that it was on budget, on time, had some level of quality in it and
actually solved the right problem.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; Establishing
a baseline of what you are doing and how well you are doing it, is the start of real
software engineering.&lt;/span&gt;&amp;nbsp;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=a39dfd70-91b8-4c41-ab77-514bc4127c6d" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/6Z8bon73LXw" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,a39dfd70-91b8-4c41-ab77-514bc4127c6d.aspx</comments>
      <category>Engineering</category>
    <feedburner:origLink>http://softwareindustrialization.com/RealSoftwareEngineering.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=345da289-36f7-41f2-9cf0-fd10c27e3220</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,345da289-36f7-41f2-9cf0-fd10c27e3220.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,345da289-36f7-41f2-9cf0-fd10c27e3220.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=345da289-36f7-41f2-9cf0-fd10c27e3220</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Programming Language Proliferation</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,345da289-36f7-41f2-9cf0-fd10c27e3220.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/pX1s3nfOdNw/ProgrammingLanguageProliferation.aspx</link>
      <pubDate>Wed, 15 Apr 2009 06:42:06 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Ola Bini wrote an interesting article called, “&lt;a href="http://olabini.com/blog/2009/04/languages-should-die/" target=_blank&gt;Languages
Should Die&lt;/a&gt;.”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=#000000&gt; I
was hoping that this was really the case, but actually it was the opposite.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
believe it is this type of thinking (i.e. language proliferation) that has our software
development industry in trouble:&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;“No existing language will die in a long time. But we need
new ideas. New fresh ways of looking at things. And new languages that incorporate
what other languages do right. That’s how we will finally get rid of the things we
don’t like in our current languages.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;You should be ready to abandon your favorite language for
something better.”&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;Define better.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Define
do right.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I feel we have already reached
good enough long ago with C or Smalltalk.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Heck,
Smalltalk is one of the simplest languages there is -&amp;nbsp;the &lt;a href="http://esug.heeg.de/whyusesmalltalktoteachoop/smalltalksyntaxonapostcard/" target=_blank&gt;entire
language syntax can fit on a postcard&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
more do we want?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oh sure, there are some
small technical issues, like with all languages, but technical deficiencies is not
what did in Smalltalk, it was marketing, but I digress.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;a href="http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_languages" target=_blank&gt;Wikipedia
says there are +560 programming languages&lt;/a&gt;. &lt;/font&gt;&lt;font color=#000000&gt;&amp;nbsp;Sure
they are not all in use today, but how many programming languages do we really need?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
many written and/or spoken languages (i.e. English, Spanish, German, etc.) do you
know well?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Expert level?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
many people do you know that are expert level in 2 or more spoken and/or written languages?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
about 5 or more spoken and/or written languages?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
long do you think it would take for you to learn 5 spoken/written languages at an
expert level?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Apply your &lt;a href="http://softwareindustrialization.com/COCOMOIIOnlineEstimationTool.aspx" target=_blank&gt;CoCoMo
model&lt;/a&gt; &lt;/font&gt;&lt;font color=#000000&gt;to that!&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Yet, for any web developer, typically you need to know one or
more core languages like C#, Java, Python, whatever, along with HTML, CSS, JavaScript
and then usually your app is hooked to a database so you need to know some dialect
of SQL.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Ok that’s five languages right
there.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How many of us are expert in those
5 languages? I mean honestly. And of course there are variations for each language
– example, look at the difference between C# 3.0 and 4.0.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;And
for each language, there is one to many frameworks to learn as well – e.g. 
&lt;st1:place w:st="on"&gt;
&lt;st1:City w:st="on"&gt;AJAX&lt;/st1:City&gt;
&lt;/st1:place&gt;
frameworks like JQuery, Mootools, Prototype, etc.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;It is no wonder to me that we cannot get any real work done as
we are all learning existing or new languages, frameworks, etc.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It
is no wonder to me that business is getting pissed off at developers in general because
everything takes too long, too error prone and worse it does not meet their requirements.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Ok my point is not to be some old stodgy dinosaur, yeah I just
turned 50, but I have a 6 year old daughter that can play Lego Star Wars better than
I can.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I am not trying to stifle innovation,
but let’s be smart about what we are trying to innovate.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Here
is an excellent example in my neck of the woods, I spent a bunch of time learning
C# since 2000 and kept up with the versions.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Recently,
I went to &lt;a href="http://www.microsoftpdc.com/" target=_blank&gt;PDC&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; and
checked out all of the &lt;a href="http://blogs.msdn.com/charlie/archive/2008/11/04/new-features-in-c-4-0-paper-plus-feedback-and-samples.aspx" target=_blank&gt;new
C# 4.0 features.&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;&amp;nbsp;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;One
of them was introducing a &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Inside-C-40-dynamic-type-optional-parameters-more-COM-friendly/" target=_blank&gt;dynamic
type&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;to what is otherwise a very statically typed
language.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I used &lt;a href="http://www.codeplex.com/IronPython" target=_blank&gt;(Iron)Python&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt; for
my dynamic needs and now some of that is in C#.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Is
that good, bad, better or worse or what?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Damned
if I know, it is yet another thing I have to figure out as a software engineer.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oh,
and &lt;a href="http://msdn.microsoft.com/en-ca/fsharp/default.aspx" target=_blank&gt;I
really liked F#&lt;/a&gt;, a brand new functional language.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
how many days, months or years do I need to invest in learning F# to become an expert?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
most importantly, why would I do that?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Other
than the coolness factor, admittedly really cool to me personally, but what possible
business value or real world application does it have that would cause me to use it?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Answer
= none.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;See what I mean?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;As
Ola says, &lt;/font&gt;
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;&lt;em&gt;“So - you should go out and fork your favorite language. Or
your least favorite language. Fix the things that you don’t like with it. Modify it
for a specific domain. Remove some of the cruft. Create a new small language. It doesn’t
have to be big. It doesn’t have to do everything - one of the really cool things about
functional languages is that they are often have a very small core. Use a similar
approach. Hack around. See what happens.”&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;Give me one sound business reason why this would be a good thing
to do?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You want a simpler language, well,
we have that already, see Smalltalk example above.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
want a better or a “right” programming language, you better have some real definitions
as to what those mean, have identified real shortcomings (not just some syntactic
sugar) in any other mainstream language, and your proposed improvement must be like
10X or why do it?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;I feel that we already have (more than) enough programming languages
to choose from.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Let alone the frameworks
and batteries that come with them. We software developers/programmers/engineers seem
to be our own worst enemies as we are causing more and more complexity to a domain
that is already complex enough.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
are we really doing to reduce the complexity instead of adding more?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Adding
another language to my skill set like F# (which I would love to learn personally)
absolutely has no business value for me or my customers in my world of ecommerce web
applications.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;In my software engineering world, I am looking at every angle
to reduce complexity.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It is simply a
matter of numbers, the less is better.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
if I can reduce the number of programming languages, frameworks, integration points,
executables, assemblies, etc., the simpler the solution, the lower the cost, the less
time to deliver, the easier it is to change and maintain and therefore representing
the best business value to the purchaser of the custom developed software.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;However, these days it feels like I am a minority in our software
industry as we proliferate everything, including &lt;a href="http://softwareindustrialization.com/SoftwareDevelopmentGoneInsane.aspx" target=_blank&gt;software
development methodologies until it becomes insane&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
am concerned that this is happening to programming languages (and everything else
in our software development industry) as well.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Just
like the financial market situation we are in now, I am wondering when that will happen
in our industry?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For all of our brain
power, we seem to be following the same path.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
is it going to take to divert this path?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;When
will the pendulum swing the other way to favor economic sense (i.e. proven software
engineering principles) instead of the crazy proliferation of anything in the name
of continuous improvement?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;As Brad Cox says in, “&lt;a href="http://virtualschool.edu/cox/pub/PSIR/" target=_blank&gt;Planning
the Software Industrial Revolution&lt;/a&gt;, I only wish that I were as confident that
the changes will come quickly or that we, the current software development community,
will be the ones who make it happen. Or will we stay busy at our terminals, filing
away at software like gunsmiths at iron bars, and leave it to our consumers to find
a solution that leaves us sitting there? “&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=345da289-36f7-41f2-9cf0-fd10c27e3220" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/pX1s3nfOdNw" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,345da289-36f7-41f2-9cf0-fd10c27e3220.aspx</comments>
      <category>Industrialization</category>
    <feedburner:origLink>http://softwareindustrialization.com/ProgrammingLanguageProliferation.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=3e4ade5c-21b5-45d3-8851-213048198c15</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,3e4ade5c-21b5-45d3-8851-213048198c15.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,3e4ade5c-21b5-45d3-8851-213048198c15.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3e4ade5c-21b5-45d3-8851-213048198c15</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <title>Software Development Gone Insane</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,3e4ade5c-21b5-45d3-8851-213048198c15.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/hbD0UvT7itE/SoftwareDevelopmentGoneInsane.aspx</link>
      <pubDate>Thu, 09 Apr 2009 06:43:44 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I may be getting old, but I don’t think I am out of touch.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
M&lt;/span&gt;y sanity of being a software development professional seems to be tested daily
by our industries predilection for &lt;a href="http://en.wikipedia.org/wiki/No_Silver_Bullet" target=_blank&gt;Silver
Bullets&lt;/a&gt;.&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; The latest it seems is &lt;a href="http://www.lulu.com/content/3864767" target=_blank&gt;Scrumban&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My
wife can’t stop laughing when I say it to her.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;I have not read the book, so I have no opinion on it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
have read some of the &lt;a href="http://leansoftwareengineering.com/" target=_blank&gt;author’s
blog material&lt;/a&gt;.&lt;/font&gt;&lt;font color=#000000&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Seriously,
I mean no disrespect to Corey Ladas at all, but when I read the material, I can’t
help to think that this is written by someone with a MBA.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;When
I &lt;a href="http://leansoftwareengineering.com/2009/04/07/feature-crews/" target=_blank&gt;read
this article&lt;/a&gt;,&lt;/font&gt;&lt;font color=#000000&gt; I think I get what he is saying, but
I swear it is written in a different language than the software engineering world
I live in.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;Regardless of what marketing terms are used, the reality is that
software development is always: understanding the requirements, creating a design,
implementing the design, and testing the design and implementation to ensure it meets
the requirements. Requirements, Design, Code and Test.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/True_Romance" target=_blank&gt;Always
have, always will&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;, no matter what other fancy (marketing)
words are used to describe it.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;With respect to very large software projects, I understand the
label Feature Crews, but to me, this is nothing more than classic &lt;a href="http://en.wikipedia.org/wiki/Decomposition_(computer_science)" target=_blank&gt;functional
decomposition&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;at work, but with a new (fancy marketing)
label.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;Questions&amp;nbsp;that the Agile, Scrum, Lean, &lt;a href="http://en.wikipedia.org/wiki/Things_to_Do_in_Denver_When_You're_Dead" target=_blank&gt;give
it a name&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;practitioners
seem to never answer is the two most asked questions by people that pay for software
development projects, which are, “how much is it going to cost and how long is it
going to take?”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It seems there is no
best practice in any of these methodologies to answer these fundamental questions
as these methodologies are focused on very limited scopes of the project as opposed
to the entire project.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And quite frankly,
that is my main beef with these Silver Bullet’s, because as Fred Brooks postulated
23 years ago, there is no such thing as a &lt;a href="http://en.wikipedia.org/wiki/No_Silver_Bullet" target=_blank&gt;Silver
Bullet&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;in software development.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
I&lt;/span&gt;n my opinion and professional experience, he is right.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;Software development is an incredibly complex, massively manual
labor intensive effort, whose primary work product is lines of source code.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For
people that write code day in and day out, know this&amp;nbsp;to be&amp;nbsp;the truth.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There
is no hiding from it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We grind it out
as we know how and love it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So when I
am asked how much the software development project &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;is
going to cost and how long it is going to take, I apply a tried and trued approach
to answer what is a very, very difficult question.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
is why you see software estimation models like the Constructive Cost Model or CoCoMo
for short.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You can &lt;a href="http://sunset.usc.edu/research/COCOMOII/Docs/modelman.pdf"&gt;read
the gory details of the model here. PDF alert!&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt; No
surprise to see that counting lines of source code (or equivalent lines of source
code) is the way to answer the tough question of how long and how much.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Barry_Boehm"&gt;Dr.
Barry Boehm&lt;/a&gt; had it figured out&lt;/font&gt;&lt;font color=#000000&gt; years ago.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;When
I took Software Engineering as a post graduate course at the 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceType w:st="on"&gt;University&lt;/st1:PlaceType&gt;
of 
&lt;st1:PlaceName w:st="on"&gt;Calgary&lt;/st1:PlaceName&gt;
&lt;/st1:place&gt;
, this is what we were taught and has been consistent with what I have found in the
field.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So yes, I use CoCoMo to answer
the ugly, gnarly questions. And there are several automated tools that implement CoCoMo’s
model, &lt;a href="http://softwareindustrialization.com/COCOMOIIOnlineEstimationTool.aspx" target=_blank&gt;even
ones online&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;So what has happened to our software development industry that
we need to keep reinventing the wheel in the name of continuous improvement?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
think it is indicative of anything that is really tough to do.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Everyone
is looking for an easy answer or the next big thing.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
as most things in life, the answer is already figured out.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
just need to look in the right place, listen to wisdom and apply some common sense.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Congratulations,
you just made pro software engineer!&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 4.5in"&gt;
&lt;font color=#000000&gt;What’s my point?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My
point is two fold.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Our software development
industry is being run by marketing people and has gone insane ;-)&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Ok,
I half jest.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I know over time the pendulum
will swing back to the basic fundamentals of what software development really is.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My
other point is to the young aspiring software engineers.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Kids,
look at some of the real software engineering techniques that hold up to the test
of time.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;These are the gems.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
is what is real in our industry.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;CoCoMo
is real, it works, and is based on facts and historical proof.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If
you were to only read one book on software engineering, read the &lt;a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959" target=_blank&gt;Mythical
Man Month&lt;/a&gt; as it embodies what is really happening in our software development
world, regardless of when the book was written.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There
is a reason why &lt;a href="http://en.wikipedia.org/wiki/Fred_Brooks" target=_blank&gt;Fred
Brooks&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=#000000&gt;earned the Turing Award.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Your
assignment is to understand why.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=3e4ade5c-21b5-45d3-8851-213048198c15" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/hbD0UvT7itE" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,3e4ade5c-21b5-45d3-8851-213048198c15.aspx</comments>
      <category>Industrialization</category>
    <feedburner:origLink>http://softwareindustrialization.com/SoftwareDevelopmentGoneInsane.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://softwareindustrialization.com/Trackback.aspx?guid=de54f9db-58f8-447b-881e-5408596f9cb6</trackback:ping>
      <pingback:server>http://softwareindustrialization.com/pingback.aspx</pingback:server>
      <pingback:target>http://softwareindustrialization.com/PermaLink,guid,de54f9db-58f8-447b-881e-5408596f9cb6.aspx</pingback:target>
      <dc:creator>Mitch Barnett</dc:creator>
      <wfw:comment>http://softwareindustrialization.com/CommentView,guid,de54f9db-58f8-447b-881e-5408596f9cb6.aspx</wfw:comment>
      <wfw:commentRss>http://softwareindustrialization.com/SyndicationService.asmx/GetEntryCommentsRss?guid=de54f9db-58f8-447b-881e-5408596f9cb6</wfw:commentRss>
      <title>Brute Force Development (BFD)</title>
      <guid isPermaLink="false">http://softwareindustrialization.com/PermaLink,guid,de54f9db-58f8-447b-881e-5408596f9cb6.aspx</guid>
      <link>http://feedproxy.google.com/~r/softwareindustrialization/~3/i_LxKNMGlT8/BruteForceDevelopmentBFD.aspx</link>
      <pubDate>Tue, 10 Feb 2009 06:43:45 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Man, it seems that every few years there is a new software development
methodology that comes out and while not purported as the 2&lt;sup&gt;nd&lt;/sup&gt; coming, it
certainly has all of the fanfare of the latest and greatest. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Let’s see there has been CMMI, TDD, Agile, Scrum, Lean, Waterfall,
Continuous Integration, Spiral, Extreme Programming, RAD, MDD, YAGNI, Cowboy Programming, &lt;a href="http://en.wikipedia.org/wiki/List_of_software_development_philosophies" target=_blank&gt;and
the list goes on&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
would like to add to the list an oldie but a goodie: Brute Force Development or BFD.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I would suggest that BFD is the most widely practiced software
development methodology in the world.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
fact, I would claim that the majority of organizations and people use this methodology
daily and have been since the inception of software development.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;How do I know this? In the real world of software development,
where the size and complexity of even the smallest projects (e.g. &amp;gt;5000 lines of
code) exceed the allocated budget and timeline, almost everyone resorts to brute force
development in the end.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Why?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Because,
we have to.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How else can we do it?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;When
was the last time, as a professional programmer, that you actually finished your project/product
on time and on budget?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Did you do it
working 40 hours per week?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Honestly?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Typically we start out with the best intentions, but as the schedule
starts to slip and the budget is disappearing at the rate that a 426 Hemi goes through
a tank of gas, we drop in BFD mode.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We
try and do the impossible.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Extra hours
are burnt, features are slashed, quality goes out the window, and we brute force our
way to meet the impossible schedule.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Now, I am not complaining.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
is just an observation having worked in many different shops, large and small, including
my own start-up.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We end up with BFD in
the end.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Heck even the guru himself (who I have nothing but respect for),
in his own post called, "&lt;a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/09/23/building-a-fort-lessons-in-software-estimation.aspx" target=_blank&gt;Building
a Fort – Lessons in Software Estimation&lt;/a&gt;&lt;/font&gt;&lt;font color=#000000&gt;"&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;made
some pretty interesting slip ups.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My
favorite was the, “I dropped a little piece of my laser level down the side of one
of the footing holes, between the concrete form and the dirt,&amp;nbsp;after I'd poured
the concrete.”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oh Steve, think of all
the things we have dropped in the software!&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I will go out on a limb by saying I have yet to see any evidence
that we, as software architects, developers, estimators, etc., are actually getting
any better at this.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I have been doing
this for 18 years professionally and maybe I am dreaming, but it seemed simpler years
ago. Not just that the requirements were simpler, but even from a technology standpoint.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
I mean is that software vendors that produce tools, programming languages and applications
have grown (seemingly) exponentially during this time frame as it seems any solution
(and the tooling, languages, and apps) I am involved in has way more moving parts.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A
lot of these moving parts are new and unforeseen issues crop up well into the development
cycle where one vendors library interfaces don’t seem to match what the documentation
says, for example.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And then we brute
force it – to make it work.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Part of this is tongue in cheek as there is another meaning to
BFD than can be applied to programming methodologies.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
can get a hint by looking at the blog category this was filed under.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
sincerely don’t mean any disrespect to the authors and believers of these software
development methodologies, but sometimes the “marketing messages” can be a little
much and even downright embarrassing.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; For e&lt;/span&gt;xample,
try explaining to your significant other what Agile and Scrum mean.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
do you think the “business folks” are thinking when you explain it to them?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Do
they even care?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I would hazard a guess
that all they care about is how much is it going to cost and when can&amp;nbsp;we start
using the software.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Btw, they are also
thinking, it better do what I want it to do for this amount of money... or else...&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;So the moment that things don’t go as planned, BFD kicks in.&amp;nbsp;
Whether you know it or not.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;In
1994, before most of these methodologies and marketing names came into effect, I had
the good fortune of taking a 2 year post grad course in Software Engineering Management
at the 
&lt;st1:PlaceType w:st="on"&gt;University&lt;/st1:PlaceType&gt;
of 
&lt;st1:PlaceName w:st="on"&gt;Calgary&lt;/st1:PlaceName&gt;
in 
&lt;st1:State w:st="on"&gt;Alberta&lt;/st1:State&gt;
, 
&lt;st1:country-region w:st="on"&gt;
&lt;st1:place w:st="on"&gt;Canada&lt;/st1:place&gt;
&lt;/st1:country-region&gt;
.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It was taught by 
&lt;st1:place w:st="on"&gt;
&lt;st1:PlaceName w:st="on"&gt;Motorola&lt;/st1:PlaceName&gt;
&lt;st1:PlaceType w:st="on"&gt;University&lt;/st1:PlaceType&gt;
&lt;/st1:place&gt;
and one of the instructors, with 30 years experience, had some awesome stories on
how “yer doin it wrong.”&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The funny thing
was, while we learned a great deal about software engineering (that’s the last time
I write 17 exams in 2 years!), what we learned most was common sense and communication.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
other words, how to tell your customer (ahem, the one paying your rate, salary, contract,
or whatever) that we can’t write 100,000 lines of code in 2 weeks.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
real methodology here folks is just called common sense.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I don’t think much has changed since then as we are always fighting
that battle.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Developing software for
any decent sized project (&amp;gt;5,000 lines of code) is really, really hard, maximally
labor intensive and fraught with… well, you name it.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I can hear the Agile folks saying that our methodology is the
one that mitigates this risk.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;While that
may be partially true, how do you answer the top two questions asked by the customer:
how long will it take?&amp;nbsp; And how much will that cost?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;
And our requirements list is just that, a one pager with bulleted high level fatures
items and some of the bulleted items have two words explaining the requirement.&amp;nbsp;
Oh yeah and at fixed price.&amp;nbsp; &lt;/span&gt;Ready to sign up?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
the end, in order to make that deadline or not burn through your fixed cost, it's
BFD man.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That’s the reality.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;And
btw, could you not have come up with a better name.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
mean did you not know that &lt;a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html" target=_blank&gt;Agile
is Dead?&lt;/a&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;So what’s my point?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Well,
aside from having some fun with the BFD acronym, as with most things, there is some
truism there for sure.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We have all done
it, yes?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I am sure that anyone that has
written code for any length of time has done BFD.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Which
makes my newly minted, TLA marketing buzzword an instant leader in the world of software
development methodologies!&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;All kidding aside, maybe it is time to step back and look at some
of the basics for any software development project.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
very first I would think is answering the two most basic questions of any software
development project – how long and how much $’s.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Do
you have a predictable and repeatable way of doing that?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
accurate is it?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If you don’t, then you
are likely to be doing BFD even before you write a single line of code and therefore
none of those fancy software development methodologies won’t help you one bit. Know
what I mean?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Remember, keep the rubber side down!&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://softwareindustrialization.com/aggbug.ashx?id=de54f9db-58f8-447b-881e-5408596f9cb6" /&gt;&lt;img src="http://feeds.feedburner.com/~r/softwareindustrialization/~4/i_LxKNMGlT8" height="1" width="1"/&gt;</description>
      <comments>http://softwareindustrialization.com/CommentView,guid,de54f9db-58f8-447b-881e-5408596f9cb6.aspx</comments>
      <category>Humor</category>
    <feedburner:origLink>http://softwareindustrialization.com/BruteForceDevelopmentBFD.aspx</feedburner:origLink></item>
  </channel>
</rss>
