<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Development At Heart</title>
	<atom:link href="http://ruicurado.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruicurado.com</link>
	<description>Passionate About Software Development</description>
	<lastBuildDate>Fri, 26 Feb 2010 16:36:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Starting the ABSE &#8220;One Fact A Day&#8221; series</title>
		<link>http://ruicurado.com/2010/02/26/starting-the-abse-one-fact-a-day-series/</link>
		<comments>http://ruicurado.com/2010/02/26/starting-the-abse-one-fact-a-day-series/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 16:36:47 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=85</guid>
		<description><![CDATA[Starting today I will everyday (or so) post a simple fact about ABSE and a short text regarding that fact, in ABSE/AtomWeaver&#8217;s community site at Ning.
I hope this series to be a very simple and easy way for developers to get acquainted with ABSE, to know what it can do, and what they can accomplish [...]]]></description>
			<content:encoded><![CDATA[<p>Starting today I will everyday (or so) post a simple fact about ABSE and a short text regarding that fact, in ABSE/AtomWeaver&#8217;s community site at Ning.</p>
<p>I hope this series to be a very simple and easy way for developers to get acquainted with ABSE, to know what it can do, and what they can accomplish with it. It won&#8217;t take you more than two minutes per day.</p>
<p>New post announcements will be added to ABSE/AtomWeaver&#8217;s <a href="http://twitter.com/atomweaver">twitter account</a>, and the fact pages can be found inside the <a href="http://atomweaver.ning.com/page/3677765:Page:223">ABSE section</a> of the community site.</p>
<p>I take the opportunity to invite those that want to learn about ABSE and follow its evolution, to join its official community at <a href="http://atomweaver.ning.com/">http://atomweaver.ning.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2010/02/26/starting-the-abse-one-fact-a-day-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hidden Costs of Domain-Specific Languages</title>
		<link>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/</link>
		<comments>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 00:49:54 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Domain-Specific Languages]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=71</guid>
		<description><![CDATA[While I am a big fan of Domain-Specific Modeling, I am openly not in favor of Domain-Specific Languages. DSL supporters advocate many good things. Are they real? Is it the whole truth?
Let&#8217;s see some good (valid) points about DSL&#8217;s:

It&#8217;s domain-specific (duh!)
Encapsulates boring details
Can increase abstraction to the next level

And other not so valid points:

It&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>While I am a big fan of Domain-Specific Modeling, I am openly not in favor of Domain-Specific Languages. DSL supporters advocate many good things. Are they real? Is it the whole truth?</p>
<p>Let&#8217;s see some good (valid) points about DSL&#8217;s:</p>
<ul>
<li>It&#8217;s domain-specific (duh!)</li>
<li>Encapsulates boring details</li>
<li>Can increase abstraction to the next level</li>
</ul>
<p>And other not so valid points:</p>
<ul>
<li>It&#8217;s a Shiny New [mainstream] Thing. Most developers love that</li>
<li>It&#8217;s cool and I can do it too</li>
</ul>
<p>The first are very enticing, valuable, and sought for, and most of DSL&#8217;s attraction I guess comes from these features. But, will it pay off?</p>
<p>I really don&#8217;t have much experience with DSLs, so I won&#8217;t use my own arguments. I&#8217;ll let the community speak for myself. Here is a tiny sample of DSL criticism:</p>
<p><a title="http://c2.com/cgi/wiki?DomainSpecificLanguage" href="http://c2.com/cgi/wiki?DomainSpecificLanguage">http://c2.com/cgi/wiki?DomainSpecificLanguage</a></p>
<blockquote><p><span style="color: #333399;">&#8230; the <em>Tower Of Babel</em> effect that results from having so many languages that a person needs to be familiar with (if not master) in order to get common jobs done.<br />
&#8230;<br />
writing a good DSL that is robust and reusable beyond a limited context, is a lot of work. It requires persons with both domain expertise and language design expertise (not necessarily the same person) to pull off. A truly reusable DSL will require reasonable documentation, otherwise it won&#8217;t survive the departure of its designers.</span></p></blockquote>
<p><a title="http://www.theserverside.com/news/thread.tss?thread_id=42078" href="http://www.theserverside.com/news/thread.tss?thread_id=42078">http://www.theserverside.com/news/thread.tss?thread_id=42078</a></p>
<blockquote><p><span style="color: #333399;">The other mistake some folks make is they think that with a DSL that &#8220;non-coders&#8221; can actually use the DSL.</span></p>
<p><span style="color: #333399;">But since a DSL is designed for automation of an underlying objet model, writing in a DSL is just like writing in any language &#8212; whether it&#8217;s DOS .BAT files or Java, and it takes a coding mindset and understanding of the underlying domain as represented by the computer in order to make effective use.</span></p></blockquote>
<p>There was much more written on this thread. You can go to the original page to read more opinions.</p>
<p>As general use of DSLs become mainstream, so become the complaints about their shortcomings. If we take so much time to master a general purpose language, should we invest a comparable amount of time in limited-use languages? How can we get support for a DSL, apart from its own creators? Where&#8217;s community support? What happens after the departure of the language&#8217;s creator? What&#8217;s BNF? Do I need it?</p>
<p>DSL critics say really useful DSLs are hard and expensive to create. DSL supporters answer that DSLs are not designed, they evolve. Well, won&#8217;t any of those &#8220;evolutionary steps&#8221; risk breaking the entire development based on that DSL, much like a broken app build? Will the evolution in the language be severe enough to trash what has been done so far? Can you imagine yourself developing a complex C++ software system while C++ itself was still being designed and developed?</p>
<p>Still too many unanswered questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Milestone 1 Reached: Showing ABSE to the world</title>
		<link>http://ruicurado.com/2009/11/02/milestone-1-reached-showing-abse-to-the-world/</link>
		<comments>http://ruicurado.com/2009/11/02/milestone-1-reached-showing-abse-to-the-world/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 14:34:35 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=66</guid>
		<description><![CDATA[Today is a big day for me and for ABSE: This is the day that shows to the world, through its official site at abse.info, what ABSE is all about, and what it can bring to the software engineering community. It has been almost three years since I started working on the definitive implementation of [...]]]></description>
			<content:encoded><![CDATA[<p>Today is a big day for me and for ABSE: This is the day that shows to the world, through its official site at <a href="http://www.abse.info">abse.info</a>, what ABSE is all about, and what it can bring to the software engineering community. It has been almost three years since I started working on the definitive implementation of an easy and productive way to develop and maintain software.</p>
<p>OK, so the current website is a little short on details, but not short on propaganda <img src='http://ruicurado.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ! That&#8217;s because the first task will be to evangelize the developer community and not to have the technology reviewed by industry experts. ABSE is still in its infancy, and a lot will evolve and change in the coming years. However, ABSE 1.0 will give you plenty of rope to play with (and hang yourself as some would say) and give you a glimpse of the future.</p>
<p>Some people in the software engineering community are now saying that <a href="http://modeling-languages.com/blog/content/modeling-will-be-commonplace-three-years-time-notes-s-j-mellors-keynote">model-driven software development will be mainstream in three years</a> from now, and I am happy to be one of the visionaries that is working on that edge.</p>
<p>For now the ABSE website contains a lot of details about the methodology&#8217;s meta-metamodel, the Atom, and many application scenarios. I guess explaining a new philosophy to the crowds will require lots of tinkering with the message I want to pass on, so I&#8217;ll have to keep working on the site&#8217;s content improvement.</p>
<p>Also AtomWeaver is not far away. Participants in the Early Access Program will receive an alpha version in November, while a beta/CTP version is expected for January 2010.</p>
<p>The start of the coming decade will see a turning point in software engineering. I am happy to be contributing for that with ABSE and AtomWeaver.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/11/02/milestone-1-reached-showing-abse-to-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABSE Early Access Program started: Getting positive feedback!</title>
		<link>http://ruicurado.com/2009/10/08/abse-early-access-program-started-getting-positive-feedback/</link>
		<comments>http://ruicurado.com/2009/10/08/abse-early-access-program-started-getting-positive-feedback/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 23:25:21 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>
		<category><![CDATA[AtomWeaver]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=63</guid>
		<description><![CDATA[I&#8217;ve started the ABSE/AtomWeaver EA (Early Access) program a few days ago. This is a restricted group of people that I considered to be relevant to have an early look at ABSE and AtomWeaver. This group is composed of industry-recognized professionals, research people at big companies, but also independent professionals.
People on the Early Access Program [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started the ABSE/AtomWeaver EA (Early Access) program a few days ago. This is a restricted group of people that I considered to be relevant to have an early look at ABSE and AtomWeaver. This group is composed of industry-recognized professionals, research people at big companies, but also independent professionals.</p>
<p>People on the Early Access Program can have a first look at this new technology. In return I ask for some neutral feedback.</p>
<p>The first material to be available was a combined slide-style presentation of ABSE and AtomWeaver. The presentation gives a rather limited view of ABSE, and trying to understand ABSE through some slides is still a challenge at this point. However, feedback has been essentially positive, with some people having some doubts about its effectiveness due to their lack of understanding of ABSE&#8217;s mechanics.</p>
<p>Most feedback ranges from &#8220;promising&#8221; to &#8220;impressive&#8221;, which leaves me confident about ABSE&#8217;s official debut in Q1 2010. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/10/08/abse-early-access-program-started-getting-positive-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How ABSE came to be</title>
		<link>http://ruicurado.com/2009/07/29/how-abse-came-to-be/</link>
		<comments>http://ruicurado.com/2009/07/29/how-abse-came-to-be/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 13:41:20 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>
		<category><![CDATA[AtomWeaver]]></category>
		<category><![CDATA[MDSD]]></category>
		<category><![CDATA[Model-Driven]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=57</guid>
		<description><![CDATA[This is my historical note about ABSE, Atom-Based Software Engineering, and how a simple idea evolved into a new Model-Driven Software Development methodology.
I&#8217;ve been for years researching ways to develop software in a   way that I would be more productive, more  organized, more effective. After a first attempt in 2000-2001, and with [...]]]></description>
			<content:encoded><![CDATA[<p>This is my historical note about ABSE, Atom-Based Software Engineering, and how a simple idea evolved into a new Model-Driven Software Development methodology.</p>
<p>I&#8217;ve been for years researching ways to develop software in a   way that I would be more productive, more  organized, more effective. After a first attempt in 2000-2001, and with limited, isolated ideas for a couple of years, a &#8220;click&#8221; came around 2005 that took me on a trip to a new way of thinking about software   development.</p>
<p>I was thinking of a more declarative way to do things. I was thinking in not doing the same things over and over   again. I was thinking of transforming my development experience into an automated library. Essentially, I wanted to   duplicate myself. I wanted to have the work strength of a small team.</p>
<p>This was the initial rationale behind the development of ABSE. I wanted to have a model of my software project and   then, by the switch of some buttons, I would be able to change code, and this code would adjust itself to the   specification I ordered. And things could be specified at an unlimited higher- or lower-level. A project would be made   of some or millions of small things&#8230; and the ABSE Atom was born.</p>
<p>ABSE first evolved as CodeGen4, a simple string-substitution template-based system. Then I thought it would be much   powerful if each Atom could be a program in itself. This way the model could &#8220;think&#8221; according to the specification.   Cool! Many new things could now be done.</p>
<p>In January 2007 I started building an IDE that would help me fulfill this dream of mine. A few months later I   abandoned the IDE&#8217;s development and started again. But this time I wanted to do it right: The IDE should be built   using an ABSE model! But how? I didn&#8217;t have a tool to build an ABSE model&#8230; So I used Leo, a scriptable outline   editor. After many hours building scripts and auxiliary tools, I was able to develop AtomWeaver, an IDE that   implements ABSE, using ABSE!</p>
<p>I knew that many hours would be spent developing code and scripts that would be thrown to the electronic dumpster once   AtomWeaver would become usable. But software development is sometimes like that: you must give one step backward so   that you can give two steps forward.</p>
<p>ABSE and AtomWeaver are currently being polished to a point that they can be understood, used, supported, (and I hope)   loved by the community. The initial release is near. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/07/29/how-abse-came-to-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABSE is starting to see the light of day</title>
		<link>http://ruicurado.com/2009/06/18/abse-is-starting-to-see-the-light-of-day/</link>
		<comments>http://ruicurado.com/2009/06/18/abse-is-starting-to-see-the-light-of-day/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 11:40:02 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=50</guid>
		<description><![CDATA[In these last years, I have been actively working on a new Model-Driven Software Development technique.
I&#8217;ve started research on this subject around 2000. In 2006, I&#8217;ve finally developed a generic modeling methodology that I labelled ABSE (Atom-Based Software Engineering).
What could be the most curious aspect of ABSE is that it was developed isolated from the [...]]]></description>
			<content:encoded><![CDATA[<p>In these last years, I have been actively working on a new Model-Driven Software Development technique.</p>
<p>I&#8217;ve started research on this subject around 2000. In 2006, I&#8217;ve finally developed a generic modeling methodology that I labelled ABSE (Atom-Based Software Engineering).</p>
<p>What could be the most curious aspect of ABSE is that it was developed isolated from the global MDSD circles: I&#8217;ve learned about stuff like DSLs, DSM, DDD, Sofware Product Lines and Software Factories *after* I devised ABSE. So ABSE is probably unlike what you have seen so far in the MDSD scene (whether that is good or bad remains to be seen).</p>
<p>For now, ABSE has its home, at <a href="http://www.abse.info" target="_blank">www.abse.info</a>. Keep watching that space for new developments that will happen in the next months!</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/06/18/abse-is-starting-to-see-the-light-of-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developers suck at CSS design</title>
		<link>http://ruicurado.com/2009/04/28/developers-suck-at-css-design/</link>
		<comments>http://ruicurado.com/2009/04/28/developers-suck-at-css-design/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 10:13:13 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=44</guid>
		<description><![CDATA[At least that&#8217;s what Stefano Mazzocchi says (via Bob Walsh&#8217;s mISV Digest):
At the same time, I found the &#8220;960 Grid System&#8220;, a kind of &#8220;CSS Framework&#8221; that lets you easily create a homogeneous design through columns. It&#8217;s also good for prototyping.
The 960 Grid System is free to use, and may be adapted to meet your [...]]]></description>
			<content:encoded><![CDATA[<p>At least that&#8217;s what <a href="http://www.betaversion.org/~stefano/linotype/news/169/" target="_self">Stefano Mazzocchi</a> says (via Bob Walsh&#8217;s <a href="http://www.47hats.com/?p=1158" target="_blank">mISV Digest</a>):</p>
<p>At the same time, I found the &#8220;<a href="http://960.gs/" target="_self">960 Grid System</a>&#8220;<a rel="nofollow" href="http://960.gs/"></a>, a kind of &#8220;CSS Framework&#8221; that lets you easily create a homogeneous design through columns. It&#8217;s also good for prototyping.</p>
<p>The 960 Grid System is free to use, and may be adapted to meet your specific needs. Several projects have already spun off, including versions that were built to be <a href="http://www.designinfluences.com/fluid960gs/">fluid</a> and <a href="http://csswizardry.com/typogridphy/">elastic</a>.</p>
<p>Check out a <a title="Prototyping With The Grid 960 CSS Framework" href="http://nettuts.com/tutorials/html-css-techniques/prototyping-with-the-grid-960-css-framework/" target="_blank">tutorial of the 960 Grid System</a>, written by Adam Hawkins.</p>
<p>You can easily create a grid system using an online tool, at <a href="http://www.gridsystemgenerator.com/" target="_self">The Grid System Generator</a> where you can simulate some designs. The site itself was built upon the grid system and looks great!</p>
<p>It&#8217;s no match to a good designer, and to use this system you still need to apply some design work and some good taste, but for those that want a simple and good looking solution, I hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/04/28/developers-suck-at-css-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Towards Software Craftsmanship</title>
		<link>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/</link>
		<comments>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 10:16:22 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[The Developer's Mind]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=38</guid>
		<description><![CDATA[Software Craftsmanship is an alternative way of thinking about the activity of writing computer software and skill acquisition mechanisms. It is a growing movement amongst software developers dissatisfied by the mainstream software industry&#8217;s focus on the skill-level of the median programmer.
In December of 2008, a summit was held in Chicago that resulted in the drafting [...]]]></description>
			<content:encoded><![CDATA[<p>Software Craftsmanship is an alternative way of thinking about the activity of writing computer software and skill acquisition mechanisms. It is a growing movement amongst software developers dissatisfied by the mainstream software industry&#8217;s focus on the skill-level of the median programmer.</p>
<p>In December of 2008, a summit was held in Chicago that resulted in the drafting of the <a href="http://manifesto.softwarecraftsmanship.org/main">Software Craftsmanship Manifesto</a>:</p>
<blockquote><p><span style="color: #333399;">As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:</span></p>
<p><strong>- Not only working software, but also well-crafted software<br />
- Not only responding to change, but also steadily adding value<br />
- Not only individuals and interactions, but also a community of professionals<br />
- Not only customer collaboration,but also productive partnerships</strong></p>
<p>That is, in pursuit of the items on the left we have found the items on the right to be indispensable.</p>
<p><span style="color: #008000;">© 2009, the undersigned. this statement may be freely copied in any form, but only in its entirety through this notice.</span></p></blockquote>
<p>Although we are using code generation more and more, shifting some responsibilities away from the average developer, we still need to keep crap code at bay. When we upgrade to model-driven development, we switch to the trade of keeping crap models at bay. A Software Craftmanship orientation is here to stay and we should embrace it.</p>
<p>In-house code generators help implement a Software Craftsmanship initiative by enforcing the use of correct and tried-and-tested designs and patterns.</p>
<p>Read more about Software Craftsmanship (books @ Amazon):</p>
<p><a class="external text" title="http://www.amazon.com/gp/product/0596518382/ref=s9_subs_c1_s1_p14_t1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1Z0QNDTCZ19FXPJZ9BSK&amp;pf_rd_t=101&amp;pf_rd_p=470938131&amp;pf_rd_i=507846" rel="nofollow" href="http://www.amazon.com/gp/product/0596518382/ref=s9_subs_c1_s1_p14_t1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1Z0QNDTCZ19FXPJZ9BSK&amp;pf_rd_t=101&amp;pf_rd_p=470938131&amp;pf_rd_i=507846">Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman<br />
</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code: A Handbook of Agile Software Craftsmanship<br />
</a><a class="external text" title="http://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1236433152&amp;sr=8-1" rel="nofollow" href="http://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1236433152&amp;sr=8-1">Software Craftsmanship: The New Imperative</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"><br />
</a><a class="external text" title="http://www.amazon.com/Craftsman-Richard-Sennett/dp/0300119097" rel="nofollow" href="http://www.amazon.com/Craftsman-Richard-Sennett/dp/0300119097">The Craftsman</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"><br />
</a></p>
<p>I&#8217;ve just signed the manifesto. Did you?</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Asset Reuse: An introduction</title>
		<link>http://ruicurado.com/2009/02/07/software-asset-reuse-an-introduction/</link>
		<comments>http://ruicurado.com/2009/02/07/software-asset-reuse-an-introduction/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 18:45:46 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Software Asset Reuse]]></category>
		<category><![CDATA[Software Factories]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=35</guid>
		<description><![CDATA[Whatever the next software development breakthrough will be, it must be supported by strong asset reuse techniques.
Like any other engineering discipline, software engineering can gain a lot from a solid discipline of reuse. But unlike other engineering disciplines, software asset reuse does not come naturally in software engineering. When it does, it never comes without [...]]]></description>
			<content:encoded><![CDATA[<p>Whatever the next software development breakthrough will be, it must be supported by strong asset reuse techniques.</p>
<p>Like any other engineering discipline, software engineering can gain a lot from a solid discipline of reuse. But unlike other engineering disciplines, software asset reuse does not come naturally in software engineering. When it does, it never comes without costs and risks.</p>
<p><strong>Possible reusable asset categories:</strong><br />
- Requirements / Specifications<br />
- Documentation<br />
- Designs<br />
- Architectures<br />
- Source Code<br />
- Test Data<br />
- Executable Code</p>
<p>Software asset reuse starts by being a cultural thing. Managerial aspects play a critical role in it. Software asset reuse cannot happen without strong commitment from the managerial structure of the development organization.</p>
<p><strong>Reuse Libraries and DSM (Domain-Specific Modeling)</strong></p>
<p>We can consider two types of reuse libraries: Horizontal and Vertical.</p>
<p>An horizontal library augments the expressive power of the language without commiting to a specific application domain. It has the advantage of being useful across several projects, but it is limited to around 20% of the application&#8217;s total code.</p>
<p>A vertical library contains domain-specific components, and can reduce the amount of coding we need to produce by up to 65%. The drawback is that it can only be used within a single application domain, and hence potentially few projects</p>
<p>If we map these two types of libraries to the DSM paradign, we can say that an horizontal library lies on the solution domain, and a vertical library lies on the problem domain.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/02/07/software-asset-reuse-an-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are you fighting a problem for too long? The solution: Quit!</title>
		<link>http://ruicurado.com/2009/01/24/are-you-fighting-a-problem-for-too-long-the-solution-quit/</link>
		<comments>http://ruicurado.com/2009/01/24/are-you-fighting-a-problem-for-too-long-the-solution-quit/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 00:17:21 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[The Developer's Mind]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=32</guid>
		<description><![CDATA[I&#8217;m sure it happens to you. As much as you try to guess in advance all the problems you may find during development, you&#8217;ll end up fighting some problem for hours. You think it over and over again. And again. A solution is nowhere to be found.
It happened to me several (too many) times. Most [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure it happens to you. As much as you try to guess in advance all the problems you may find during development, you&#8217;ll end up fighting some problem for hours. You think it over and over again. And again. A solution is nowhere to be found.</p>
<p>It happened to me several (too many) times. Most of the time, after much fight, I end up reaching a solution. But on a few occasions, something startling happened: After quitting, usually because time ran out that day, I return the other day and find a solution in five minutes or less! And a simple one. &#8220;So easy!&#8230; Why didn&#8217;t I think of that yesterday????&#8221;</p>
<p>I start to wonder how much time I wasted by not quitting to fight the problem.</p>
<p>So from now on I decided to have a new approach to problem-solving: If it starts to take too long to solve, I move on to something else, and leave it for tomorrow or the other day. And I advise you to do the same. You&#8217;ll end up saving time.</p>
<p>The reason for this quite surprising effect lies on the fact that when we have a problem, we set a series of reasoning &#8220;paths&#8221; that, unfortunately, lead us to the same &#8220;solution candidates&#8221; over and over again. At a certain point, we cannot deviate from those paths anymore. We become stuck, or run in circles.</p>
<p>If we leave the problem behind for some time, we have the chance to rebuild those reasoning paths again, hopefully in new directions. But don&#8217;t leave it for too long. That&#8217;s because there is always important information you must retain to be able to solve the problem. The longer you leave it, the harder it gets to get started again.</p>
<p>Knowing when to quit helps you save time solving problems. Think about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/01/24/are-you-fighting-a-problem-for-too-long-the-solution-quit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
