Software Package Coupling Fundamentals

Today I will write about about the topic of software package coupling and some of the consequences of “good” and “bad” couplings.

In particular I’m going to focus upon the following three principles:

The Acyclic Dependencies Principle states that there must be no cycles in the package dependency structure.

The Stable Dependencies Principle states a package should only depend upon packages that are more stable than it is.

The Stable Abstractions Principle states the abstractness of a package should be in proportion to its stability.

Software Team Member Onboarding

I work routinely as a freelance software architect helping clients with their software projects. There’s a certain sameness to coming onboard a project. There are a ton of questions to which I need answers as I try to come up to speed. It’s often hard to know where to start.  I’ve put together this guide for me and my clients to help smooth my on-boarding process.

Multiple Project Views

I prefer not to think of the problem of coming up to speed as getting answers to a bunch of questions. I like to think of it as building multiple mental models of the project, each of which is a different view of the project.


Continue reading “Software Team Member Onboarding”