<?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>Comment&#252;s on: 10 of the Biggest Platform Development Mistakes</title>
	<atom:link href="http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/feed/" rel="self" type="application/rss+xml" />
	<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/</link>
	<description>The Business of Technology</description>
	<pubDate>Fri, 05 Dec 2008 17:50:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Kaspersky Lab ofrece seguridad como servicio &#124; información Tecnológica</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-913594</link>
		<dc:creator>Kaspersky Lab ofrece seguridad como servicio &#124; información Tecnológica</dc:creator>
		<pubDate>Wed, 19 Nov 2008 11:27:25 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-913594</guid>
		<description>[...] 10 of the Biggest Platform Development Mistakes [...]</description>
		<content:encoded><![CDATA[<p>[...] 10 of the Biggest Platform Development Mistakes [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chirag Mehta</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-889586</link>
		<dc:creator>Chirag Mehta</dc:creator>
		<pubDate>Mon, 21 Jul 2008 16:30:50 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-889586</guid>
		<description>This could be a long comment and non-HTML format would strip the links out. I have captured my comments in a detailed post on my blog at:

http://cloudcomputing.blogspot.com/2008/07/saas-platform-design-and-architecture.html

I also took an opportunity to capture my strategic recommendations to SaaS vendors on some of the important topics that are typically excluded from the overall platform strategy:

http://cloudcomputing.blogspot.com/2008/07/saas-platform-pitfalls-and-strategy.html

My post copied as a comment below (without HTML):

I would argue that many of these mistakes are not specific to a SaaS 
platform but any platform. I agree with most of the mistakes and recommendations, however I have quite the opposite thoughts about the rest. 

1) Failing to design for rollback

"...you can only make one tweak to your current process, make it so that you can always roll back any code changes..."

This is a universal truth for any design decision for a platform irrespective of the delivery model, SaaS or on-premise. eBay makes it a good case study to understand the code change management process called "trains" that can track down code in a production system for a specific defect and can roll back only those changes. A philosophical mantra for the architects and developers would be not to make any decisions that are irreversible. Framing it positively prototype as fast as you can, fail early and often, and don't go for a big bang design that you cannot reverse. Eventually the cumulative efforts would lead you to a sound and sustainable design.

2) Confusing product release with product success

"...Do you have “release” parties? Don’t — you are sending your team the wrong message. A release has little to do with creating shareholder value..."

I would not go to the extreme of celebrating only customer success and not release milestones. Product development folks do work hard towards a release and a celebration is a sense of accomplishment and a motivational factor that has indirect shareholder value. I would instead suggest a cross-functional celebration. Invite the sales and marketing people to the release party. This helps create empathy for the people in the field that developers and architects never or rarely meet and this could also be an opportunity for the people in the field to mingle, discuss, and channel customer's perspective. Similarly include non-field people while celebrating field success. This helps developers, architects, and product managers understand their impact on the business and an opportunity to get to know who actually bought and started using their products.

5) Scaling through third parties

"....If you’re a hyper-growth SaaS site, you don’t want to be locked into a vendor for your future business viability..."

I would argue otherwise. A SaaS vendor or any other platform vendor should really focus on their core competencies and rely on third parties for everything that is non-core.

"Define how your platform scales through your efforts, not through the systems that a third-party vendor provides."

This is partially true. SaaS vendors do want to use Linux, Apache, or JBoss and still be able to describe the scalability of a platform in the context of these external components (that are open source in this case). The partial truth is you still can use the right components the wrong way and not scale. My recommendation to a platform vendor would be to be open and tell their customers why and how they are using the third party components and how it helps them (the vendor) to focus on their core and hence helps customers get the best out of their platform. A platform vendor should share the best practices and gather feedback from customers and peers to improve their own processes and platform and pass it on to third parties to improve their components.

6) Relying on QA to find your mistakes:

"QA is a risk mitigation function and it should be treated as such"

The QA function has always been underrated and misunderstood. QA's role extends way beyond risk mitigation. You can only fix defects that you can find and yes I agree that mathematically it is impossible to find all the defects. That's exactly why we need QA people. The smart and well-trained QA people think differently and find defects that developers would have never imagined. The QA people don't have any code affinity and selection bias and hence they can test for all kinds of conditions that otherwise would have been missed out. Though I do agree that the developers should put themselves in the shoes of the QA people and make sure that they rigorously test their code, run automated unit tests, and code coverage tools and not just rely on QA people to find defects.
8) Not taking into account the multiplicative effect of failure:

