Improving But Not Learning by Doing – Marginal REVOLUTION

One aspect of knowledge transmission which is more difficult to study is the role of the genius. Cultural generation can get stuck in local optima. Only the genius can see over the valley to the mountain. The occasional genius may have been important even in knowledge generation in the pre-science era. In addition, these kinds of cultural evolution processes work best when feedback is quick and clear. Lengthen the time between input and output and all bets are off. Still this peculiar experiment illustrates how much cultural transmission can achieve and how theory can so dominate our thinking that it reduces vital experimentation.

Source: Improving But Not Learning by Doing – Marginal REVOLUTION

How to Improve Critical Thinking as a Programmer – DZone Agile

  • Create mind maps with technical tools. First, you can start using tech tools to visualize your thought processes, gain access to new information, and think more abstractly about the problems you face. For example, you can create interactive mind maps that let you organize different categories of thoughts and related subjects, so you can visualize a high-level rundown of the problem at a glance. From there, it will be easier to spot flaws and brainstorm solutions.
  • See problems through others’ eyes. Thinking laterally, or “outside the box,” is the simplest way to think critically. We’re often limited by our own perceptions, experiences, and cognitive biases, and the best way to remove those filters is to see the problem through someone else’s eyes. There are many ways to do this, but the simplest is simply picking someone’s brain about the problem you’re facing—they may bring to light ideas or avenues of thought you hadn’t previously considered.

Source: How to Improve Critical Thinking as a Programmer – DZone Agile

Microservices: Why Asynchronous Communications? – DZone Microservices

Issues with Asychronous Communication

  1. How should a long-running process on the server be presented to the client? If the server is experiencing a high peak in demand, or if the resources are scarce, chances are the client will be affected too. Should it just wait? Should it timeout? How should the client interpret this situation?
  2. When an upstream dependency (server A calls server B) is unavailable, should the client care? Why should the client be sensitive to our ecosystem. From its standpoint, it reached the server, the rest is all internals.
  3. Guaranteed response time: what if I told you that my server will respond in O(1) no matter what. How is that for usability?
  4. What if the client does not need a response right away? Assume that I place my order in the context of an ecommerce application. I know what I ordered, I know how much I paid and I know when and where I will be delivered. Why should I hang in there until the server does all its housekeeping (updating product stocks, notifying the warehouse, ….)
  5. Better yet, you don’t know whom you’re talking to but you’re sure that your request will be honored. I always feel this way when I need an administrative paper. It seems that I always need to find the right person, and more importantly, at the right time. I always wished I could just submit my request to a “mailbox” and just head home and be sure that it will be fulfilled.
  6. My request is more urgent that yours. Now you’re in a nuclear power plant, and maintenance staff keeps track of the major events there by posting these events to the monitoring application, business as usual, cooling check… Suddenly, Mr Hero realizes that a major event that jeopardizes the safety of the whole neighborhood is about to take place, and posts an emergency stop payload, now I wouldn’t like to be the one who processes a ventilation check while making the emergency stop wait.

Source: Microservices: Why Asynchronous Communications? – DZone Microservices

Microservices: Why Asynchronous Communications? – DZone Microservices

Why Asynchronous?

Or why stick to synchronous communications should we ask? It is true that synchronous communications has come to be regarded as the de facto pattern to exchange information between any two endpoints. Think of TCP, HTTP, FTP … . It does indeed exhibit the following advantages:

  1. Simpler reasoning and tracing: Everything starts when an outbound request in made from the client, and we can step through the whole process all the way until the request is processed by the server and a response is sent accordingly.
  2. “Instantaneous” feedback: When a client breaks the contract, or the server deems the current request as invalid, feedback is sent right away to the client. This can take the form of response codes, redirects, or event stack traces.
  3. Natural: In the sense that we like to think about thing A happens before thing B, or thing C happens as a consequence of thing B.
  4. Translates directly to models: We’re all used to sequence diagrams on UML, and very few people can tell from the back of their head how asynchronous calls are modeled. Instead, we like to think of them as a succession of synchronous calls.

Source: Microservices: Why Asynchronous Communications? – DZone Microservices

Trillion-Dollar Teamwork: Goal-Setting With OKRs – DZone Agile

For this reason, it is absolutely critical that KRs be specific enough to be measurable (this is where KPIs come in), and that they contain a numerical element that makes them easier to form metrics for. In fact, one technique to ensure KR accuracy is creating KRs according to the S.M.A.R.T. method. The S.M.A.R.T. method dictates that goals should be: Specific; Measurable; Achievable; Relevant; and Timebound.

Source: Trillion-Dollar Teamwork: Goal-Setting With OKRs – DZone Agile

A Helpful Guide to Reading Better

What to Read

Knowing how to read is only half the battle. Too much of what we consume these days is the mental equivalent of junk food. Quality matters more than quantity. The Pot-Belly of ignorance talks about the importance of selecting your reading material wisely.
Arthur Schopenhauer’s timeless advice on reading is also worth reading (be quick to start books, quicker to stop them, and read the best ones again right after you finish). Montaigne’s rule with reading was the promiscuous pursuit of pleasure.
Whatever you do, don’t read what everyone else is reading. Rather than read new books, focus on old ones.

Source: A Helpful Guide to Reading Better

How to…Tell Stories in Your Presentations | Presentation Guru

WHAT YOU NEED ARE THE 6CS OF PRESENTATION STORYTELLING

If you are going to tell stories in your presentations, make sure you cover these six points.

1) Context

This is the setup and the situation. This is where you bring people into your story and change the tone of your wider presentation. Probably you will also lower your voice, change its tone, maybe even slow down and turn the projector off. Or have a picture to illustrate the scene you are setting up. Evocative, specific details help – the clouds scudding, the waves kicking up, smoking, etc.  This brings your story alive and gives it realism. Detail is good.

2) Character

All your stories need a hero. In my prison story, it’s Andy. In my presentation story the hero is me. Your audience needs someone they can identify with and who overcomes some sort of challenge, or resolves a mystery.

3) Challenge

What is the obstacle our hero has to face? Typically, this will be something that they overcome and results in some sort of change. How they overcome the challenge will typically result in some lesson or moral – the point of your story.

4) Conflict

This is where the outcome is unclear. You need some tension and jeopardy. Something goes wrong. Will there be a positive outcome?

5) Conclusion

Success! The challenge is overcome and the conflict is resolved. (For example, I resolved my situation by making the links between my case studies and the client’s challenges much more obvious.)

6) Connection

This is where you bring the story back to the audience and draw out the key lessons for the audiences. Ancient fables used the technique “and the moral of the story is….”. We’ve lost this expositional technique in modern storytelling but the risk of leaving it out is that the audience doesn’t ‘get it’. Make it clear and squeeze the meaning for them.

Source: How to…Tell Stories in Your Presentations | Presentation Guru