Will JavaScript type annotations kill TypeScript?
The creators of Svelte and Turbo 8 both dropped TS recently saying that "it's not worth it".
Yes: If JavaScript gets type annotations then there's no reason for TypeScript to exist.
No: TypeScript remains the best language for structuring large enterprise applications.
TBD: The existing user base and its corpensource owner means that TypeScript isn’t likely to reach EOL without a putting up a fight.
I hope they both die. I mean, if you really need strong types in the browser then you could leverage WASM and use a real programming language.
I don’t know and I don’t care.
CI/CD / Tech Life

The Scientific Nature of Continuous Delivery

Jul 19th, 2016 9:17am by
Featued image for: The Scientific Nature of Continuous Delivery

Continuous delivery, continuous implementation and agile software development are more than arbitrary constructs. They are human nature. Backed by evolution, neuroscience and cognitive psychology — and a lot of citations since he’s not an expert in those fields himself — Daniel Jones, from U.K. Cloud Foundry consultancy Engineer Better, explained just why these aren’t just buzzwords and trends but just plain good engineering.

At his talk at the recent Spark the Change conference in London, Jones said, instead of a Chief Technology Officer title, he now calls himself the Office Troublemaker. “I don’t like to do the wrong thing just because everyone else does,” he said. The self-anointed troublemaker then ticked off ample reasons why Waterfall, Gantt and even Scrum are backward and go against all things science and nature.

How to Overcome our Productivity Problems

Echoing the OECD (Organization for Economic Cooperation and Development), Jones contended that the western world is in the midst of a “productivity crisis.” The Bank of England, in its research into the Productivity Puzzle, found at least 25 percent of our resources are being allocated to inefficient uses, which they argue needs to be streamlined by smoothing areas of heavy friction: rewards, planning and communication.

Axiom #1: We Want Work to be Rewarding.

Jones shared the story of back in the 1970s when colorful markers were first introduced to art classes and white walls everywhere. A study was performed where researchers set up coloring tables in three different classrooms. Here’s the setup:

  • Class One: Nothing happened whether students drew a picture or not.
  • Class Two: Those that drew a picture were given a gold star.
  • Class Three: The children were promised a gold star in exchange for drawing a picture.

The researchers returned a month later unannounced. Here is how the same kids responded to the return of the markers and coloring table:

  • Class One: Who were only coloring for pleasure — 17 percent colored again.
  • Class Two: Who had received an unexpected reward — 18 percent colored again.
  • Class Three: Who were promised a reward before — 8 percent colored again.

This shows that kids who colored for the pleasure of it all — whether or not they received an unexpected reward — still colored, while the extrinsic reward of a gold star more than half reduced the desired behavior because the kids weren’t focused on enjoying the activity, but rather on getting that extrinsic reward (or not).

“Why are we incentivizing people with the wrong kinds of awards?”

More recently, a school had a problem with parents picking up their kids late, so it decided to add a small fine for every day late. What happened was the tardiness became worse — perhaps because parents justified that paying the fine was worth being late. The administration withdrew this fine, but the parents who had already been charged once never changed their behavior. Why? Because the long-term social contract between parents and teachers had been irrevocably damaged. The intrinsic motivation was irrevocably replaced by an extrinsic one.

“Why are we incentivizing people with the wrong kinds of awards?” asked Jones, giving the most prominent example of annual bonuses.

Jones’ background is in video game design, where the perfect gamification guides the player, but where the result is still surprising. Psychologist B.F. Skinner discovered this allure in his experimentation with rats, where he found that what most compelled rats to interact with his system was when rewards were random, not expected.

In other words, reward your employees, but not for their success, Jones pointed out. If you only reward positive outcomes, your team will only work with best practices and eventually your team will suffer from a lack of innovation and experimentation. He advised reading Jurgen Appelo’s “Six Rules for Rewards” and think about how often modern business, which focuses on top-down management and annual bonuses, breaks them:

  1. Don’t promise rewards in advance.
  2. Keep anticipated rewards small.
  3. Reward continuously, not just once.
  4. Reward publicly, not privately.
  5. Reward behaviors, not outcomes.
  6. Reward peers, not subordinates.

Jones would add that you should “Reward them with things that they like, not what they want — liking is experiential, extrinsic is wanting.”

We all pretty much know that money is only a motivation enough to get people to show up to work. But what Jones mentioned that truly demotivates is deadlines, which is at the crux of the next productivity failure, particularly in software development teams.

Axiom #2: Planning Actually Makes us Less Productive.

We all pretty much know that money is only a motivation enough to get people to show up to work. But what Jones mentioned that truly demotivates is deadlines.

