Skip to content

joshmcode/software-notes

Repository files navigation

General Resources

This is a collection of resources I have put together over the years that did not warrant their own writeup, but which I did not want to lose.

The Cynefin Framework

Pronounced "ki ne vin"

This is a sense-making model, not a categorization model. With sense-making models the data precedes the framework. With categorization models the framework precedes the data.

It is a decision making framework that helps us figure out how to think, depending on the type of system we're working with (simple, complicated, complex, or chaotic). The middle section of the grid is disorder, where we're trying to decide which category to fall into.

An interesting note about the line between simple and chaotic, (which is represented as a cliff in a HRB article) is explained by Dave Snowden from the video linked below:

... if you start to believe that things are simple, you start to believe that they're ordered, you start to believe in your own myths, you start to believe that past success means you're invulnerable to future failure, you effectively move to the complacent zone which is the boundary between simple and chaotic and you fall over the edge in a crisis. All the other boundaries allow for transitions. For this you fall over the edge and recovery is very, very expensive. It therefore follows that you should manage in the complicated and complex spaces and only move a very small amount of material down into the simple because that's actually highly vulnerable to rapid or accelerated change.

The Cynefin Framework: link to YouTube video

The Coming Software Apocalypse

This article explores the vast complexity of our software-driven world and how some people are trying to prevent future catastrophe.

This quote sums it up well:

There will be more bad days for software. It's important that we get better at making it, because if we don't, and as software becomes more sophisticated and connected—as it takes control of more critical functions—those days could get worse.

The Coming Software Apocalypse

Software Development Using Components

Abstract from paper:

Abstract—Component-based development (CBD) is an important emerging topic in software engineering, promising long-sought-afterbenefits like increased reuse, reduced time to market, and, hence, reduced software production cost. The cornerstone of a CBDtechnology is its underlying software component model, which defines components and their composition mechanisms. Currentmodels use objects or architectural units as components. These are not ideal for component reuse or systematic composition. In thispaper, we survey and analyze current component models and classify them into a taxonomy based on commonly accepted desideratafor CBD. For each category in the taxonomy, we describe its key characteristics and evaluate them with respect to these desiderata

Paper inside of Documents folder.

Book: Component Software: Beyond Object-Oriented Programming

Description

With the advent of new enabling technologies, the need for the information put forth in this new edition is greater than ever. Component Software, Second Edition explains what the key software component technologies are, how to use them properly, and why they are important to a development organization. Furthermore, the author presents this material in terms of both the technical and business issues involved with the adoption of component-based software engineering. The book defines components and clarifies the key questions surrounding them, demonstrating how components can be the key to successful software design and construction.

From Component Software: Beyond Object-Oriented Programming, 2/E (Addison-wesley Component Software)

About

General Software Notes I have Collected Over the Years

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages