Defining Technical Debt With George Fairbanks


What is technical debt?

In this episode of Cocktails, we explore the definition and talk about how technical debt is anchored on our own thought processes, and how software architecture has evolved along with our development philosophies. We also dig into some great stories, analogies, and advice on how we can deal with and clean up our own technical debt.

How to Master Your Software Engineering Journey, Part 2

Software engineering is one of the most talked-about and sought-after career paths in the current world.

During my journey as a software engineer, I have worked with some wonderful people, the latest technologies, and great projects. As I reflect on my humble beginnings and the gradual progression to my current role as an engineering manager, I wish I knew some key aspects of the craft of software engineering back then.

Have Maturity Models Become Irrelevant?

What Is It About?

Maturity models are based on consistent, systematic, linear-scale assessments and representations of existing software delivery processes that are applied through standardized methods of evaluation.  This enables maturity quantification of methods, ways of working, and applications of technology in the software delivery processes.

What Is It Good For?

Maturity models are arguably good for organizations that seek consistent, measurable improvement. In those organizations, different areas of software development can be assessed and rated (e.g., defect management process maturity, test data management process maturity, etc.), and subsequently benchmarked against a standard or industry average.

The Power and Pains of Autonomy

TL; DR: The Power and Pains of Autonomy at the ACB21

In this highly engaging talk at the Agile Camp Berlin 2021, Jimmy Janlén addresses the core element of “Agile,” its key to speed, innovation, and success: team autonomy. Learn more about its benefits, challenges, fears, and pains and what organizations can do to unleash it.

The Power and Pains of Autonomy

Modern organizations are convinced that autonomous empowered teams are one of the core concepts of Agile and key to speed, innovation, and success. 

Agile Adoption Patterns: 6 Common Breaking Points and How To Fix Them

A few years ago, when companies started embracing Agile, they would bring in a consultancy firm to help come up with a strategy for the shift. They would hire some Scrum Masters, provide basic training to their teams, and proudly declare: “We are Agile now.”

But that statement couldn’t be further from the truth. More than a methodology, Agile is a philosophy, and adopting it means that everyone involved should get on board with a complete and profound transformation. A transformation that, oftentimes, fails.

Overruling the Product Owner?

There are plenty of failure possibilities with Scrum. Since Scrum is an intentionally incomplete framework with a reasonable yet short “manual,” this effect should not surprise anyone. For example, what if the stakeholders (who bring the budget that is funding your Scrum team) insist on calling the shots by overruling the Product Owner’s prerogative to define the composition and the ordering the Product Backlog? What if your stakeholders suffer from the “my budget, my feature” syndrome?

Join me and delve into the effects of overruling the Product Owner in less than 140 seconds.

Live From INTERACT: Microsoft’s Developer Velocity Research

This week we have another episode from the 2021 engineering leadership conference INTERACT. In this live conversation I interview Henrik Gütle, GM of Azure for Microsoft Canada.

Henrik joins the podcast to break down the results and key takeaways of Microsoft’s research into the impact of remote work on developer velocity - and what engineering leaders can learn from it.

Scrum: The Obsession with Commitment Matching Velocity

The Obsession With Commitment Matching Velocity

Despite decades-long efforts of the whole agile community—books, blogs, conferences, webinars, videos, meetups, you name it—we are still confronted in many supposedly agile organizations with output-metric driven reporting systems. At the heart of these reporting systems, stuck in the industrial age when the management believed it needed to protect the organization from slacking workers, there is typically a performance metric: velocity.

In the hands of an experienced team, velocity might be useful as a team-internal metric. But, when combined with some managers’ wrong interpretation of commitment, it becomes a tool of oppression. So when did it all go so wrong?

The Dogmatic Scrum Master Anti-Pattern

TL; DR: The Dogmatic Scrum Master Anti-Pattern

There are plenty of failure possibilities with Scrum. Since Scrum is an intentionally incomplete framework with a reasonable yet short "manual," this effect should not surprise anyone. For example, how do we communicate with members of the Scrum team that take the Scrum Guide literally? What about a dogmatic Scrum Master?

Join me and delve into the effects of Scrum dogmatism in less than 120 seconds.

Evidence-Based Interventions [Video]

In this highly engaging speaker session from the Agile Camp Berlin 2021, Viktor Cessan shares lessons learned as an Agile coach when working with systems, resulting in evidence-based interventions.

Lessons Learned When Working With Systems

When we, as managers or coaches, are asked to work with a system, there’s always more to a situation than meets the eye. In this presentation, I take you through common requests I’ve gotten as an Agile coach, and I contrast the initial request and understanding with what we discovered was actually going on, and what we did. I also share some tips for anyone working with systems in their day-to-day work.

Done With A Feature. So What’s Next?

Often a scrum team decides to implement a feature in a sprint, codes it and sends it to testing. At this stage, the product owner, scrum master, and the team often get a false impression that the feature is almost done and what remains is just testing and releasing it to production. Right?Wrong! Experience has shown that this only the start. The battle is only half won and there are many hurdles to get that feature to the finish line.

Our scrum team went through several sprints where we thought we were ready to release a feature to production but “something” came up towards the end of the sprint and we failed to deliver. We slowly came up with this checklist to ensure that what we had was checked all boxes before we showed the green flag to our product manager.

Squad-Based Coaching Is Essential for Agile Success

