<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Tip to become a successful software engineer.</title>
	<atom:link href="http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/</link>
	<description></description>
	<lastBuildDate>Tue, 21 May 2013 00:49:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: EdwardHaley</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-650</link>
		<dc:creator>EdwardHaley</dc:creator>
		<pubDate>Thu, 16 May 2013 09:01:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-650</guid>
		<description>Being skilled about the several sorts of development tools has aided me do well as a software developer. and this is because of my interest towards software development as it is a wonderful business venture currently</description>
		<content:encoded><![CDATA[<p>Being skilled about the several sorts of development tools has aided me do well as a software developer. and this is because of my interest towards software development as it is a wonderful business venture currently</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: erichexter</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-620</link>
		<dc:creator>erichexter</dc:creator>
		<pubDate>Sat, 23 Feb 2013 22:25:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-620</guid>
		<description>I am not sure I am following what you disagree with.</description>
		<content:encoded><![CDATA[<p>I am not sure I am following what you disagree with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sudhakar Chaudhary</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-619</link>
		<dc:creator>Sudhakar Chaudhary</dc:creator>
		<pubDate>Sat, 23 Feb 2013 19:41:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-619</guid>
		<description>Yes, You are right. Many Time When I&#039;m trying to solve a problem it&#039;s take too much time, After that  In Free Time When  Thinking About the Problem , laughing on Me because The Problem is very Simple. But In Case of Experience I think U r Wrong. </description>
		<content:encoded><![CDATA[<p>Yes, You are right. Many Time When I&#8217;m trying to solve a problem it&#8217;s take too much time, After that  In Free Time When  Thinking About the Problem , laughing on Me because The Problem is very Simple. But In Case of Experience I think U r Wrong. </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hacker</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-605</link>
		<dc:creator>hacker</dc:creator>
		<pubDate>Mon, 04 Feb 2013 11:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-605</guid>
		<description>right </description>
		<content:encoded><![CDATA[<p>right </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Taofeeklasisi</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-601</link>
		<dc:creator>Taofeeklasisi</dc:creator>
		<pubDate>Fri, 01 Feb 2013 13:55:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-601</guid>
		<description>I agree with you. The danger in rushing to code is having to throw away much, if not all, of it. I just completed a school management app. When I started, I even thought I had thought enough but I learned that it&#039;s not correct because I didn&#039;t think about the app but about some codes. DB design, DAL, etc. Then WHAM! New features couldn&#039;t be contained in the fragile design. It&#039;s a lesson for life. &#039;Good Thinking. Good Product&#039; - Toyota. Nothing can be &#039;truer&#039; than that.</description>
		<content:encoded><![CDATA[<p>I agree with you. The danger in rushing to code is having to throw away much, if not all, of it. I just completed a school management app. When I started, I even thought I had thought enough but I learned that it&#8217;s not correct because I didn&#8217;t think about the app but about some codes. DB design, DAL, etc. Then WHAM! New features couldn&#8217;t be contained in the fragile design. It&#8217;s a lesson for life. &#8216;Good Thinking. Good Product&#8217; &#8211; Toyota. Nothing can be &#8216;truer&#8217; than that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 20yearDev</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-599</link>
		<dc:creator>20yearDev</dc:creator>
		<pubDate>Thu, 31 Jan 2013 16:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-599</guid>
		<description>Well, said.  We are paid to think and our knowledge is what provides our value to the organizations we work for.  I would add that I consider Visio to be one of the most important tools I use.  If I can&#039;t flowchart the logic of a workflow then I can&#039;t code that logic either.</description>
		<content:encoded><![CDATA[<p>Well, said.  We are paid to think and our knowledge is what provides our value to the organizations we work for.  I would add that I consider Visio to be one of the most important tools I use.  If I can&#8217;t flowchart the logic of a workflow then I can&#8217;t code that logic either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Notredam509</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-598</link>
		<dc:creator>Notredam509</dc:creator>
		<pubDate>Wed, 30 Jan 2013 23:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-598</guid>
		<description>If you can still remember what your code is for and the ins and outs after 30 years revisiting your work, you are a good software folk.</description>
		<content:encoded><![CDATA[<p>If you can still remember what your code is for and the ins and outs after 30 years revisiting your work, you are a good software folk.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Sutton</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-596</link>
		<dc:creator>Dan Sutton</dc:creator>
		<pubDate>Wed, 30 Jan 2013 17:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-596</guid>
		<description>Yeah - it&#039;s a good way to do it. In practice, if you ride everyone else and really use your brain as a programmer when you&#039;re doing my method, optimizing everything as you go (because end users never know what they really want), then both methods essentially end up being the same: you end up with something very efficient. 


Of course, with my method, you get to be a dictator for a couple of days, and that&#039;s always fun! Once you&#039;re done with it, you can put it into some electronic form, or use a real use-case modeling tool if you happen to like that sort of thing (which I don&#039;t).

I&#039;ve also seen my method resolve long-standing disputes between various departments, simply because by the end of it they&#039;re all so pumped up and invested in the model that there&#039;s no room for difference of opinion any more!</description>
		<content:encoded><![CDATA[<p>Yeah &#8211; it&#8217;s a good way to do it. In practice, if you ride everyone else and really use your brain as a programmer when you&#8217;re doing my method, optimizing everything as you go (because end users never know what they really want), then both methods essentially end up being the same: you end up with something very efficient. </p>
<p>Of course, with my method, you get to be a dictator for a couple of days, and that&#8217;s always fun! Once you&#8217;re done with it, you can put it into some electronic form, or use a real use-case modeling tool if you happen to like that sort of thing (which I don&#8217;t).</p>
<p>I&#8217;ve also seen my method resolve long-standing disputes between various departments, simply because by the end of it they&#8217;re all so pumped up and invested in the model that there&#8217;s no room for difference of opinion any more!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Florin Jurcovici</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-595</link>
		<dc:creator>Florin Jurcovici</dc:creator>
		<pubDate>Wed, 30 Jan 2013 07:58:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-595</guid>
		<description>The fact that leadership lacks experience or insight very rarely prevents leadership from thinking they always know best, IME. And when their opinions and those of the people they manage become too different, they stop listening.
</description>
		<content:encoded><![CDATA[<p>The fact that leadership lacks experience or insight very rarely prevents leadership from thinking they always know best, IME. And when their opinions and those of the people they manage become too different, they stop listening.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Florin Jurcovici</title>
		<link>http://lostechies.com/erichexter/2013/01/27/tip-to-become-a-successful-software-engineer/#comment-594</link>
		<dc:creator>Florin Jurcovici</dc:creator>
		<pubDate>Wed, 30 Jan 2013 07:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://lostechies.com/erichexter/?p=379#comment-594</guid>
		<description>For some reason, your comment reminds me of a nice quote from Henry Ford: &quot;If I had asked people what they want, they would have said faster horses.&quot;

Your basic assumption is that the solution model and the domain model will mostly be very much alike - you can&#039;t expect non-programmers to build up a model of notions they don&#039;t know about. That&#039;s only the case for a particular type of problems - mostly LOB apps, IME. Even there you usually have at least a small part in each app which has no relation to the domain model, and is strictly implementation specific. This part never emerges naturally if you just try to replicate the domain model.

My approach is a bit different - but also has limited applicability for non-LOB apps. Get all relevant stakeholders into the same room, and get each of them to describe the operations he wants to perform, in terms of the problem domain. Start building use cases as simple lists of steps, and start the people correlate all use cases, in order to discover discrepancies, gaps and other problems. Iteratively improve the use cases until you get a coherent description of the business process using domain language. This might take a while, and usually cannot be finished in just one long meeting. You may continue the process, once started, via shared documents on google docs, via email, via enterprise-internal collaboration systems, whatever. After this is done, you have what you need to develop the system without much additional input from the end users - you have the essential requirements in a coherent form. What you&#039;ll build may not be the perfect system from the very first version, but since you definitely would have captured the essential aspects of the business process, even if changes will be required, they will be easily implementable - unless some of the involved people had held back on what they actually wanted the system to do, but that&#039;s your job when gathering the requirements, to make sure this doesn&#039;t happen. And your solution design and implementation can go ahead without the need of further involvement of non-programmers, which makes things go faster and leads to a better solution, IME.

This doesn&#039;t contradict an iterative, agile approach to development, accompanied by frequent deliveries. It&#039;s just a technique to gather requirements efficiently, so that you have all essential information early on. With agile methods or not, IME the most frequent cause of problems or right-out failure of software projects is bad requirements gathering, which cause significant rework later on, so that budget and deadline are significantly overrun. Getting the essential requirements right early on minimizes this risk, and is IMO the most important aspect of an entire project. You may build a sub-optimal application which does the right thing, and still have a happy customer, whereas even if you build a perfect application, your customer will be unhappy if it doesn&#039;t do what it&#039;s supposed to.
</description>
		<content:encoded><![CDATA[<p>For some reason, your comment reminds me of a nice quote from Henry Ford: &#8220;If I had asked people what they want, they would have said faster horses.&#8221;</p>
<p>Your basic assumption is that the solution model and the domain model will mostly be very much alike &#8211; you can&#8217;t expect non-programmers to build up a model of notions they don&#8217;t know about. That&#8217;s only the case for a particular type of problems &#8211; mostly LOB apps, IME. Even there you usually have at least a small part in each app which has no relation to the domain model, and is strictly implementation specific. This part never emerges naturally if you just try to replicate the domain model.</p>
<p>My approach is a bit different &#8211; but also has limited applicability for non-LOB apps. Get all relevant stakeholders into the same room, and get each of them to describe the operations he wants to perform, in terms of the problem domain. Start building use cases as simple lists of steps, and start the people correlate all use cases, in order to discover discrepancies, gaps and other problems. Iteratively improve the use cases until you get a coherent description of the business process using domain language. This might take a while, and usually cannot be finished in just one long meeting. You may continue the process, once started, via shared documents on google docs, via email, via enterprise-internal collaboration systems, whatever. After this is done, you have what you need to develop the system without much additional input from the end users &#8211; you have the essential requirements in a coherent form. What you&#8217;ll build may not be the perfect system from the very first version, but since you definitely would have captured the essential aspects of the business process, even if changes will be required, they will be easily implementable &#8211; unless some of the involved people had held back on what they actually wanted the system to do, but that&#8217;s your job when gathering the requirements, to make sure this doesn&#8217;t happen. And your solution design and implementation can go ahead without the need of further involvement of non-programmers, which makes things go faster and leads to a better solution, IME.</p>
<p>This doesn&#8217;t contradict an iterative, agile approach to development, accompanied by frequent deliveries. It&#8217;s just a technique to gather requirements efficiently, so that you have all essential information early on. With agile methods or not, IME the most frequent cause of problems or right-out failure of software projects is bad requirements gathering, which cause significant rework later on, so that budget and deadline are significantly overrun. Getting the essential requirements right early on minimizes this risk, and is IMO the most important aspect of an entire project. You may build a sub-optimal application which does the right thing, and still have a happy customer, whereas even if you build a perfect application, your customer will be unhappy if it doesn&#8217;t do what it&#8217;s supposed to.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
