Wednesday, April 17, 2019

Allen Holub on Twitter -- Selling Agile and Changing Mindsets

"Don't know if it's possible to "sell" agile. Politics should show us that people do not use rational thinking when it comes to ingrained beliefs, and anti-Agile literature and social media is rife with confirmation bias.

 It seems it's not facts or rational arguments that change minds or behavior. Has more to do with social interaction and status. Just look at politics.

Many intelligent and highly educated ppl are climate-change deniers. Facts do not change their opinions. Confirmation bias runs rampant. Same applies in the Agile realm, I think. E.g. If someone believes in cmd/control, you can't change that with facts.

There are very few approaches that work: If the new information comes from somebody you know and trust, you might pay attention. If the people around you believe something, you'll pay attention. If your status goes down if you don't do it, you'll pay attention.

In general, a rational argument will be of no use whatever. Even demonstrating that somebody's "wrong" (e.g. with a pilot project) will not change minds.

Ultimately, the only solutions that work are rooted in social interaction. We programmers tend to not believe that. We talk with incredulity about how ppl ignore "the facts," but facts will sway nobody."

"Yes, you can "sell" them on adopting the lingo, or maybe you can sell them classes or certificates, but selling them on the hard changes that have to happen to make things actually work is much harder. "

Allen Holub

Monday, April 15, 2019

POC vs. Prototype vs. MVP - Zignuts.com


  1. POC: Identifies the Operational feasibility of the concept. It can either confirm or infirm your thought about the user and your application. 
  2. Prototype: Helps you to visualize the actual design and flow of your idea or system., that is the actual blueprint of the idea.
  3. MVP: Helps you recognize the core value of your system. It is that version which you can launch into the market to gain valuable product insights from users. 

Thursday, April 11, 2019

Cyclomatic Complexity Calculation - with example

Source: Softwaretestingclass.com, Wikipedia, Guru99.com
Keywords: Cyclomatic complexity, Graph Theory

Cyclomatic complexity of a source code is the number of linearly independent paths within it.

Cyclomatic complexity is a way to calculate the complexity of a code. It quantifies the complexity for future source code modifications.

If the source code does not have any control flow statements (For e.g. If, Else, While, Do, For loops in C) then its cyclomatic complexity is 1. A source code with a single IF condition will have two paths through the code so its cyclomatic complexity will be 2. Likewise a code with one IF with two conditions or two nested IF conditions will have a code complexity of 3.

Formula for cyclomatic complexity

M = E - N + 2 * P

E = Number of edges in control flow graph
N = Number of nodes in control flow graph
P = Number of connected components

Complexity Score and Interpretation
=====================


Maintenance POV
==========

A higher complexity score means lower maintainability.

QC POV
=====

From a QC perspective, a higher complexity score means, it requires indepth testing.

Node & Edge
=======


Connected component
=============

A graph with 3 connected component.



Example
=====


Nodes = 8
Edges = 9
CC = E - N + 2 * P
      = 9 - 8 + 2 * 1 (connected component) = 2





Visualizing Next Word Prediction - How to LLMs Work?

 https://bbycroft.net/llm