Within a fractal system, there is an inherited conflict between higher and lower level nodes: higher level nodes wants lower level nodes to solve specific problems and the lower level nodes want higher level nodes to solve general problems. This conflict is central to a developers growth in creating modular code that is of high quality.
Goals – Aiming for Subjective Value
Goals should be quality based. Since quality can't be measured, one will have to use techniques like nomological networks and human judgement to gage if one is achieving their goal.
Creating New Ideas Through Boredom
A great way of creatively solving a problem is through boredom. If you are having a hard time coming up with a solution, simply stop what you're doing and let your mind wander.
Office Tribes
Tribal living was fundamental to our way of life for millions of years. Its a way of life that is ingrained within us. But our new modern environment doesn't jive with our built in way of life. What should we do?
Generalizing Specialists and Transactive Memory
In the last decade I've been fortunate, or unfortunate depending on your view, in going through multiple company transitions from Waterfall to Agile practices for organizing software development work. Most...no, all the transitions didn't go very well. What they all had in common was that they hired a "certified" scrum master to lay down the … Continue reading Generalizing Specialists and Transactive Memory
When To Stop Looking at Code Coverage – Goodhart’s Law
All companies want to know if their investment will bring them value. In order to understand how much value they are getting, the company will implement some sort of measurement. This is common sense: I invest, show me what I'm getting with my investment. However, a measurement can have an adverse side affect in the … Continue reading When To Stop Looking at Code Coverage – Goodhart’s Law
Fractal Dependency Segregation – Creating Clean Code
Spaghetti code is something that all developers know is bad and have an idea on how to not create it. Looking at your system as a fractal system will help prevent spaghetti code.
Software Principles and Misintegrated Thinking
All these software principles and practices can be hard to keep up with when developing applications. They can be even harder to implement. One thing that makes it difficult is figuring out when not to follow them. Like a good database architect would say: it takes experience knowing when to denormalize data. One problem that … Continue reading Software Principles and Misintegrated Thinking
AngularJs 1.x and the Lindy Effect
A couple years ago I had to agonize over which version of Angular to use for my front end development of a brand new project: AngularJs with all my currently built up knowledge, or the new framework that's the future. In deciding which technology to use in a project, we definitely need to be thinking … Continue reading AngularJs 1.x and the Lindy Effect
Optionality and Reusable Coding
All developers have been told to write reusable code. I remember having that drilled into my head in college by my professors daily. The main reason we have to write reusable code: so we don't have to write the same code twice. That is a perfectly valid reason and I can't argue with that. But, what … Continue reading Optionality and Reusable Coding









