{"id":30944,"date":"2020-11-17T07:31:19","date_gmt":"2020-11-17T12:31:19","guid":{"rendered":"https:\/\/centricconsulting.com\/?p=30944"},"modified":"2024-01-19T14:22:26","modified_gmt":"2024-01-19T19:22:26","slug":"three-reasons-being-comfortable-with-code-helps-you-deliver-better-value","status":"publish","type":"post","link":"https:\/\/centricconsulting.com\/blog\/three-reasons-being-comfortable-with-code-helps-you-deliver-better-value\/","title":{"rendered":"Three Reasons Being Comfortable With Code Helps You Deliver Better Value"},"content":{"rendered":"

While not every member of your software delivery team needs to be an expert in code, each team member should be proficient in the basics. The ability to follow development, ask questions and do better testing helps you deliver better value.<\/h2>\n
\n

I\u2019m a firm believer that every member of a software delivery<\/a> team should be comfortable enough with software code to sit down and have a discussion with a developer or tester. I don\u2019t mean that every program manager, business analyst or tester should be able to write multi-threaded JSONified RESTful web services backed by NOSQL web-scale sharded databases served by ActiveRecord data access layers. I wrote that, and I don\u2019t have the slightest clue what I said.<\/p>\n

Non-developers on a team shouldn\u2019t feel they\u2019re required to pair program or write code for delivery, but they should feel comfortable sitting down to discuss the work underway or upcoming.<\/strong><\/p>\n

Getting everyone on the delivery team to be at ease discussing code can have tremendous benefits for the overall value of the system they\u2019re delivering. Reaching this comfort level doesn\u2019t require years of experience — it just takes a willingness to sit down and practice a bit. It also takes a supportive environment where the learner can ask basic questions and start helpful conversations.<\/p>\n

Recently, I had the opportunity to present an all-day workshop for TestBash Netherlands 2020, an online conference hosted by the amazing people at the Ministry of Testing<\/a>. I adapted my workshop, \u201cCoding for Non-Coders,\u201d from a Ministry of Testing online course of the same name. I based the class or workshop on a few decades\u2019 experience helping teams get better at collaboration by helping everyone have better conversations around how the software works.<\/strong><\/p>\n

I want to talk about what I shared with the workshop attendees, so let\u2019s look at three reasons being comfortable with code helps your team deliver better value.<\/p>\n

1. It Provides a Better Understanding of Architecture<\/h2>\n

As you build a system, its architecture needs to evolve. Simultaneously, you need a general plan on critical aspects such as how data flows or how to handle errors and exceptions.<\/p>\n

Understanding error and exception handling can be a massive help to productive conversations around features and user stories. I\u2019ve often found truth tables and acceptance criteria start in a far better spot when the business analysts<\/a> and testers have a clear grip on this part of development. For example, \u201cIf we have an invalid input for the number of hours worked, then the payroll module will bubble up an exception, and we\u2019ll see this error message at this web service endpoint. The UI, in turn, will catch that and display this sanitized message on the field itself.\u201d<\/p>\n

2. You\u2019ll Cut Complexity<\/h2>\n

Complexity kills software. Time and time again, we make our code and systems far more complex than necessary. Methods get far too long, IF statements get nested in numerous levels, multiple input parameters get thrown into method signatures, and so on. While these sorts of things are fairly technical, they\u2019re also visually apparent to a curious, non-coding partner sitting down with a developer.<\/p>\n

They can ask a simple question that will dramatically turn around the direction of a block of code, thereby improving quality.<\/strong> For example, \u201cThis method is getting long. You\u2019ve told me before we generally limit blocks of code to 20 or 30 lines max. Do we need to rethink this?\u201d<\/p>\n

3. You\u2019ll Improve Testability<\/h2>\n

Being comfortable reading and understanding the basics of code means team members can more easily identify areas to focus on for testing. Using tools like test automation coverage reports can help people doing testing activities drill down into parts of the codebase that might not be covered. Just as importantly, those same team members can see what does not need testing\u2014a critical piece to avoiding wasted, duplicated effort.<\/strong><\/p>\n

Test code is far simpler than most system code. Generally speaking, there\u2019s no multi-threading, complex algorithms or advanced programming structures such as lambdas. This means newcomers to coding can get comfortable with the fundamentals of writing clear, readable code while following patterns for maintaining simplicity.<\/p>\n

This offers great opportunities to write automated tests across the system at the unit, API or end-to-end level. Moreover, those newcomers should be pairing up with others to help their learning effectiveness.<\/p>\n

Ultimately, You\u2019ll Boost Your Value<\/h2>\n

\u201cBut, I\u2019m not technical enough to code!\u201d I\u2019ve heard this many times through the years, and it\u2019s rarely the case. Many \u201cnon-coding\u201d team members understand a bit about how databases work and can write some SQL — that\u2019s technical. Many team members have at least rudimentary ideas of how data flows between layers of a system — that\u2019s technical.<\/strong><\/p>\n

Helping your team build a basic competency and comfort with reading and discussing software code, perhaps occasionally helping to write some, can dramatically improve your team’s value as a whole. It\u2019s worth investing a bit of time in providing training for yourself and your team to support each other and your clients better.<\/p>\n","protected":false},"excerpt":{"rendered":"

While not every member of your software delivery team needs to be an expert in code, each team member should be proficient in the basics.<\/p>\n","protected":false},"author":63,"featured_media":30945,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_oasis_is_in_workflow":0,"_oasis_original":0,"_oasis_task_priority":"","_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","footnotes":""},"categories":[1],"tags":[18560],"coauthors":[15012],"acf":[],"publishpress_future_action":{"enabled":false,"date":"2024-07-21 22:26:38","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"category"},"_links":{"self":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts\/30944"}],"collection":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/comments?post=30944"}],"version-history":[{"count":1,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts\/30944\/revisions"}],"predecessor-version":[{"id":49821,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts\/30944\/revisions\/49821"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/media\/30945"}],"wp:attachment":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/media?parent=30944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/categories?post=30944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/tags?post=30944"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/coauthors?post=30944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}