I’ve been working in Clojure for the better portion of a year now. I came to Clojure very excited to learn more about macros and symbolic programming.
I learned some powerful concepts, but the takeaways were not what I expected. Overall, I found that macros are not a clear win.
I recently gave a presentation on the Software Engineering Body of Knowledge focused on road maps for software learning.
This involves much philosophy on how we think about software. The conversation surfaced many crucial fundamental views that often go unstated.
I’ve enumerated them here.
I was thinking about responsibility for different kinds of quality in an organization and I noticed that different kinds of testing line up well with particular roles and software lifecycle phases. I’ve summed it all up in a quick visual.
I’ve been wrestling with the Software Engineering Body of Knowledge (SWEBOK) to distill an intuitive mental image for software knowledge.
Here is my latest attempt incorporating insights from previous visuals.
The Software Engineering Body of Knowledge (SWEBOK) portrays the software lifecycle as a set of transforms. I realized that each transform creates an artifact, and these artifacts are key to connecting cross-cutting concerns into the lifecycle phases.