{"id":3961,"date":"2011-06-21T05:29:34","date_gmt":"2011-06-21T05:29:34","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2011\/06\/21\/the-importance-of-feedback-in-software-development\/"},"modified":"2021-07-09T10:21:08","modified_gmt":"2021-07-09T17:21:08","slug":"the-importance-of-feedback-in-software-development","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/the-importance-of-feedback-in-software-development\/","title":{"rendered":"The Importance of Feedback in Software Development"},"content":{"rendered":"<p>If you follow my blog, you know that I talk a lot about collaboration and the impact it has on the success or failure of modern software projects.\u00a0 In a recent <a href=\"http:\/\/blogs.msdn.com\/b\/bharry\/archive\/2011\/06\/14\/agile-project-management-in-visual-studio-alm-v-next.aspx\">post on Agile Project Management<\/a>, I closed with a brief mention about feedback loops being a major initiative for us in our next release.\u00a0 Here I want to expand on that a bit.<\/p>\n<p>Let\u2019s look at the <a href=\"http:\/\/www.agilemanifesto.org\/\">Agile Manifesto<\/a>:<\/p>\n<blockquote>\n<h2>Individuals and interactions over processes and tools<\/h2>\n<h2>Working software over comprehensive documentation<\/h2>\n<h2>Customer collaboration over contract negotiation<\/h2>\n<h2>Responding to change over following a plan<\/h2>\n<\/blockquote>\n<p>I would argue that every one of these mantras has a component of feedback to them and that iteration and the feedback that iteration enables and drives is fundamental to the Agile conviction.\u00a0 If you look more deeply into the <a href=\"http:\/\/www.agilemanifesto.org\/principles.html\">12 principles of Agile software<\/a>, you\u2019ll see the role of feedback there too.\u00a0 Feedback helps you clarify your understanding.\u00a0 Feedback helps you see things in new ways.\u00a0 Feedback helps you correct your course.\u00a0 Feedback helps you learn.\u00a0 Feedback makes you and your work better.\u00a0 Whether you follow specific Agile practices or not, feedback early and often is a critical component of being more successful.<\/p>\n<p>There are countless ways in which we\u2019ve enabled feedback deeply in our V.Next work.\u00a0 As we were planning the release and we really started to narrow in on what our core mission in this release would be, it became clear that a lot of the ideas we were discussing had feedback as a core principle.\u00a0 We latched onto that, drove that as a common principle and worked to make the whole greater than the sum of the parts.\u00a0 We\u2019ve enabled feedback in many forms.\u00a0 There\u2019s even more we could yet do but what we\u2019ve got lined up so far is pretty exciting.<\/p>\n<p>During this process we\u2019ve evolved a graphical way to talk about the feedback cycles in a good software development process.\u00a0 This is clearly an evolution of the Scrum cycle which expands to include stake holders.\u00a0 We\u2019ve also got a version that includes a feedback cycle for operations for the longer term application lifecycle.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0257.image_thumb_02F038E9.png\"><img decoding=\"async\" class=\"alignnone wp-image-15560 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0257.image_thumb_02F038E9.png\" alt=\"Image 0257 image thumb 02F038E9\" width=\"644\" height=\"327\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0257.image_thumb_02F038E9.png 644w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0257.image_thumb_02F038E9-300x152.png 300w\" sizes=\"(max-width: 644px) 100vw, 644px\" \/><\/a><\/p>\n<p>That captures much of the structure of feedback and some of the activities but I think it\u2019s also important to think about what kind of feedback you want.\u00a0 In our next release we\u2019ve focused on optimizing the following kinds of feedback workflows:<\/p>\n<p><strong>Feedback on Priorities<\/strong> \u2013 Am I building the most important capabilities that you want?\u00a0 Am I doing it in the right order?\u00a0 If I don\u2019t get to everything you want, have I delivered enough of the critical capabilities that the solution is useful to you and I can continue to iterate?\u00a0 This is all about making sure that the stakeholders and team are aligned on how the work will be organized and what capabilities (user stories, if you will) will be delivered.\u00a0 Our solution for this in V.Next is the Agile Project Management solution I described in my <a href=\"http:\/\/blogs.msdn.com\/b\/bharry\/archive\/2011\/06\/14\/agile-project-management-in-visual-studio-alm-v-next.aspx\">previous post<\/a>.\u00a0 It provides a web based view of the planned work and progress, easily accessible by everyone with roll up from fine detail to coarse scenarios.\u00a0 It is easy to adjust and experiment with.\u00a0 It really makes a conversation about priorities easy.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2235.image_thumb_00D33A20.png\"><img decoding=\"async\" class=\"alignnone wp-image-15559 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2235.image_thumb_00D33A20.png\" alt=\"Image 2235 image thumb 00D33A20\" width=\"604\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2235.image_thumb_00D33A20.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2235.image_thumb_00D33A20-300x240.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p><strong>Feedback on Design<\/strong> \u2013 Does the software deliver the capability you need?\u00a0 Have I properly captured the requirements?\u00a0 Is it going to be easy enough for the customer to use?\u00a0 If I haven\u2019t understood what you wanted and translated that into a design that will meet your needs, then the best developers in the world aren\u2019t going to succeed.\u00a0 I sometimes ask development teams \u201cHave you every built what the customer asked for and not what they wanted?\u201d\u00a0 I usually get a lot of people nodding vigorously.\u00a0 It\u2019s a symptom of a problem where poor communication \u2013 both in the inability to conceptualize and communicate the requirements and in the diligence to validate the proposed solution.\u00a0 It is said that a picture is worth 1,000 words.\u00a0 In our next release, we are releasing a storyboarding tool to enable the development team to work together more easily with stakeholders to ensure that before they go build a user story\/scenario, they\u2019d had a high fidelity conversation about what the user experience is going to be and how the scenario is going to work.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/7610.image_thumb_36F4B26F.png\"><img decoding=\"async\" class=\"alignnone wp-image-15558 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/7610.image_thumb_36F4B26F.png\" alt=\"Image 7610 image thumb 36F4B26F\" width=\"404\" height=\"324\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/7610.image_thumb_36F4B26F.png 404w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/7610.image_thumb_36F4B26F-300x241.png 300w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0576.image_thumb_3FB494EE.png\"><img decoding=\"async\" class=\"alignnone wp-image-15557 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0576.image_thumb_3FB494EE.png\" alt=\"Image 0576 image thumb 3FB494EE\" width=\"404\" height=\"307\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0576.image_thumb_3FB494EE.png 404w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0576.image_thumb_3FB494EE-300x228.png 300w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<p><strong>Feedback on Working Software<\/strong> \u2013 Does the software actually do what I think we said it would?\u00a0 Now that I see it in action, is the solution actually going to work?\u00a0 I can\u2019t tell you how many times I\u2019ve built something that I thought was going to be great only to sit down and use it and realize it actually didn\u2019t mesh well with my workflow.\u00a0 Back to the drawing board (or storyboard :)) for another round of design.\u00a0 There\u2019s nothing like actually sitting down and using the software to get a feel for whether or not it is \u201cgood\u201d.\u00a0 This is one of the biggest cultural changes in teams adopting Agile practices and yet, one of the most important changes.\u00a0 To make sure you are building the right thing, you MUST build it in reasonably small consumable increments and solicit feedback early and often.\u00a0 It will save you countless weeks of wasted work developing down a path that ultimately turns out to have been a dead end that you could have avoided much earlier simply by asking \u201cWhat do you think of what I have so far?\u201d.\u00a0 To help with this we\u2019ve build a number of things in V.Next but the most significant of them is what we call the \u201cFeedback tool.\u201d\u00a0 The Feedback tool and associated workflow enables a product owner\/business analyst\/dev lead to easily solicit feedback on a specific set of user stories\/requirements on a recent build of the software.\u00a0 The stakeholder can easily review the user stories and the associated storyboards.\u00a0 They can explore the software, capture screen shots, and comment on what they see.\u00a0 They can optionally capture video, audio, etc. and easily bookmark them to draw attention to areas where they have feedback.\u00a0 All of this is captured in a feedback work item that the product owner can use to make any necessary plan updates.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0675.image_thumb_2176B16D.png\"><img decoding=\"async\" class=\"alignnone wp-image-15556 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0675.image_thumb_2176B16D.png\" alt=\"Image 0675 image thumb 2176B16D\" width=\"604\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0675.image_thumb_2176B16D.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/0675.image_thumb_2176B16D-300x240.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p><strong>Feedback on Code<\/strong> \u2013 While the first 3 of these are primarily focused in enabling stakeholder collaboration, let\u2019s not forget that collaboration between developers is important too.\u00a0 Code reviews are becoming a more and more popular way to enable feedback among developers.\u00a0 They can provide:<\/p>\n<ol>\n<li>A fresh set of eyes to make sure you didn\u2019t miss anything.<\/li>\n<li>A good way to stay up to date on changes happening in a body of code.<\/li>\n<li>A good way to learn a code base and understand why changes are being made.<\/li>\n<\/ol>\n<p>In our next release, we are enabling both a good and flexible code review work flow and a great code review experience.\u00a0 It will provide a great way for developers to learn from each other and get better by the day.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2248.image_thumb_7BDD0E3E.png\"><img decoding=\"async\" class=\"alignnone wp-image-15555 size-full\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2248.image_thumb_7BDD0E3E.png\" alt=\"Image 2248 image thumb 7BDD0E3E\" width=\"604\" height=\"429\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2248.image_thumb_7BDD0E3E.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2011\/06\/2248.image_thumb_7BDD0E3E-300x213.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<h3>Conclusion<\/h3>\n<p>Getting feedback early and often is a critical component of your success.\u00a0 If requires organizing your work in a way that you can get feedback, being transparent so people can see what to give feedback on and incorporating that feedback into your work and getting continually better.\u00a0 By increasing the role of iteration and feedback in your development process, you can build better software and make happier customers.\u00a0 I think the features we\u2019re building in our next release can help you with this a great deal.\u00a0 And this is just the beginning.\u00a0 We\u2019ve got a bunch more ideas for how we can increase the richness and the reach of feedback cycles and you can expect to see us continue to invest.<\/p>\n<p>Brian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you follow my blog, you know that I talk a lot about collaboration and the impact it has on the success or failure of modern software projects.\u00a0 In a recent post on Agile Project Management, I closed with a brief mention about feedback loops being a major initiative for us in our next release.\u00a0 [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[5,4],"class_list":["post-3961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-tfs","tag-visual-studio"],"acf":[],"blog_post_summary":"<p>If you follow my blog, you know that I talk a lot about collaboration and the impact it has on the success or failure of modern software projects.\u00a0 In a recent post on Agile Project Management, I closed with a brief mention about feedback loops being a major initiative for us in our next release.\u00a0 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/3961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=3961"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/3961\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=3961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=3961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=3961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}