In today’s turbulent and rapidly changing business environment, Lean-Agile working models have helped businesses become more adaptive and flexible. With a focus on creating highly engaged and empowered teams who act on fast feedback and pivot regularly to maximize business value, it’s easy to understand Agile’s present popularity.

Yet while the “Agile” concept is good in theory, it can become overly-idealistic.  Many organizations commence their transformation journey with the best intentions only to find their workforces soon shift back into a production line driven by uniformity.  This is the critical point where progress can begin to stall.

Benefits of Running Agile Product Teams

Introduction

Agile is one of the most popular approaches to project management because of its flexibility. It is an incremental and iterative approach to project management that helps teams handle their workload more efficiently.

The agile manifesto started in 2001 as a way to address software development issues faced by software developers. Today, agile is a popular project management approach preferred by many project managers for their teams, regardless of the industry.

SKP’s Agile and Scrum Basics: Part 02/02

I have about ~16y 04m of Software Development Experience (2021) and have been working on Agile Projects since about 2006. My First Formal Introduction to Agile was through a Training by Thoughtworkers (Thoughtworks is a Leading Agile Company). This was while I was a Senior Software Engineer at Huawei, Bangalore, India. I have worked on Agile/TDD/Pair Programming (Various Variants) in multiple companies including Huawei, Symantec, Yahoo, Finastra*, Oracle*, OpenText*. Recently and Once Again, I attended a Formal Classroom Training (Company Internal) on Agile. I jotted down the most important points and now am presenting them in this Blog. I hope it helps and becomes a Ready Reckoner for Understanding/Learning the Agile Basics (Needs, Motivations, Practice, and Story of Evolution).

* [Original Product Firms were Acquired by these Current Companies]

Scrum Basics

The term Scrum was first mentioned in the 1986 Harvard Business Review Article by  Hirotaka Takeuchi and Ikujiro Nonaka. They compared High Performing Cross-Functional Teams to Scrum Formation in Rugby. Scrum is a way to Implement Agile and teams working are called Scrum Teams. The Five Values that should Drive Scrum Teams are Below:

Focus: Because we Focus on only a Few Things at a time, we work Well Together and produce Excellent Work. We deliver Valuable Items sooner. 
Courage: Because we work as a Team, we feel supported and have more resources at our Disposal. This gives us the courage to Undertake Greater Challenges.
Openness: As we Work Together, We Express How We're Doing, What's in Our Way? and Our Concerns, so they can be addressed.
Commitment: Because we have Great Control over our Own Destiny, we are more Committed to Success.
Respect: As we Work Together, Sharing Successes and Failures, We come to Respect each other and to help each other become Worthy of Respect. 



 Three Pillars of Scrum that are Fundamental to Scrum Include the Following:

Transparency: Advocates that the Significant Parts of the Process to be Visible to All.
Inspection: Scrum Artefacts Constantly Inspected as also Progress towards Milestones.
Adaptation: Deviation of any Process Aspects Outside Acceptable Limits must be Adjusted.



Scrum Roles

The real world Implementation of Agile through Scrum has Three Important Roles. 

Development Team/Member
Takes on Tasks and Delivers Chunks of Work, In Frequent Increments

Scrum Master
Protects the Scrum Process and Prevents any Distractions.

Product Owner
Determines what Needs to be Done and Sets Priorities to Deliver the Highest Value



Companies Adopting Agile

I myself have worked for Top Software Companies of the World including Yahoo (Altaba), Symantec, Huawei, Siebel (Oracle), GXS (OpenText), and Misys (Finastra). Also, I have worked for some well known IT Services/Consulting Companies like Infosys, Headstrong (Genpact) and also relatively smaller Product Brands like Persistent and Aptean. Since I started my career in 2003, I saw the move towards Agile Adoption (Variants, Loose Variants) in Various Companies throughout my Experience — It was really exciting for me as a Software Developer since the greatest crib that I ever had was Excessive Software Documentation and the Lack of Energy and ExcitementThe idea of Regular Delivery of Working Software (Demos) was inherent and natural to me as a Software Developer. It is the one that brings the Greatest Joy (Apart from Everything, as Discussed in Earlier Sections) in Software Development. I am enlisting few of the Other Companies that have Adopted Agile (or are Agile Proponents), across Business Lines.

  • Google 
  • Microsoft
  • ThoughtWorks
  • CA Technologies
  • Barclays
  • Ericsson

From my Own Experience, I can comfortably say that almost all companies in the world now use Agile/Scrum (and/or Variants) as one the Software Development Methodology of Choice. Also, Most Software Development Companies (Read Product Software) were always almost Agile, but now may be using the Formal Agile Principles as their Driving Factor to achieve Greater Efficiency. Many Companies use Variants of Agile or Mix of Agile with Other Processes for their Teams. Agile is also not restricted to Software Development — There are Industries and Functions that now use Formal Agile Methods for their Deliverables and Daily Tasks.


Popular Tools for Agile/Scrum

You will come across these Tools and Technologies that are used to Implement or Drive Agile/Scrum Methods and Practices in Organizations Worldwide. There may be many more Tools, Frameworks, Technologies — But I am only enumerating either the ones that I have come across or the Ones that are Popular. They may not be directly Agile Tools, but ones that either Accelerate Agile, Used for Agile Project Management, Agile Planning, Agile Task Management and Continuous Integration/Delivery.