Skip to content

Topics inbox #30

@stanislaw

Description

@stanislaw

Day-to-day work

  • Tooling / methodology / culture.
  • Hacks/workarounds, e.g., zero-terminated strings, null pointers.
  • Sense for irregularities. Order ~ control.
  • Danger of framework - Over-constraining the implementation.
  • Every task - shortest feedback possible.
  • Don't stop the flow. A coordination failure leading to self-blocking — when impatience reduces throughput.
  • Failed code review: copying an object.
  • Copy-and-paste mistakes. Templates.
  • If a process is done once or rarely, it will likely be slow and full of mistakes or issues.
    • When it is not worth to automate.
  • Making decisions in hard situations. Saying NO or YES.
  • Upstream-downstream. Connect with It may be part of a chain where upstream or downstream effects matter..
  • Context to fit enough/all aspects of a problem -> Mindmaps.
  • 📌 Checklists.
  • Good enough.
  • Logs.
  • 📌 Invest into good tools.

Cognitive

  • 📌 Effective learning is a result of computation. Over-internalizing that leads to biases. Learning how to do a pattern and then how to undo it. Source of truth example.
  • Order (wires and clothes)

Design

  • The systems are not based on perfect design.
  • Centralized vs federated.
    • A single data storage for all apps, or all apps have their own data storage.
    • Monoliths vs microservices.
  • Before something can scale, it must exist.
  • Bad design -> No longer adequate
  • Partitioning - Helps to split content in one's mind. No partitioning - Everything mixed. Wrong partitioning - Wrong weights hanging on when reasoning about things.

Coding

  • Git commit names: Context: Title.
  • Portability of mental work.
  • Mutating the original vs mutating a copy.

Distribution

-

Maintenance

  • 📌 Cloning or re-implementing an existing solution is easier than creating a new one.
  • Maintenance Trade-offs
  • Newcomers vs aftercomers (maintenance programmers).

Documentation

  • 📌 Software User Manual Document.
  • Documentation is a garden.
  • Hierarchy, composition, zooming helps in chunking information
  • Redundancy in text: strengthens the common understanding / helps finding errors. This is an exception to the Single Source of Truth principle.

Diagrams

  • I/O model
  • Control/Feedback diagram
  • Static diagram

Communication

-

Management

  • Good, when no one understands the timelines and how much the work will actually take.
  • Using engineers. Engineer – personal pride, intuition of everything possible.
  • Estimates and intuition. Developers just don't know when they estimate but they may not tell.
  • Research teams vs execution teams.
  • Managers are your friends.
  • Open positions are not emerging by themselves. Driven by some pain.
  • Workforce: Transformation of unknown to boring. Complexity barrier after which it becomes boring.

Meetings

-

Systems

  • Take a full ownership of complex and controversial topics or find reliable people and delegate the ownership to them.
  • Top-down systems engineering. Single entry point to every topic as anchor. One page per topic.

Top down system engineering is critical for engineering safety into complex systems (MIT ESW)

  • Systems Engineering as manipulating a graph of interdependent artifacts.
  • Traceability
  • Safety cannot be analyzed without requirements.
  • Systems engineering activity consists of computation tasks. SysEngineer acts like IO device.

Testing

  • Testing to functional decomposition.

Standards

-

Organizations

  • In the beginning there was cash.
  • Too many lessons learned paralysis.
    • The development still happens because something has to be built.
    • New companies cannot implement all lessons learned at the same time.
  • Spring - Making mistakes. Winter - Death from too many lessons learned. Rigid processes as a reaction of failure.
  • Struggle for survival
  • Inherently messy. Partially messy, partially perfect.

Other

  • Feature matrix and integration tests. How to organize this in open source projects?
  • Master schedule modeling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions