<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx</link><description>Why this is important? For me, this is important because as a practitioner of the trade I have a historical responsibility to layout the best possible base for future practitioners and for the future of the profession. What is it? It seems that software</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511614</link><pubDate>Wed, 11 Jan 2006 19:38:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511614</guid><dc:creator>tadanderson</dc:creator><description>I like why it is important to you.  Engineering is the only why to give an application a future.&lt;br&gt;&lt;br&gt;I wrote a small blog on what I see the difference between .net software development and software engineering is.&lt;br&gt;&lt;br&gt;[&lt;a rel="nofollow" target="_new" href="http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm"&gt;http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm&lt;/a&gt;]&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511615</link><pubDate>Wed, 11 Jan 2006 19:39:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511615</guid><dc:creator>tadanderson</dc:creator><description>For some reason te link to the blog didn't go through. Trying again..&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm"&gt;http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm&lt;/a&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511630</link><pubDate>Wed, 11 Jan 2006 19:58:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511630</guid><dc:creator>marcod</dc:creator><description>Talking about software engineering in general.&lt;br&gt;So should we pretend it is a full-fledged branch of engineering? Or could be better to avoid wishful thinking?</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511698</link><pubDate>Wed, 11 Jan 2006 22:10:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511698</guid><dc:creator>tadanderson</dc:creator><description>Well I think it is a branch of engineering in certain circles. When I worked an electronic engineer the software we wrote to program our PLCs (PROGRAMMABLE LOGIC CONTROLLERS) was engineered just like the components that went in to the hardware. &lt;br&gt;&lt;br&gt;In the domain of applications built for computers (web apps, windows apps, enterprise apps) I know it is possible to do, but is for the most part rejected by organizations building the software. I think it is mostly because a lot of them have been introduced to building applications with tools like VB 6.0, and other IDEs that promote RAD development. Which is a good thing when considering time to market, but a bad thing for maintainability, quality, and building applications that actually meet the requirements of the client. It is basically building an application that is a legacy application the day it is released. By legacy I mean you don't know how it was built, so it will be difficult to modify, maintain, debug, and upgrade. &lt;br&gt;&lt;br&gt;I know Rational was striving to get us there, but now they are no longer around. They have been swallowed by IBM, so I don't depend on them as a resource for what one might call open software engineering. Meaning no one is influencing their goals of improving software engineering. &lt;br&gt;&lt;br&gt;Currently I review many organizations to extract from them what might be good practices for software engineering. Microsoft, IBM, Sun, Intel, and all those competing in the market. But I am always wary and need to make sure what they are preaching/teaching is not for their own hidden agenda that is market focused. I include all the open source projects in this group also. I always like to do what Microsoft and these other groups do internally, but I find a lot times I avoid doing what they are telling the market to do. &lt;br&gt;&lt;br&gt;I trust a few sources without hesitation and they are the Carnegie Mellon Software Engineering Institute (SEI), Massachusetts Institute of Technology (MIT), and Institute of Electrical and Electronics Engineers (IEEE). &lt;br&gt;&lt;br&gt;It is being done is some circles, so I would say that qualifies it as a branch of engineering. It just isn't being done nearly enough. &lt;br&gt;&lt;br&gt;Engineering needs a process. I talk about that here: &lt;a rel="nofollow" target="_new" href="http://realworldsa.dotnetdevelop"&gt;http://realworldsa.dotnetdevelop&lt;/a&gt; ersjournal.com/the_process_ladder_up_rup_eup_ple__ never_neverland.htm &lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511707</link><pubDate>Wed, 11 Jan 2006 22:34:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511707</guid><dc:creator>marcod</dc:creator><description>A systematic method for software design is a very good thing, disciplined and thoughtful people are critical. But I do not see how those are related to the qualification of software engineering as a proper branch of engineering, or for that matter, the qualification of the theories that makes a software science.&lt;br&gt;&lt;br&gt;MIT, CMU, IEEE are respected organizations, that is clear. Just show me where are the laws of software which support the theories that makes the science behind software engineering, I am looking for them.&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511719</link><pubDate>Wed, 11 Jan 2006 23:09:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511719</guid><dc:creator>tadanderson</dc:creator><description>Your base is this:&lt;br&gt;If we took as premise that all engineering is applied factual science (unlike formal sciences -of which there are no applications for the very reason they are formal), and the sine qua non attribute for a science to exist is that it is made of theories; and each theory is a system of laws; and each law is a general, necessary and constant relationship between phenomena (observed facts); and the observed facts can be perceived with the senses and repeatable…&lt;br&gt;&lt;br&gt;The process (UP, RUP, and so on) defines the laws.  The laws are what keep the humans in the process repeating actions that provide a predictable outcome.  &lt;br&gt;&lt;br&gt;The same way a process defines how an engineer builds an electronic component.  The laws of software engineering are govern by the laws of electronic engineering.  Combined they create computer science.&lt;br&gt;&lt;br&gt;The book CODE by Charles Petzold is a cool read that walks across that bridge.&lt;br&gt;&lt;br&gt;Who knows, maybe you got a point and we are all living in the Matrix, and I am really just Mr. Anderson thinking a am a software engineer…&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#511894</link><pubDate>Thu, 12 Jan 2006 08:14:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:511894</guid><dc:creator>marcod</dc:creator><description>(Seriously, this dialog is very useful, please keep yourself thoughtful)&lt;br&gt;&lt;br&gt;It is very hard for me to see a proprietary software process framework like Unified Process or a commercial one like Rational Unified Framework (now IBM Rational Method Composer) to be the laws that explain and predict all software development of the world. Try to grab from them in a prohibited way and you will have to face some merciless lawyers very soon.&lt;br&gt;&lt;br&gt;No, I think we are writing about two different things entirely. As if you were writing about the numbers 23.5 and 12 and I were writing about data types double and integer.&lt;br&gt;&lt;br&gt;It is very, very hard for me to see how possibly “The laws of software engineering are govern by the laws of electronic engineering”. Just because the goods made out of atoms follow different physical rules in comparison with the goods made out of bits.&lt;br&gt;&lt;br&gt;Sorry but I think that Mr. Petzold got it somewhat unbalanced between hardware and software, he talks in his book 80% about hardware and 20% about software, to some extend disappointing for me.&lt;br&gt;&lt;br&gt;So far, as objective as I can possibly be, software development trade by now is like old guilds of artisans, where the most advanced are spreading their knowledge by means of craftsmanship traditions; but very far from establishing reliable knowledge for the basis of a software science, yet.&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#512220</link><pubDate>Fri, 13 Jan 2006 00:55:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:512220</guid><dc:creator>tadanderson</dc:creator><description>But aren't the bits being placed into the atoms constrained by the laws that the atoms are enforcing?  And the atoms are being placed together by the laws that nature allows us to structure them.  To me the laws are being forced upon the next layer of abstraction - the chip's physical structure -&amp;gt; the electronic storage into the chip -&amp;gt; the bits arranged to form digital communication patterns that move through the layers of language abstraction for assembler to C to IL to C#.</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#512229</link><pubDate>Fri, 13 Jan 2006 01:20:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:512229</guid><dc:creator>tadanderson</dc:creator><description>These two links provide some interesting perspectives on the point you are raising.&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Software_engineering"&gt;http://en.wikipedia.org/wiki/Software_engineering&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Software_Craftsmanship"&gt;http://en.wikipedia.org/wiki/Software_Craftsmanship&lt;/a&gt;&lt;br&gt;&lt;br&gt;The second says this about the topic:&lt;br&gt;&lt;br&gt;While software engineering appropriately describes the processes necessary to build large, complex systems like those at work doing tasks like flying the Space Shuttle, software craftsmanship as modelled after the guild tradition in the building trades is in fact how the bulk of software is actually written.&lt;br&gt;&lt;br&gt;Which I would agree with.&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#512855</link><pubDate>Sat, 14 Jan 2006 16:17:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:512855</guid><dc:creator>tadanderson</dc:creator><description>My final post on this is here:&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm"&gt;http://realworldsa.dotnetdevelopersjournal.com/net_software_engineering_versus_net_software_development.htm&lt;/a&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#513009</link><pubDate>Sun, 15 Jan 2006 06:29:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:513009</guid><dc:creator>marcod</dc:creator><description>You keep using the word “engineering” but by now I am lost of your intended meaning.&lt;br&gt;The intended meaning on my original post entry is that engineering refers to the applied/practical/functional/workable part of some established body of scientific knowledge (that is to say, reliable knowledge built on theories whose use is to explain and to predict a part of our world), in this case about design of computer programs.&lt;br&gt;&lt;br&gt;No amount of people-no matter how large-yelling and repeating &amp;quot;the sun goes around the earth&amp;quot;, make it so; or as Mr. Lincoln said: &amp;quot;If you call a tail a leg, how many legs has a dog? Five? No, calling a tail a leg don't make it a leg&amp;quot; -Abraham Lincoln&lt;br&gt;&lt;br&gt;Telling a human activity is a branch of engineering discipline should be based on more than &amp;quot;it feels as engineering&amp;quot; or &amp;quot;it ought to be engineering&amp;quot;, which is basically what was said at the 1968 NATO conference where the term &amp;quot;software engineering&amp;quot; was originally coined*.&lt;br&gt;&lt;br&gt;Where are the corresponding theories since then?&lt;br&gt;It is perhaps that marketing people has done a better job than us in our mainstream trade?&lt;br&gt;&lt;br&gt;*The End of Software Engineering and the Start of Economic-Cooperative Gaming&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://alistair.cockburn.us/crystal/articles/eoseatsoecg/theendofsoftwareengineering.htm"&gt;http://alistair.cockburn.us/crystal/articles/eoseatsoecg/theendofsoftwareengineering.htm&lt;/a&gt;&lt;br&gt;&lt;br&gt;Some thoughts:&lt;br&gt;&lt;br&gt;&amp;quot;Q:What are the most exciting, promising software engineering ideas or techniques on the horizon? A:I don't think that the most promising ideas are on the horizon. They are already here and have been for years, but are not being used properly&amp;quot; -David Lorge Parnas&lt;br&gt;&lt;br&gt;&amp;quot;Computer science hasn’t achieved the grand narrative that explains it all, the big picture—we haven’t found the fundamental laws of software that would play the role that the fundamental laws of physics play for other engineering disciplines&amp;quot; -Philippe Kruchten&lt;br&gt;&lt;br&gt;OK, So Maybe Software Development Isn’t Engineering After All&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://mcpmag.com/columns/article.asp?editorialsid=1120"&gt;http://mcpmag.com/columns/article.asp?editorialsid=1120&lt;/a&gt;&lt;br&gt;</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#8577263</link><pubDate>Fri, 06 Jun 2008 11:43:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8577263</guid><dc:creator>root123</dc:creator><description>&lt;p&gt;At macro level it may be termed something other than engineering....&lt;/p&gt;
</description></item><item><title>re: Taking software engineering seriously</title><link>http://blogs.msdn.com/marcod/archive/2006/01/11/SeriousSoftwareEngineering.aspx#9902718</link><pubDate>Sat, 03 Oct 2009 13:24:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9902718</guid><dc:creator>hxa7241</dc:creator><description>&lt;p&gt;This is a well-made analysis of the question, which is commendable when so few others are as careful. I think I can answer in reasonable way.&lt;/p&gt;
&lt;p&gt;Looking one step further, we may ask: what is it that enables scientific laws to be formed? It is a basic material that is substantially determinate -- that behaves sufficiently 'regularly' as to be amenable to logical, mathematical models being made of it.&lt;/p&gt;
&lt;p&gt;Does software have such a material? Yes. Looking at the very lowest level, there is the bit with its properties of identity and mutability. It is necessarily entirely determinate -- it is in a sense made of the same stuff as a model itself. Now, although this medium is clearly adequate for laws, does it have any? Algorithmic complexity results must count -- e.g. comparison sorts having minimum O(n log n). They are substantial, useful, and measurable. Yet there still seems a lack of such solid laws generally.&lt;/p&gt;
&lt;p&gt;So software certainly has a core of the type of an engineering, it has the potential, but it has not been fully realised. Software seems best described as an immature engineering -- something often felt, but the above gives a rational account of why.&lt;/p&gt;
&lt;p&gt;For more, see:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.hxa.name/articles/content/building-model-for-software_hxa7241_2009.html"&gt;http://www.hxa.name/articles/content/building-model-for-software_hxa7241_2009.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.hxa.name/articles/content/software-engineering-and-civil-engineering_hxa7241_2008.html"&gt;http://www.hxa.name/articles/content/software-engineering-and-civil-engineering_hxa7241_2008.html&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>