We have been doing Agile for over 10 years now and we have been focusing on people, interactions, team building, the ecosystem. As a result, we are now working in a software environment where “processes are more important than technical practices”. This is how Sandro Mancusso started his keynote at ITAKE Unconference 2013, a talk that was very appreciated by the audience. You can watch the video or continue reading its summary.
Agile in Software Development is as much about programmers and technical practices as it is about processes. The real deliverable is the working software built with well-crafted code. “Software crafters care about delivering value with well-crafted code”.Even more, for them Software Craft means putting responsability, professionalism, pragmatism and pride back into software development.
Well-crafted code
Most of us consider this impossible to have. Why? Because we are always developing software under pressure. But are we sure we can’t overcome this hurdle? We can, if we write well-crafted code. Technical debt and bad code will always increase the time spent per feature. This increase is less noticeable in Agile because stories get sliced into smaller ones.
Early feedback
Agile talks about getting constant feedback. The problem is that we are considering only the customer feedback. But what if it comes late? What if it comes after we have wasted time implementing the wrong stuff? How can we find out early that we are building the right thing in the right way? We need faster feedback. How to get it? XP technical practices are known to help developers with that. You can get early feedback:
from the client regarding the acceptance tests written before starting implementation on a feature
from unit tests that the code is doing what is supposed to do
from the acceptance tests that you have finished implementing the feature
from all automated tests that no regression bugs have been entered
from code review that the design is good
from pair programming that the collaboration in the team is good
from continuous integration that the deployment scripts are working
Professional programmers
Agile talks a lot about Scrum Masters and Product Owners. But what about the programmers?
They need to be happy to be productive. When are they happy? By learning new techniques and practicing them. But how to learn new techniques, if they are always working under pressure?
There’s an underneath assumption that they need separate time and planning for learning and improving their technical skills. This assumption is wrong. Step by step, programmers can learn new technical skills by practicing while implementing new features from the product backlog. The client or the manager does not care about how the code is written, they care about working software delivered without bugs. Customers or managers are not forbidding the use of unit tests, TDD, automated tests or design patterns.
The programmer is the owner of the code and the owner of his career. She is in charge with creating well-crafted code. She has to choose to use the technical practices that help her write good quality code. Continuous improving and learning leads her to professionalism.
Software Craft
…“is the movement that promotes the idea of adding value to software development through practices. It’s about leading by example and showing how we can be better. It’s about continuously delivering value and avoid writing bad code.”
Are you a software crafter? Do you want to be? Watch Sandro Mancuso’s video from last year and don’t miss him this year also at I T.A.K.E. Unconference!
The title is self explanatory, and technical debt can be a serious point of consideration for IT development companies if they decide to survive in the market for longer durations and still churn out profits through successfully completed projects. Feedback-oriented-development can be a great thing for IT companies but what if the product definition keeps on changing continuously with changing market conditions? How can technical debt be calculated if a project is successfully completed and released at one stage, and subsequently it starts losing its importance and worth simply because over time the end user requirements change? A highly successful project may incur technical debt if it phases out over the years owing to the emergence of new platforms and IDEs. How should technical debt be ideally interpreted? With respect to the development carried out in the project or in accordance to the sustainability of the project over the years?
Comments are closed.
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"1","is_scroll_to_top":"1","is_header_footer_builder_active":"1","responsive_cart_click":"flyout","is_dark_palette":"","revealEffectEnable":"","ajax_url":"https://mozaicworks.com/wp-admin/admin-ajax.php","infinite_count":"2","infinite_total":"0","pagination":"infinite","infinite_scroll_event":"scroll","no_more_post_message":"No more posts to show.","grid_layout":{"desktop":"3","tablet":1,"mobile":1},"site_url":"https://mozaicworks.com","blogArchiveTitleLayout":"","blogArchiveTitleOn":"","show_comments":"Show Comments","enableHistoryPushState":"1","masonryEnabled":"","blogMasonryBreakPoint":"0","shop_infinite_count":"2","shop_infinite_total":"0","shop_total_products":"1","shop_pagination":"number","shop_infinite_scroll_event":"scroll","shop_no_more_post_message":"No more products to show.","shop_result_count_format":"Showing 1\u2013{count} of {total} results","checkout_prev_text":"Back to my details","checkout_next_text":"Proceed to payment","shop_quick_view_enable":"disabled","shop_quick_view_stick_cart":"","shop_quick_view_auto_height":"1","woo_cart_empty_featured_product":"","single_product_qty_ajax_nonce":"1cdfb511b5","quick_view_nonce":"ab3dc1ae09","single_product_ajax_add_to_cart":"1","is_cart":"","is_single_product":"","view_cart":"View cart","cart_url":"https://mozaicworks.com/cart","checkout_url":"https://mozaicworks.com/checkout","add_to_cart_options_single":"rt_add_to_cart","is_astra_pro":"1","shopRevealEffectEnable":""};
//# sourceURL=astra-theme-js-js-extra
document.addEventListener( 'wpcf7submit', e => turnstile.reset() );
//# sourceURL=cloudflare-turnstile-js-after
var astraAddon = {"is_elementor_active":"","sticky_active":"1","svgIconClose":"\u003Cspan class=\"ast-icon icon-close\"\u003E\u003C/span\u003E","hf_account_show_menu_on":"hover","hf_account_action_type":"link","hf_account_logout_action":"link","header_main_stick":"1","header_above_stick":"","header_below_stick":"","stick_header_meta":"","header_main_stick_meta":"","header_above_stick_meta":"","header_below_stick_meta":"","sticky_header_on_devices":"both","sticky_header_style":"none","sticky_hide_on_scroll":"1","break_point":"921","tablet_break_point":"768","mobile_break_point":"544","header_main_shrink":"1","header_animation_effect":"none","header_logo_width":"","responsive_header_logo_width":{"desktop":200,"tablet":"","mobile":150},"stick_origin_position":"","site_layout":"ast-full-width-layout","site_content_width":"1070","site_layout_padded_width":"1200","site_layout_box_width":"1024","header_builder_active":"1","component_limit":"10","single_product_sticky_product_image":"","single_product_sticky_product_image_top_offset":"0","cart_sticky_cart_totals":"","order_review_toggle_texts":{"toggle_show_text":"Show Order Summary","toggle_hide_text":"Hide Order Summary"},"check_user_exist_nonce":"7bd89c34fc","woocommerce_login_nonce":"e768342842","is_logged_in":"","user_validation_msgs":{"error_msg":"Entered user detail is not a valid.","success_msg":"This user is already registered. Please enter the password to continue."},"checkout_order_review_sticky":"","cartflows_version":"","is_registration_required":"1","is_complete_package":"1","is_header_builder_active":"1"};
//# sourceURL=astra-addon-js-js-extra
var xoo_wsc_params = {"adminurl":"https://mozaicworks.com/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","qtyUpdateDelay":"500","notificationTime":"5000","html":{"successNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-success\"\u003E\u003Cspan class=\"xoo-wsc-icon-check_circle\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E","errorNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-error\"\u003E\u003Cspan class=\"xoo-wsc-icon-cross\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E"},"strings":{"maxQtyError":"Only %s% in stock","stepQtyError":"Quantity can only be purchased in multiple of %s%","calculateCheckout":"Please use checkout form to calculate shipping","couponEmpty":"Please enter promo code"},"nonces":{"update_shipping_method_nonce":"8266eb37f1"},"isCheckout":"","isCart":"","sliderAutoClose":"1","shippingEnabled":"","couponsEnabled":"1","autoOpenCart":"yes","addedToCart":"","ajaxAddToCart":"yes","showBasket":"always_show","flyToCart":"yes","flyToCartTime":"1500","productFlyClass":"","refreshCart":"no","fetchDelay":"200"};
//# sourceURL=xoo-wsc-main-js-js-extra
var complianz = {"prefix":"cmplz_","debug":"","user_banner_id":"1","set_cookies":[],"block_ajax_content":"0","banner_version":"22","version":"7.5.2","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https://mozaicworks.com/wp-json/complianz/v1/","locale":"lang=en&locale=en_US","set_cookies_on_root":"0","cookie_domain":"","current_policy_id":"26","cookie_path":"/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https://mozaicworks.com/wp-content/uploads/complianz/css/banner-{banner_id}-{type}.css?v=22","page_links":{"eu":{"cookie-statement":{"title":"Cookie Policy ","url":"https://mozaicworks.com/cookie-policy-eu"},"privacy-statement":{"title":"Terms And Conditions","url":"https://mozaicworks.com/terms-and-conditions"},"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"us":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"uk":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"ca":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"au":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"za":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}},"br":{"impressum":{"title":"Private: Contact Old","url":"https://mozaicworks.com/?page_id=12523"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content","iapi_nav":"fallback"};
//# sourceURL=cmplz-cookiebanner-js-extra
The title is self explanatory, and technical debt can be a serious point of consideration for IT development companies if they decide to survive in the market for longer durations and still churn out profits through successfully completed projects. Feedback-oriented-development can be a great thing for IT companies but what if the product definition keeps on changing continuously with changing market conditions? How can technical debt be calculated if a project is successfully completed and released at one stage, and subsequently it starts losing its importance and worth simply because over time the end user requirements change? A highly successful project may incur technical debt if it phases out over the years owing to the emergence of new platforms and IDEs. How should technical debt be ideally interpreted? With respect to the development carried out in the project or in accordance to the sustainability of the project over the years?