No Silver Bullet — Notes

Jero
2 min readJun 7, 2023

Software construction involves the main following tasks:

An essential Task:

The fashioning of the complex conceptual structures that compose the abstract software entity.

The essence of a software entity is a construct of interlocking concepts: “Data sets, relationships among data items, algorithms, and invocations of functions”.

I believe the hard part of building software to be the specification, design, and testing of this conceptual construct,

We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems.

Accidental Task:

The representation of these abstract entities in programming languages and the mapping of these onto machine languages within space and speed constraints.

Examples of the accidental task:

  • Hardware constraints
  • Awkward programming languages
  • lack of machine time

Tips to address the essential part of the software task:

  • Exploiting the mass market to avoid constructing what can be bought.
  • Using rapid prototyping as part of a planned iteration in establishing software requirements.
  • Growing software Organically, adding more and more function to system as they are run, used and tested.
  • Identify and developing the great conceptual designers of the rising generation.

The inherent properties of the essence of modern software

  • Complexity
  • Conformity
  • Changeability
  • Invisibility

Please give me your thought about this short article, I love to share ideas and learn from others and I hope this article may be helpful to someone out there!

Also, you can be following me on Twitter, or contact me on Linkedin.

--

--