<?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>Chris Birmele's Blog : Software Engineering</title><link>http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx</link><description>Tags: Software Engineering</description><dc:language>en-AU</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Want to know the magic formula of how to develop software successfully?</title><link>http://blogs.msdn.com/chrisbirmele/archive/2009/03/25/want-to-know-the-magic-formula-of-how-to-develop-software-succesfully.aspx</link><pubDate>Wed, 25 Mar 2009 03:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9505855</guid><dc:creator>ChrisBirmele</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chrisbirmele/comments/9505855.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisbirmele/commentrss.aspx?PostID=9505855</wfw:commentRss><description>&lt;p&gt;The magic formula is: &lt;span style="font-weight: bold; font-style: italic;"&gt;Success == People + Process + Tools&lt;/span&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;Well this is hardly a revelation of historic proportions, but why is it people keep looking for that elusive tool that will solve all their problems?&amp;nbsp; Tools are very important, don't get me wrong, but they are not a substitute for inappropriate processes and they are certainly not a substitute for lack of skills - they are a necessary complement.&lt;/p&gt;&lt;p&gt;So which addend carries more weight?&amp;nbsp; Well it depends .... :-)&lt;/p&gt;&lt;p&gt;If we view software engineering as a series of transformations (shown below and explained in detail &lt;a href="http://blogs.msdn.com/chrisbirmele/archive/2007/10/17/the-bulls-eye-framework-or-how-to-get-rich.aspx" title="here" mce_href="http://blogs.msdn.com/chrisbirmele/archive/2007/10/17/the-bulls-eye-framework-or-how-to-get-rich.aspx"&gt;here&lt;/a&gt;) starting with a business need and ending with a software solution - tools become more useful the closer you get to the source code.&lt;br&gt;&lt;/p&gt;&lt;p&gt;At higher levels of abstractions (i.e. during analysis or design) processes and people are very important and when gathering requirements people are by far the most important addend - why do you think poor requirements continue to be THE major challenge in software engineering?&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2239/1596408428_e1dd9f5c1b.jpg?v=0" title="Bullseye Framework" alt="Bullseye Framework" mce_src="http://farm3.static.flickr.com/2239/1596408428_e1dd9f5c1b.jpg?v=0" width="500" height="382"&gt;&lt;/p&gt;&lt;p&gt;NOTE:&amp;nbsp; I am &lt;span style="font-weight: bold;"&gt;not &lt;/span&gt;suggesting these activities occur sequentially or result in producing formal artifacts.&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9505855" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item><item><title>Requirements Management with VSTS?</title><link>http://blogs.msdn.com/chrisbirmele/archive/2007/11/08/requirements-management-with-vsts.aspx</link><pubDate>Thu, 08 Nov 2007 08:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5978373</guid><dc:creator>ChrisBirmele</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chrisbirmele/comments/5978373.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisbirmele/commentrss.aspx?PostID=5978373</wfw:commentRss><description>&lt;P&gt;So you think we can't do this in VSTS?&amp;nbsp; Steve Lange has written an elaborate 4-part series about how you can(with and without partner add-ons).&amp;nbsp; Check it out &lt;A class="" title=here href="http://blogs.msdn.com/slange/archive/2007/11/06/requirements-management-in-tfs-part-1-of-4-overview.aspx" mce_href="http://blogs.msdn.com/slange/archive/2007/11/06/requirements-management-in-tfs-part-1-of-4-overview.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5978373" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/VSTS+Specific/default.aspx">VSTS Specific</category></item><item><title>Requirements?  What exactly do you mean?</title><link>http://blogs.msdn.com/chrisbirmele/archive/2007/10/31/requirements-what-exactly-do-you-mean.aspx</link><pubDate>Wed, 31 Oct 2007 08:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5792415</guid><dc:creator>ChrisBirmele</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chrisbirmele/comments/5792415.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisbirmele/commentrss.aspx?PostID=5792415</wfw:commentRss><description>&lt;P&gt;Have you ever wondered why&amp;nbsp;specifying requirements continues to be a major challenge for most organisations?&amp;nbsp; Well there are many legitimate reasons, but using&amp;nbsp;the term "Requirement" in the first place isn't helping ....&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Read this paper if you want to&amp;nbsp;fix this.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5792415" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/chrisbirmele/attachment/5792415.ashx" length="293692" type="application/vnd.openxmlformats-officedocument.word" /><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item><item><title>Lost in translation - or the Bulls Eye framework</title><link>http://blogs.msdn.com/chrisbirmele/archive/2007/10/17/the-bulls-eye-framework-or-how-to-get-rich.aspx</link><pubDate>Wed, 17 Oct 2007 09:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5485425</guid><dc:creator>ChrisBirmele</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/chrisbirmele/comments/5485425.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisbirmele/commentrss.aspx?PostID=5485425</wfw:commentRss><description>&lt;P mce_keep="true"&gt;A software development effort is essentially a "translation" of a business need into a software solution.&amp;nbsp; The problem is that several&amp;nbsp;"translations"&amp;nbsp;are required before&amp;nbsp;machines can take over and generate the final software product.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The process typically starts with some requirements gathering, perhaps some level of analysis and design until code can be produced.&amp;nbsp; Each of these steps represents a layer of abstraction that is essentially an &lt;EM&gt;&lt;STRONG&gt;interpretation&lt;/STRONG&gt;&lt;/EM&gt; of the previous layer ....&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In a perfect world, all these translations are perfectly aligned and a given business needs translates into a perfect solution -&amp;nbsp; the center of the bulls-eye!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="The Bulls Eye" style="WIDTH: 500px; HEIGHT: 382px" height=382 alt="The Bulls Eye" src="http://farm3.static.flickr.com/2239/1596408428_e1dd9f5c1b.jpg?v=0" width=500 mce_src="http://farm3.static.flickr.com/2239/1596408428_e1dd9f5c1b.jpg?v=0"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Now here is the challenge...&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;For each of these abstractions we use a different technique, i.e. natural languages for requirements, graphical notations for analysis &amp;amp; design and programming languages for the actual source code.&amp;nbsp; Each of these techniques has very different characteristics with respect to &lt;STRONG&gt;&lt;EM&gt;semantic richness&lt;/EM&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;EM&gt;precision&lt;/EM&gt;&lt;/STRONG&gt;.&amp;nbsp; Natural languages are semantically extremely rich but very low in precision, programming languages are&amp;nbsp;exactly the opposite, semantically very poor but so precise that a compiler can interpret it.&lt;/P&gt;
&lt;P mce_keep="true"&gt;There have been many attempts&amp;nbsp;to find a solution to&amp;nbsp;this inherent problem, model-driven development is one&amp;nbsp;them.&amp;nbsp; Agile development ignores the translations in the middle focusing&amp;nbsp;instead on churning out code until it&amp;nbsp;meets business needs more or less.&amp;nbsp;&amp;nbsp;Bertrand Meyer tried to solve this problem by creating a single notation that can be used to capture requirements, source code and everything else in between&amp;nbsp;(the &lt;EM&gt;notation&lt;/EM&gt; is called "Eiffel").&lt;/P&gt;
&lt;P mce_keep="true"&gt;The world is still looking for a solution.....&amp;nbsp;&amp;nbsp; Whoever is going to solve this fundamental problem is going to make a ton of money - and probably wins the Nobel price!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5485425" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item><item><title>ALM versus SDLC - two different things</title><link>http://blogs.msdn.com/chrisbirmele/archive/2007/04/23/alm-versus-sdlc-two-different-things.aspx</link><pubDate>Mon, 23 Apr 2007 01:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2237708</guid><dc:creator>ChrisBirmele</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/chrisbirmele/comments/2237708.aspx</comments><wfw:commentRss>http://blogs.msdn.com/chrisbirmele/commentrss.aspx?PostID=2237708</wfw:commentRss><description>&lt;P&gt;You may hear that "VSTS is an ALM tool" when talking with a Microsoft rep or techie.&amp;nbsp; This is not a misrepresentation but what they often mean is&amp;nbsp;that "VSTS is an SDLC tool".&amp;nbsp; Unfortunately marketing got their hands on this acronym and IMHO got it all tangled up.&amp;nbsp; Lets deconfuse the two very distinct things:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SDLC&lt;/STRONG&gt; == &lt;U&gt;S&lt;/U&gt;oftware &lt;U&gt;D&lt;/U&gt;evelopment &lt;U&gt;L&lt;/U&gt;ife &lt;U&gt;C&lt;/U&gt;ycle;&amp;nbsp; this includes everything to do with DEVELOPING a software application, including requirements, architecture, coding, testing, configuration management project management&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ALM&lt;/STRONG&gt; == &lt;U&gt;A&lt;/U&gt;pplication &lt;U&gt;L&lt;/U&gt;ife Cycle &lt;U&gt;M&lt;/U&gt;anagement;&amp;nbsp; as the name suggests includes everything that is part of the Application Lifecycle.&amp;nbsp; When does the life of an apps start?&amp;nbsp; No, not in development, it starts somewhere in the business as an idea, a need, a challenge, a risk.&amp;nbsp; When does the life of an application end?&amp;nbsp; No, not at the end of development, but when the application is no longer used by the business - potentially many years after the initial development.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I use the following slide to deconfuse confused folks:&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 500px; HEIGHT: 391px" height=391 src="http://farm1.static.flickr.com/180/469104383_f33ad80c3c.jpg" width=500 mce_src="http://farm1.static.flickr.com/180/469104383_f33ad80c3c.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;These&amp;nbsp;days the SDLC is typically iterative in nature, but so is the Application life Cycle!&amp;nbsp; As the business responds to an ever&amp;nbsp;changing environment, we start yet another ALM cycle to update, enhance the application and redeploy so the business can realise the benefits.&lt;/P&gt;
&lt;P mce_keep="true"&gt;It's really that simple.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2237708" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/chrisbirmele/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item></channel></rss>