The Golden Bullet with Your Name on IT
Published: 2020-07-05 07:12:08

---
title: The Golden Bullet with Your Name on IT
published: true
description: No Silver Bullet and the Turing Halting Problem that appears when attempting to use engineering to find a solution to the best possible method for software engineering.
tags: 
---


The reference is to the Bond story where a Man with the Golden Gun sends Bullets to his victims prior to his job, of attempting to assassinate him.


#The Silver Bullet

The potential key to solving software problems at 10X speed is the silver bullet. The silver bullet is a concept originally from European fairy tales - a bullet that can kill any witch. So here the bullet is a magical key to the problem of productivity.

"there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity." Fred Brooks

I still agree with this take in 2020 and I think the key is in mindset. Mindset is the silver bullet.

Clean Code solves much of the simplicity issue.
Reliability and estimation are still difficult, TDD seems to help somewhat with the former. but no winner technique has arrived so far.

Productivity seems to remain the problem. Although there are exceptions to the rule among people using the Effective Delivery patterns, there is no clear one solution that solves the problems we still face. It's not a case where no solutions exist at all but no one knows general rules of implementation to attain the solution found among some groups of developers, and where exceptional productivity does occur it is quite volatile even among the best and occasionally occurs among the low performers too.

Machine Learning has shown promise of simple and elegant solutions to some intractable and hard software problems even some that were near impossible to solve by previous paradigms of software engineering.


#The problem

No one who is stressed a gets the mindset. Stress is the major factor or altering society into compliance with solving old problems only. No amount of exertion can get you out of it. You have to let go. Meditation is the key here.
We need to solve novel problems as software engineers, designers and architects. To achieve that we also need to be learning a lot and trying to keep single-tasking at the same time, to avoid getting off flow.
There are four fundamental problems here that conspire to provide strong obfuscation of any attempt to provide good estimates of how long the programming tasks will take to solve.
First, we do not know how long the learning part will take to learn and when will we find the right clue in the given knowledge domain, if it exists at all and also how to justify the time rolling for that task to our organisation.

Second, programming will take an unknown time to solve an unknown problem or fix a bug when complex interdependencies appear in code.

While the first two problems deal with estimation with a parallel in Turing's halting problem. In other words we do not know how many processing cycles a problem will take

Third, while at the time the first two problems start affecting each other the uncertainty advances, the management or scrum leaders are pressuring the developer to cut corners and develop more, faster. This pressure is only conducive of stress and putrefies into a toxic organisation. Further causing more delays and poorer code.
This is the only sphere where some human control can be exercised. However we are running two different cultures-games against each other. The previous paradigm of managers will have to pass away, coffin by coffin.
There is a question of organisation too. The organisation can self-sabotage by increasing and maintaining a constant stress level. There is a bias where people behave in a wrong way because everyone else does it.

Fourth problem is even more fundamental, the nature of the problems of software engineering is unlikely to be procedurally solved, because we probably would have done it already by now.


#A Mindset and a Skill set

you need both,
just a mindset gets you to the door, you are the one who has to perform the action of crossing the liminal space to a skill set.
It is kind of a meta skill set as well, not just a learn-this-then-do-that type of skill, because it is the application of these skills like regulation of self and time spent in self awareness that present me a path to get to improve the speed and efficacy at which I can learn new skills for programming, testing, planning, ideation, effective delivery. To keep my mind ever more open to new technologies, methods, media and communication and interactions with fellow human beings.


#The Salvo Stopping 
"He is beginning to believe!" -- the Matrix
 
It is no single solution but the problem may be solvable with taking on as much of the salvo of metalearning learning skills as one can! 
If we could just advance the automation of the learning process, and even amplify these meta skills, we may be able to increase productivity.
-social skills
-emotional intelligence skills
-general cognitive skills
-creativity
-self-regulation
These are just headings and the complete list of bullets are around 50 skills and can be found on socoslabs at 
https://socos.org/

However, we will not know how much of a progress we can make in advance. Perhaps it will not be 10X, still we should keep our mind open for potential progress into the 100X and 1000X worlds because the Moore's Law is coming to a close and we may well need to bridge the gap to the next processor paradigm and Quantum Computing.


#Robot Proofing

I do not want my kid to be a human robot for the industrial or agrarian industrial worlds. It would be better to have more challenging and inventive goals to conquer....
Yet some software engineers jobs may be taken by AI soon as some progress is already made in 2020. However learning will need to include AI and machine learning to reach new levels in software engineering.


#Meditation, Coherence and Metacognition

Meditation when done right, is the process of keeping a lookout and returning focus, to refocus on one object.
The result is that we attain self-awareness and begin to focus on how, and what we think more easily too.
When certain breathing practices are used coherence develops.
Physiological coherence avails a way of communicating emotions with sincerity and tactical empathy to defuse social stress situations. This can bring on a level up of coherence to socio emotional communications.


#A Thought Experiment

An thought experiment I just came up with would be to have one experienced meditator in the team to be a go to person if a pair finds a problem they cannot solve or gets into a dispute about how to go about solving a problem.
challenging and inventive goals to conquer....