-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
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
Labels
No labels