"Eliminate synchronous calls wherever possible and create fault-isolative architectures to help you identify problems quickly."

No synchronous calls and swimlane architecture are great concepts but a vendor should really focus on automated recovery and self-healing and not just failure detection. A failure detection could help vendor isolate a problem and help mitigate the overall impact of that failure on the system but for a competitive SaaS vendor that's not good enough. Lowering MTBF is certainly important but lowering MDT (Mean down time) is even more important. A vendor should design a platform based on some of the autonomic computing fundamentals.

10) Not having a business continuity/disaster recovery plan:

"Even worse is not having a disaster recovery plan, which outlines how you will restore your site in the event a disaster shuts down a critical piece of your infrastructure, such as your collocation facility or connectivity provider."

Having a disaster plan is like posting a sign by an elevator instructing people not to use it when there is a fire. Any disaster recovery plan is, well, just a plan unless it is regularly tested, evaluated, and refined. Fire drills and post-drill debriefs are a must-have.</description>
		<content:encoded><![CDATA[<p>This could be a long comment and non-HTML format would strip the links out. I have captured my comments in a detailed post on my blog at:</p>
<p><a href="http://cloudcomputing.blogspot.com/2008/07/saas-platform-design-and-architecture.html" rel="nofollow">http://cloudcomputing.blogspot.com/2008/07/saas-platform-design-and-architecture.html</a></p>
<p>I also took an opportunity to capture my strategic recommendations to SaaS vendors on some of the important topics that are typically excluded from the overall platform strategy:</p>
<p><a href="http://cloudcomputing.blogspot.com/2008/07/saas-platform-pitfalls-and-strategy.html" rel="nofollow">http://cloudcomputing.blogspot.com/2008/07/saas-platform-pitfalls-and-strategy.html</a></p>
<p>My post copied as a comment below (without HTML):</p>
<p>I would argue that many of these mistakes are not specific to a SaaS<br />
platform but any platform. I agree with most of the mistakes and recommendations, however I have quite the opposite thoughts about the rest. </p>
<p>1) Failing to design for rollback</p>
<p>&#8220;&#8230;you can only make one tweak to your current process, make it so that you can always roll back any code changes&#8230;&#8221;</p>
<p>This is a universal truth for any design decision for a platform irrespective of the delivery model, SaaS or on-premise. eBay makes it a good case study to understand the code change management process called &#8220;trains&#8221; that can track down code in a production system for a specific defect and can roll back only those changes. A philosophical mantra for the architects and developers would be not to make any decisions that are irreversible. Framing it positively prototype as fast as you can, fail early and often, and don&#8217;t go for a big bang design that you cannot reverse. Eventually the cumulative efforts would lead you to a sound and sustainable design.</p>
<p>2) Confusing product release with product success</p>
<p>&#8220;&#8230;Do you have “release” parties? Don’t — you are sending your team the wrong message. A release has little to do with creating shareholder value&#8230;&#8221;</p>
<p>I would not go to the extreme of celebrating only customer success and not release milestones. Product development folks do work hard towards a release and a celebration is a sense of accomplishment and a motivational factor that has indirect shareholder value. I would instead suggest a cross-functional celebration. Invite the sales and marketing people to the release party. This helps create empathy for the people in the field that developers and architects never or rarely meet and this could also be an opportunity for the people in the field to mingle, discuss, and channel customer&#8217;s perspective. Similarly include non-field people while celebrating field success. This helps developers, architects, and product managers understand their impact on the business and an opportunity to get to know who actually bought and started using their products.</p>
<p>5) Scaling through third parties</p>
<p>&#8220;&#8230;.If you’re a hyper-growth SaaS site, you don’t want to be locked into a vendor for your future business viability&#8230;&#8221;</p>
<p>I would argue otherwise. A SaaS vendor or any other platform vendor should really focus on their core competencies and rely on third parties for everything that is non-core.</p>
<p>&#8220;Define how your platform scales through your efforts, not through the systems that a third-party vendor provides.&#8221;</p>
<p>This is partially true. SaaS vendors do want to use Linux, Apache, or JBoss and still be able to describe the scalability of a platform in the context of these external components (that are open source in this case). The partial truth is you still can use the right components the wrong way and not scale. My recommendation to a platform vendor would be to be open and tell their customers why and how they are using the third party components and how it helps them (the vendor) to focus on their core and hence helps customers get the best out of their platform. A platform vendor should share the best practices and gather feedback from customers and peers to improve their own processes and platform and pass it on to third parties to improve their components.</p>
<p>6) Relying on QA to find your mistakes:</p>
<p>&#8220;QA is a risk mitigation function and it should be treated as such&#8221;</p>
<p>The QA function has always been underrated and misunderstood. QA&#8217;s role extends way beyond risk mitigation. You can only fix defects that you can find and yes I agree that mathematically it is impossible to find all the defects. That&#8217;s exactly why we need QA people. The smart and well-trained QA people think differently and find defects that developers would have never imagined. The QA people don&#8217;t have any code affinity and selection bias and hence they can test for all kinds of conditions that otherwise would have been missed out. Though I do agree that the developers should put themselves in the shoes of the QA people and make sure that they rigorously test their code, run automated unit tests, and code coverage tools and not just rely on QA people to find defects.<br />
8) Not taking into account the multiplicative effect of failure:</p>
<p>&#8220;Eliminate synchronous calls wherever possible and create fault-isolative architectures to help you identify problems quickly.&#8221;</p>
<p>No synchronous calls and swimlane architecture are great concepts but a vendor should really focus on automated recovery and self-healing and not just failure detection. A failure detection could help vendor isolate a problem and help mitigate the overall impact of that failure on the system but for a competitive SaaS vendor that&#8217;s not good enough. Lowering MTBF is certainly important but lowering MDT (Mean down time) is even more important. A vendor should design a platform based on some of the autonomic computing fundamentals.</p>
<p>10) Not having a business continuity/disaster recovery plan:</p>
<p>&#8220;Even worse is not having a disaster recovery plan, which outlines how you will restore your site in the event a disaster shuts down a critical piece of your infrastructure, such as your collocation facility or connectivity provider.&#8221;</p>
<p>Having a disaster plan is like posting a sign by an elevator instructing people not to use it when there is a fire. Any disaster recovery plan is, well, just a plan unless it is regularly tested, evaluated, and refined. Fire drills and post-drill debriefs are a must-have.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gordon Rivers</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-887431</link>
		<dc:creator>Gordon Rivers</dc:creator>
		<pubDate>Mon, 07 Jul 2008 23:17:32 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-887431</guid>
		<description>I agree with a couple of the other comments

