tag:blogger.com,1999:blog-7949175992597493967.post7777984573926464678..comments2023-09-28T07:19:58.501-07:00Comments on Computer James - A Space for All Things .NET: How to: Design and Develop an Application to Ensure its QualityJamesHiphttp://www.blogger.com/profile/12895611676412133978noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-7949175992597493967.post-83977134073055866812009-08-26T22:53:25.388-07:002009-08-26T22:53:25.388-07:00Comment by Rick, on 21-MAY-2009 13:05 ( IP: 203.2...Comment by Rick, on 21-MAY-2009 13:05 ( IP: 203.217.70.251 , user id: ) <br /><br />Having worked alongside real engineers (at Transpower btw) at a formative stage in my early career I can say that there _is_ a difference between the mindset of an engineer and the mindset of most developers.<br /><br /><br /><br />However, the software developer can adopt the mindset of an engineer, and it will improve the quality of their code. This is a good thing because it means fewer bugs, which means fewer hours spent in debugging (etc).<br /><br /><br /><br />Adopting the engineering mindset:<br /><br />(1) More planning<br /><br />(2) More design<br /><br />(3) No implicit trust of the code<br /><br /><br /><br />Because of that last one, it is also sometimes referred to with the pithy catch phrase "Paranoid Programming". In other words, most developers believe that their code is 100% correct (if I had a dollar for every time a developer ha told me "it can't be doing that" after I've shown them some bug in their executing code... well, lets just say that there'd be less of an economic crisis!). And because they believe that, it comes back to bite them later on. <br /><br /><br /><br />Whereas the paranoid programmer will torture his code to make it give up its secrets. He will also think more about strange error conditions (what should we do if the Database disappears, what if the network connection goes down, what if the user gets halfway through and then wants to quit) and spend time putting in "unnecessary" error handling code. As a consequence, the engineers software will be enormously more robust than that of the developer.<br /><br /><br /><br />The developer's mindset can be summarized thus: "she'll be right mate".<br /><br /><br /><br />The engineer's mindset can be summarized as a response to that: "no it most certainly will not".<br /><br /><br /><br />The funny thing is that it sounds like the engineer will take a lot longer to deliver the first version than the developer because of all the 'extra effort', but in practice I have found the opposite to be true. And even if the developer did by some miracle 'finish' first, they'd be sent back to fix serious bugs after even a modest kicking of the tires by someone else.<br /><br /><br /><br />When I did Comp Sci they talked about a bug in released software being 10x more expensive to fix than a bug in pre release software, bugs in the design stage being 10x cheaper to fix than once you've started writing code etc.<br /><br /><br /><br />So the engineer will know that ~an hour spent on planning and design will save himself ~a day of development time later on.<br /><br /><br /><br />The only exception I have found to this rule is when "fools rush in where Angel's fear to tread". If the situation is so bad that the engineer doesn't even know where to begin.JamesHiphttps://www.blogger.com/profile/12895611676412133978noreply@blogger.comtag:blogger.com,1999:blog-7949175992597493967.post-57212364044750042742009-08-26T22:53:06.820-07:002009-08-26T22:53:06.820-07:00Author's note by JamesHip, on 18-MAY-2009 09:0...Author's note by JamesHip, on 18-MAY-2009 09:02 ( IP: 146.171.254.66 , user id: 29914) <br /><br />Hi Matt,<br /><br />Yes, I think I remember you. You were top-right (from my perspective) and balanced the MacBook Pro user on my top-left!<br /><br />Thanks very much for your kind words. They are much appreciated.<br /><br />I fully recommend you to join the Wellingto Dot Net User Group association. Check out Kirk Jackson's Page of Words blog (http://pageofwords.com/blog/) as Kirk runs the group. Ask to get added to his distribution List, it's worth it. My presentation is precisely the kind of thing the group does each Wednesday fortnight. In addition, there is a Wellington Code Camp coming up in Porirua in June 13-14. Sign up here: http://codecamp.dot.net.nz/. Tell all your friends. <br /><br /><br />--------------------------------------------------------------------------------JamesHiphttps://www.blogger.com/profile/12895611676412133978noreply@blogger.comtag:blogger.com,1999:blog-7949175992597493967.post-91704907764720784702009-08-26T22:52:42.271-07:002009-08-26T22:52:42.271-07:00Comment by Matt, on 16-MAY-2009 02:31 ( IP: 118.9...Comment by Matt, on 16-MAY-2009 02:31 ( IP: 118.90.5.191 , user id: ) <br /><br />Hi James,<br /><br /><br /><br />I was one of the students (right at the back with the Dell laptop if you have one of those photographic memories) that was there for your session, and I really enjoyed it. It's always good to hear from people in the industry as well as learning the theory and applying that theory - one thing I've found with the courses I've done is that they're a little outdated and very 'rigid' in what they teach (you could compare the Uni to the old waterfall model, and the real world to something more 'Agile' I guess).<br /><br /><br /><br />Having worked as both a project manager and developer (and often both at once on the same project...) I could definitely see bits of what you were talking about during your talk coming up in my work time and again - so it was definitely relevant to me.<br /><br /><br /><br />Thanks for taking the time out - even if you did get the time paid and a bottle of wine! :P - to come and give us a real-world slant on what we're studying for.<br /><br /><br /><br />Would certainly be keen to talk more about .NET development sometime as it's something I'm trying to learn (outside of Uni), but haven't had much time to get started at all yet :)<br /><br /><br /><br />Cheers and thanks again on behalf of all of us,<br /><br />Matt.JamesHiphttps://www.blogger.com/profile/12895611676412133978noreply@blogger.com