“Weather is emergent behavior, but we can’t predict the future,” Jones said. When we try to plan, we are at best cocky, “at worse it’s the dangerous misallocation of resources that causes us to focus on the wrong thing.”

Think of how much time we put into creating Waterfalls and Gantt charts. And then the lengthy process of actually fulfilling these rigid plans, while almost always stretching the timeline. And it all goes against human nature. The present bias, as Jones explained, “has a biological underpinning: humans value things the closer they are.” He says this is why we tend to buy things on credit — ownership is near while that bill is far — and why we are much more likely to buy a homeless person a $3 sandwich than we are to donate that $3 to a charity.

To add to this bias, we as human beings love to be right. This means that we prefer the things we already own and tend to think they have more value than those we don’t have. And why — in both subjective tests and brain scans — that we would much rather stick to the norm than risk being wrong by changing from the default, which is why we will endlessly throw more money and time to extend these Waterfall and Gantt projects.

“We accept plans becoming more expensive,” Jones said. “Is it any wonder that Waterfall projects invariably overrun in every sector, compared to agile with just-in-time [JIT’] decision making?” Jones rhetorically asked.

What’s risky about imposed deadlines is that it is proven to not only restrict creativity, but it makes us dumber. Jones cited Sendhil Mullainathan and Eldar Shafir’s “Scarcity,” which stated deadlines on average lower our IQ by 13 to 14 points.

And this limiting our teammates often starts on Day One at a new job when we’re asked: How many days do you think it’ll take you to get this done?

He argued that “If we can’t escape the present bias, we need to find ways to exploit it with continuous delivery.”

Software developers are naturally more motivated by shorter development cycles — that they are in charge of defining — which lead to much more immediate feedback and more instant gratification.

The more we scale, the more we seem to segment.

But if you think that just sounds like the Scrum framework, well, Jones would say that has you making the same mistakes as Gantt and Waterfall by imposing two-weeks cycles on your team. Indeed, Scrum inflicts these constraints even more painfully.

“Reminding teams that they have deadlines by which they must have achieved a certain amount of work reduces their effective IQ and their ability to solve problems creatively, reducing the quality of the solution delivered.”

But this is about the psych behind individual developers, what about whole development teams?

Axiom #3: Make Everything More Human, Less Competitive.

We tend to build on a culture of competitiveness in the workplace, which only greater reduces the ability to empathize. The more we scale, the more we seem to segment.

“By dividing people into ‘Self and Other,’ ‘Your Group, My Group,’ [and] siloing teams, we reduce the ability to empathize and be productive,” Jones said.

In Nonzero, Robert Wright describes sociability as a “positive-sum” situation. From family to village to tribe to fiefdom to nation-state to the multi-national organizations and government, sociability games enforce positive-sum outcomes. It’s in our nature to work together.

“And that’s what we want for our organization,” Jones said, “We want everyone to win.”

There’s no doubt that greater efficiency in organizations is completely reliant on greater efficiency in communication. The bigger an organization gets, the worse we get at communicating. And then, as remote collaboration expert Lisette Sutherland points out, we do everything possible to evade face-to-face communication, defaulting to email, then intranet messages, then unclear spider conference calls.

Jones says this is a serious problem because, by avoiding meeting face to face — even on video conference — we are blocking the physiological feedback to the brain that develops empathy. He says we need to go out of our way to increase human contact, to talk to people first in person or on video, then the phone, then and only then use email. He even suggests creating bans on emails except for anything company-wide like human resources.

“If you need to work with someone on the project email is not allowed,” Jones advises.

And he isn’t just talking about siloing our own teams, but siloing the team members from the customers they serve. “Helping others motivates adults,” he explained, so when you have your team learning directly their customers’ problems, they are building empathy, motivation and desire to fix those problems.

To add to that, as John C. Beck and Mitchell Wade wrote about in “The Kids are Alright: How the Gamer Generation is Changing the Workplace,” humans love problem-solving and being autonomous in doing that (which is why we love video games.)

By allowing your developers to talk to the end users, they become even more motivated to work out a solution on their own — much more than if they were given a deadline from the top down.

Brain-aligned Software for Continuous Delivery

Logically brain-aligned software delivery is continuous delivery. “Continuous delivery — try to get one individual feature as quickly as possible,” Jones said.

Continuous delivery meets our three axioms of human nature and software development:

  1. Continuous delivery offers constant gratification, which means a constant sense of rewarding work.
  2. Continuous delivery works on shorter cycles and deadlines, usually determined by the developers themselves.
  3. Continuous delivery relies on an entire team working together, while individuals take ownership of their piece of a greater unified goal.
Group Created with Sketch.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.