{"id":2623,"date":"2008-06-02T10:03:00","date_gmt":"2008-06-02T10:03:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/pfxteam\/2008\/06\/02\/on-achieving-perfection-or-why-we-love-your-feedback-and-why-you-can-love-giving-it\/"},"modified":"2008-06-02T10:03:00","modified_gmt":"2008-06-02T10:03:00","slug":"on-achieving-perfection-or-why-we-love-your-feedback-and-why-you-can-love-giving-it","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/on-achieving-perfection-or-why-we-love-your-feedback-and-why-you-can-love-giving-it\/","title":{"rendered":"On Achieving Perfection \u2013or\u2013 Why We Love Your Feedback (and Why You Can Love Giving It)"},"content":{"rendered":"<p class=\"MsoNormal\"><span><font size=\"3\">&ldquo;Perfection is reached not <strong><span>when<\/span><\/strong><b> <\/b><strong><span>there<\/span><\/strong><b>&rsquo;<\/b><strong><span>s<\/span><\/strong><b> <\/b><strong><span>nothing<\/span><\/strong><b> <\/b><strong><span>left<\/span><\/strong><b> <\/b><strong><span>to<\/span><\/strong><b> <\/b><strong><span>add<\/span><\/strong>, but when there&rsquo;s nothing left to remove.&rdquo; &#8211; Antoine de St. Exupery<\/p>\n<p><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font size=\"3\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Your feedback on Community Technology Previews is invaluable to us in the pursuit this lean perfect solution.&nbsp; Working on a first version technology (a &ldquo;v1&rdquo;) is both a thrilling experience and an exercise in restraint. &nbsp;It is so easy for us to see opportunities &ndash; oh, if we added this property here, this method there, this special case in this function, we&rsquo;d make things so much easier to achieve a few scenarios here and there which may or may not be common.&nbsp; It requires a lot of control to do this with an API.&nbsp; Everything that we add to an API creates a number of drawbacks to the consumer of the API, which include:<\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">1)<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\"><b>A morass<\/b> &ndash; More features leads to more API and documentation to wade through to find what you really need, <\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">2)<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\"><b>Complexity begets chaos<\/b> &ndash; the more complexity to the system, the more likely that things will not interact as you intended, since there are so many things to interact together<\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">3)<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\"><b>Tension between quality, schedule, perf and features<\/b> &#8211; there is no way that we can add functionality without adding more work that detracts from other parts of the project or the schedule, and <\/font><\/font><\/p>\n<p class=\"MsoListParagraph\"><span><span><font face=\"Calibri\" size=\"3\">4)<\/font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><font size=\"3\"><font face=\"Calibri\"><b>Instant legacy<\/b> &#8211; stuff that most of you don&rsquo;t need in this release, but we need to pay the cost in supporting in future releases on the off chance that a solution or more out there depends on it, causing us to have to make trade-offs on quality and schedule for-(pretty much)-ever.<\/font><\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">I&rsquo;m sure that you can think of more drawbacks now that we&rsquo;re down this path.&nbsp; <\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><b><font size=\"3\"><font face=\"Calibri\">But We Don&rsquo;t Want to Miss Anything Important, Either<\/p>\n<p><\/font><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">On the other hand, we want to ensure that Parallel Extensions to the .NET Framework does have everything that is needed to get the job done.&nbsp; Internally, we spend as much time as we can &ldquo;dogfooding&rdquo; or using our own technologies (ref: dogfood company reps tasting their wares before stocking shelves).&nbsp; But we miss things.&nbsp; It&rsquo;s hard to both build the technology and build every real world application imaginable.&nbsp; Simply put, we do not know your specific needs, so please tell us.&nbsp; If we miss something key, let us know.&nbsp; And the more people who let us know, the more information we have to make a good decision on it.&nbsp; <\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">We cannot and should not act directly on every piece of feedback (as stated above), but we want to act on the right stuff.&nbsp; <\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><b><font size=\"3\"><font face=\"Calibri\">What Feedback Helps?<\/p>\n<p><\/font><\/font><\/b><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">In short, all of it.&nbsp; Even if you cuss us out, we learn from that; though, we prefer sweeter delivery vehicles.<\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">These are the types of feedback that really, really help:<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Please let us know where we completely miss the mark, so that we can change course if appropriate.<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Please let us know what you use so that we don&rsquo;t remove it.<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Please let us know what you don&rsquo;t use, so that we can consider removing it.<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Please let us know what you want, but we don&rsquo;t have so that we can consider adding it.<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">Please let us know what you (will) do with our tech, so that we can design specifically for that.<\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p>\n<\/p>\n<p class=\"MsoNormal\"><font face=\"Calibri\" size=\"3\">This is why we release CTPs and why we ask for your help.&nbsp; And we use it, we&rsquo;re greedy for it.&nbsp; In the end, you&rsquo;re presented with a better technology to meet your needs.&nbsp; It is easy to see why we do this.&nbsp; The cycle is virtuous.&nbsp; Your feedback helps us help you help us help you&hellip;<\/font><\/p>\n<p class=\"MsoNormal\">\n<p><font face=\"Calibri\" size=\"3\">&nbsp;<\/font><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&ldquo;Perfection is reached not when there&rsquo;s nothing left to add, but when there&rsquo;s nothing left to remove.&rdquo; &#8211; Antoine de St. Exupery &nbsp; Your feedback on Community Technology Previews is invaluable to us in the pursuit this lean perfect solution.&nbsp; Working on a first version technology (a &ldquo;v1&rdquo;) is both a thrilling experience and an [&hellip;]<\/p>\n","protected":false},"author":478,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7908],"tags":[],"class_list":["post-2623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pfxteam"],"acf":[],"blog_post_summary":"<p>&ldquo;Perfection is reached not when there&rsquo;s nothing left to add, but when there&rsquo;s nothing left to remove.&rdquo; &#8211; Antoine de St. Exupery &nbsp; Your feedback on Community Technology Previews is invaluable to us in the pursuit this lean perfect solution.&nbsp; Working on a first version technology (a &ldquo;v1&rdquo;) is both a thrilling experience and an [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/2623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/478"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=2623"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/2623\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=2623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=2623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=2623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}