diff --git a/categories/software-engineering/rules-to-better-architecture-and-code-review.mdx b/categories/software-engineering/rules-to-better-architecture-and-code-review.mdx index f5f0faa6674..80e5dd18fac 100644 --- a/categories/software-engineering/rules-to-better-architecture-and-code-review.mdx +++ b/categories/software-engineering/rules-to-better-architecture-and-code-review.mdx @@ -1,9 +1,8 @@ --- -_template: category type: category title: Rules to Better Architecture and Code Review -guid: a09ec7f5-4035-48ad-afb2-08ac9c620dc6 uri: rules-to-better-architecture-and-code-review +guid: a09ec7f5-4035-48ad-afb2-08ac9c620dc6 index: - rule: public/uploads/rules/do-you-evaluate-the-processes/rule.mdx - rule: public/uploads/rules/software-architecture-decision-tree/rule.mdx @@ -66,6 +65,8 @@ index: - rule: public/uploads/rules/use-feature-flags/rule.mdx - rule: public/uploads/rules/use-structured-logging/rule.mdx - rule: public/uploads/rules/resolving-code-review-comments/rule.mdx + - rule: public/uploads/rules/tracking-complexity/rule.mdx +_template: category --- For any project that is critical to the business, it’s important to do ‘Modern Architecture Reviews’. Being an architect is fun, you get to design the system, do ongoing code reviews, and play the bad ass. It is even more fun when using modern cool tools. @@ -74,4 +75,4 @@ Follow these steps to achieve a 'Modern Architecture Review'. See how performing These steps enable you to attend to the code that needs the most attention. Finally, create PBI's to make sure they get fixed in the next Sprint. -Want to drive business value with IT Transformation? Check [SSW's Strategic Architecture consulting page](https://www.ssw.com.au/consulting/strategic-architecture). \ No newline at end of file +Want to drive business value with IT Transformation? Check [SSW's Strategic Architecture consulting page](https://www.ssw.com.au/consulting/strategic-architecture). diff --git a/public/uploads/rules/tracking-complexity/rule.mdx b/public/uploads/rules/tracking-complexity/rule.mdx new file mode 100644 index 00000000000..3e754d45bda --- /dev/null +++ b/public/uploads/rules/tracking-complexity/rule.mdx @@ -0,0 +1,39 @@ +--- +title: Do you track the complexity of your software project? +uri: tracking-complexity +categories: + - category: categories/software-engineering/rules-to-better-architecture-and-code-review.mdx +authors: + - title: Sam Wagner + url: 'https://ssw.com.au/people/sam-wagner' +guid: af80869b-363b-4a01-8807-673dc1101105 +thumbnail: /uploads/rules/tracking-complexity/grug.png +created: 2026-02-18T06:27:56.778Z +createdBy: Sam Wagner +createdByEmail: SamWagner@ssw.com.au +lastUpdated: 2026-02-19T04:14:54.530Z +lastUpdatedBy: Sam Wagner +lastUpdatedByEmail: SamWagner@ssw.com.au +--- + +Complexity is a necessary evil in any software project. To make things work, you've gotta have some concepts that, when understood, are used to make it work. + +However, the mark of a great engineer/engineering team is to only ever opt into the minimal amount of complexity possible while constantly driving down whatever complexity currently exists. + + + +## What is Complexity? + +Complexity is the total sum of all the different concepts in any given system. Now in order for this to really make sense we need to define what we mean by a “concept”. + +> "A distinct piece of knowledge would cause someone to be blocked if they didn't have it." + +So, with this definition we can start to examine our software projects and see how complicated they really are. Now, notably there's nothing in this definition that says that a concept has to be a “package”, “library”, or anything that's specifically tied to something you can point at. So, Next.js would be a concept. But, so would Clean Architecture, cross-field validation, the redux pattern, etc. + +## Why Do We Need It? + +## Accidental Complexity + +## Short-term Gain + +## Explaining the Cost Of Complexity