This is consultant speak designed to hook you in but not really saying much thats not regular common sense regardless of industry .. 
I have nothing to do with the business but these issues look like what I help my clients with all the time.   

A launch party is important but make sure individual contribution is recognized also. 

Hire a consultant that has more depth ,, all these things are easy to say BUT implementation in real world is the issue... and a hired helper WILL NOT solve your problems if culture and individual contributors are not in line with company goals. Get he right team and let em go</description>
		<content:encoded><![CDATA[<p>I agree with a couple of the other comments</p>
<p>This is consultant speak designed to hook you in but not really saying much thats not regular common sense regardless of industry ..<br />
I have nothing to do with the business but these issues look like what I help my clients with all the time.   </p>
<p>A launch party is important but make sure individual contribution is recognized also. </p>
<p>Hire a consultant that has more depth ,, all these things are easy to say BUT implementation in real world is the issue&#8230; and a hired helper WILL NOT solve your problems if culture and individual contributors are not in line with company goals. Get he right team and let em go</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob Ngu</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886952</link>
		<dc:creator>Bob Ngu</dc:creator>
		<pubDate>Thu, 03 Jul 2008 22:26:55 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886952</guid>
		<description>Absolutely agree with the other people that it is just as important to have release parties for the aforementioned reasons. An unmotivated or low morale engineering team will be death of the company.</description>
		<content:encoded><![CDATA[<p>Absolutely agree with the other people that it is just as important to have release parties for the aforementioned reasons. An unmotivated or low morale engineering team will be death of the company.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Campbell</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886923</link>
		<dc:creator>Jeremy Campbell</dc:creator>
		<pubDate>Thu, 03 Jul 2008 19:55:10 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886923</guid>
		<description>Loved the list, I think also it's important to keep your development platform as dynamic as possible because as we all know there are always going to be changes, and tweaks desired in the future. 

Very important: Build a core platform around a problem you're trying to solve, and through user feedback build most of the future developements according to what the community wants. This is the direction my company is taking on our next project. 

It's too bad Twitter doesn't listen to their community to have a more valuable service, and one that doesn't go down all the time. FriendFeed certainly is, and they are doing a great job allowing people to really connect through meaningful conversations.</description>
		<content:encoded><![CDATA[<p>Loved the list, I think also it&#8217;s important to keep your development platform as dynamic as possible because as we all know there are always going to be changes, and tweaks desired in the future. </p>
<p>Very important: Build a core platform around a problem you&#8217;re trying to solve, and through user feedback build most of the future developements according to what the community wants. This is the direction my company is taking on our next project. </p>
<p>It&#8217;s too bad Twitter doesn&#8217;t listen to their community to have a more valuable service, and one that doesn&#8217;t go down all the time. FriendFeed certainly is, and they are doing a great job allowing people to really connect through meaningful conversations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Burgeoning Openly Owned Web &#187; links for 2008-07-03</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886765</link>
		<dc:creator>The Burgeoning Openly Owned Web &#187; links for 2008-07-03</dc:creator>
		<pubDate>Thu, 03 Jul 2008 01:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886765</guid>
		<description>[...] 10 of the Biggest Platform Development Mistakes - GigaOM Considerations to digest when setting out to reify something abstract (tags: architecture advice opinion platform) [...]</description>
		<content:encoded><![CDATA[<p>[...] 10 of the Biggest Platform Development Mistakes - GigaOM Considerations to digest when setting out to reify something abstract (tags: architecture advice opinion platform) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Isaacs</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886542</link>
		<dc:creator>Greg Isaacs</dc:creator>
		<pubDate>Tue, 01 Jul 2008 15:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886542</guid>
		<description>I would also include another point (#11) that platforms should be built with external developers in mind (ie make your platform open). It is very easy to only think of how a platform will solve your current problems and not consider how a thriving developer community can help shape success in the future.</description>
		<content:encoded><![CDATA[<p>I would also include another point (#11) that platforms should be built with external developers in mind (ie make your platform open). It is very easy to only think of how a platform will solve your current problems and not consider how a thriving developer community can help shape success in the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Ammerman</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886529</link>
		<dc:creator>Chris Ammerman</dc:creator>
		<pubDate>Tue, 01 Jul 2008 14:20:33 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886529</guid>
		<description>Have to agree with the couple others who are supporting release parties.  If you tell your developers that release is not an important milestone for the business and that "signups", which are sales-driven, are all that matters, you are going to absolutely destroy your developers' morale.

My response to such talk, as a developer, would be one of three things:
1) If I am ambitious and self-confident, find a new job ASAP.
2) If I am passive and self-confident, throw it back in management's face next time they are demanding unpaid overtime to meet a release date, pointing out how "release is not an important milestone for the business".
3) If I am passive and not self-confident, reduce the effort I put into my work on a daily basis, to make up for the unrewarded, unrecognized stress and effort that goes into a product near release.

A release party doesn't need to be sanctioned by the CEO, and shared by the whole company.  But it is important for the developers to blow off some stress and get recognition, at least by their immediate managers, for the blood, sweat, and tears it took to get the product shipped.

Conversely, if the product ships according to spec, and it still flops, that is almost NEVER the DEVELOPERS' fault.  They followed a plan, a bad plan.  And the creators and custodians of the bad plan are the ones who should be flogged.</description>
		<content:encoded><![CDATA[<p>Have to agree with the couple others who are supporting release parties.  If you tell your developers that release is not an important milestone for the business and that &#8220;signups&#8221;, which are sales-driven, are all that matters, you are going to absolutely destroy your developers&#8217; morale.</p>
<p>My response to such talk, as a developer, would be one of three things:<br />
1) If I am ambitious and self-confident, find a new job ASAP.<br />
2) If I am passive and self-confident, throw it back in management&#8217;s face next time they are demanding unpaid overtime to meet a release date, pointing out how &#8220;release is not an important milestone for the business&#8221;.<br />
3) If I am passive and not self-confident, reduce the effort I put into my work on a daily basis, to make up for the unrewarded, unrecognized stress and effort that goes into a product near release.</p>
<p>A release party doesn&#8217;t need to be sanctioned by the CEO, and shared by the whole company.  But it is important for the developers to blow off some stress and get recognition, at least by their immediate managers, for the blood, sweat, and tears it took to get the product shipped.</p>
<p>Conversely, if the product ships according to spec, and it still flops, that is almost NEVER the DEVELOPERS&#8217; fault.  They followed a plan, a bad plan.  And the creators and custodians of the bad plan are the ones who should be flogged.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dennis</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886502</link>
		<dc:creator>Dennis</dc:creator>
		<pubDate>Tue, 01 Jul 2008 09:59:45 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886502</guid>
		<description>I'm glad others have pointed out the importance of release parties. The time approaching the release is the hardest time on your developer and verification teams, and they have likely ungodly hours to deliver the goods. Release parties are unquestionably an excellent idea, and a great way to reward that work. 

If you want to exclude the marketeers and sales guys then do but I doubt they thank you for that!</description>
		<content:encoded><![CDATA[<p>I&#8217;m glad others have pointed out the importance of release parties. The time approaching the release is the hardest time on your developer and verification teams, and they have likely ungodly hours to deliver the goods. Release parties are unquestionably an excellent idea, and a great way to reward that work. </p>
<p>If you want to exclude the marketeers and sales guys then do but I doubt they thank you for that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mukul Kumar</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886482</link>
		<dc:creator>Mukul Kumar</dc:creator>
		<pubDate>Tue, 01 Jul 2008 07:04:45 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886482</guid>
		<description>About "Failing to design for rollback: If you’re developing a SaaS platform and you can only make one tweak to your current process, make it so that you can always roll back any code changes."

This is easier said than done. Designing rollback and an 'idempotent state machine' is one of the difficult problems that any designer can face. The amount of code that is written with rollback enabled would probably be at least 2x the size of code that you would write without rollback.

I am not saying we should not do rollback, it's just that you need to keep the extra time and effort in mind while designing rollback.

Thanks,
 Mukul.</description>
		<content:encoded><![CDATA[<p>About &#8220;Failing to design for rollback: If you’re developing a SaaS platform and you can only make one tweak to your current process, make it so that you can always roll back any code changes.&#8221;</p>
<p>This is easier said than done. Designing rollback and an &#8216;idempotent state machine&#8217; is one of the difficult problems that any designer can face. The amount of code that is written with rollback enabled would probably be at least 2x the size of code that you would write without rollback.</p>
<p>I am not saying we should not do rollback, it&#8217;s just that you need to keep the extra time and effort in mind while designing rollback.</p>
<p>Thanks,<br />
 Mukul.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Rogers</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886474</link>
		<dc:creator>Glenn Rogers</dc:creator>
		<pubDate>Tue, 01 Jul 2008 05:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886474</guid>
		<description>::[ Allowing history to repeat itself ]::

This one needs a lot more attention in the industry.  Of all the company I've worked for over the years as a programming contractor I've never been in a planning meeting that discussed past project mistakes and how to avoid them or about successes and how to repeat them.</description>
		<content:encoded><![CDATA[<p>::[ Allowing history to repeat itself ]::</p>
<p>This one needs a lot more attention in the industry.  Of all the company I&#8217;ve worked for over the years as a programming contractor I&#8217;ve never been in a planning meeting that discussed past project mistakes and how to avoid them or about successes and how to repeat them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886469</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Tue, 01 Jul 2008 04:49:36 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886469</guid>
		<description>Here at Zynaptics we have one more to add:

Always make sure that an error message can be traced back to the offending code and data.  You have to include this functionality in your error handling and user messaging.

How many times have you have received a bug report that had some vague description:  I was importing the file and got a "Object cannot be null"?

When you look at the import routine you have 5000 lines of code and the user was importing 250,000 records.

Much better to get this error: "App Error: Object cannot be null.  PriceCalcFunction on record #45514".  Imagine how much time you'll save finding and fixing the issue.  This benefits the users and the development team.

Finally, when you take this approach it tells people we take bugs seriously so test them out before you deliver code.</description>
		<content:encoded><![CDATA[<p>Here at Zynaptics we have one more to add:</p>
<p>Always make sure that an error message can be traced back to the offending code and data.  You have to include this functionality in your error handling and user messaging.</p>
<p>How many times have you have received a bug report that had some vague description:  I was importing the file and got a &#8220;Object cannot be null&#8221;?</p>
<p>When you look at the import routine you have 5000 lines of code and the user was importing 250,000 records.</p>
<p>Much better to get this error: &#8220;App Error: Object cannot be null.  PriceCalcFunction on record #45514&#8243;.  Imagine how much time you&#8217;ll save finding and fixing the issue.  This benefits the users and the development team.</p>
<p>Finally, when you take this approach it tells people we take bugs seriously so test them out before you deliver code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SixSigns Blog &#187; About Razuna - Open Source Digital Asset Management (DAM) / Open Source Media Asset Management (MAM), Roozani - Organize your information and collaborate with your friends, Open BlueDragon, ColdFusion and Oracle consulting</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886430</link>
		<dc:creator>SixSigns Blog &#187; About Razuna - Open Source Digital Asset Management (DAM) / Open Source Media Asset Management (MAM), Roozani - Organize your information and collaborate with your friends, Open BlueDragon, ColdFusion and Oracle consulting</dc:creator>
		<pubDate>Mon, 30 Jun 2008 21:39:53 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886430</guid>
		<description>[...] Platform Development Mistakes 06.30.08 (5 seconds ago) &#124; No Comments   Over at the Gigaom Blog the people from AKF Consulting have published a list of the 10 biggest platform development [...]</description>
		<content:encoded><![CDATA[<p>[...] Platform Development Mistakes 06.30.08 (5 seconds ago) | No Comments   Over at the Gigaom Blog the people from AKF Consulting have published a list of the 10 biggest platform development [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886427</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Mon, 30 Jun 2008 21:27:16 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886427</guid>
		<description>Looks like a pretty good list to me, and specific enough to help make both tactical and strategic decisions (which undermines charges of 'consultant-speak').

As for separating the engineering mission from the company mission, well, I'd say this is paving the road to ruin.  There is only one mission.

Can't disagree with the argument that you have to solve some problems completely with 1.0 or it ain't worth dreaming about 3.0.</description>
		<content:encoded><![CDATA[<p>Looks like a pretty good list to me, and specific enough to help make both tactical and strategic decisions (which undermines charges of &#8216;consultant-speak&#8217;).</p>
<p>As for separating the engineering mission from the company mission, well, I&#8217;d say this is paving the road to ruin.  There is only one mission.</p>
<p>Can&#8217;t disagree with the argument that you have to solve some problems completely with 1.0 or it ain&#8217;t worth dreaming about 3.0.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886420</link>
		<dc:creator>Jeffrey</dc:creator>
		<pubDate>Mon, 30 Jun 2008 20:32:44 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886420</guid>
		<description>Definitely seeing the consultant-speak here as well.

Launch parties are a way to reward the engineering organization for a job well done. Success in the marketplace is something that happens after a launch and is largely out of the control of the engineering organization. If you want to make your hard-working software developers feel even more beat down, throwing parties to commemorate the successes of the sales and marketing organizations sounds like a terrific way to do it.</description>
		<content:encoded><![CDATA[<p>Definitely seeing the consultant-speak here as well.</p>
<p>Launch parties are a way to reward the engineering organization for a job well done. Success in the marketplace is something that happens after a launch and is largely out of the control of the engineering organization. If you want to make your hard-working software developers feel even more beat down, throwing parties to commemorate the successes of the sales and marketing organizations sounds like a terrific way to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raanan Avidor</title>
		<link>http://gigaom.com/2008/06/30/10-of-the-biggest-platform-development-mistakes/#comment-886418</link>
		<dc:creator>Raanan Avidor</dc:creator>
		<pubDate>Mon, 30 Jun 2008 20:12:29 +0000</pubDate>
		<guid isPermaLink="false">http://gigaom.com/?p=13980#comment-886418</guid>
		<description>* You should do "release" parties AND "product success" parties. Reaching a release is a big step for RnD, QA and the whole company, you can't just say it is not important, they ARE important milestones that should be celebrated.

* Relying on QA to find your mistakes is a big mistake. QA is there only to find out the bugs that the development cycle missed and maybe have a more holistic approach to the product that development a lot of the time lose due to the development process.</description>
		<content:encoded><![CDATA[<p>* You should do &#8220;release&#8221; parties AND &#8220;product success&#8221; parties. Reaching a release is a big step for RnD, QA and the whole company, you can&#8217;t just say it is not important, they ARE important milestones that should be celebrated.</p>
<p>* Relying on QA to find your mistakes is a big mistake. QA is there only to find out the bugs that the development cycle missed and maybe have a more holistic approach to the product that development a lot of the time lose due to the development process.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
