Participated in this project 🙂
Author Archives: Waog
Software Architecture and Design – An Overview
I recently founded the Meetup group Software Architecture & Design Berlin. At the first event I gave a talk myself, in front of 30 people. It was general talk explaining what software architecture and design is.
Here are the slides (additional speaker notes can be found in the options):
Don’t optimize performance!
Against any reason, discussions about performance are very popular among software developers. This article explains why most of them are superfluous or premature. It shows examples of such discussions and gives tips on when and how to improve performance.
You’re Not As Effective As You Think
You’re Not As Effective As You Think
Statistically, it’s very likely that you overrate the effectiveness of your organisation.
The above chart shows two distributions.
The blue curve – the Rightshifting curve – shows the distribution of knowledge-work organisations vs effectiveness. Note the median is at 1.
The red curve shows how organisations typically rate themselves re: effectiveness.
The Dunning-Kruger Effect
The Dunning-Kruger effect says that unskilled individuals will rate themselves and their abilities higher than is accurate. I have regularly seen this happen in groups – such as companies and the like – too.
“If you’re incompetent, you can’t know you’re incompetent. […] the skills you need to produce a right answer are exactly the skills you need to recognize what a right answer is.”
~David Dunning
The key consequence to this is that these kinds of unskilled groups believe they are doing much better than, in fact, they are – and thus…
View original post 226 more words
Beyond coding – Levels of Errors in Software Development – Part 1
Too often technicians are struggling with logical problems and managers are tinkering with design problems. This article gives an overview of all kinds of errors and problems which occur in software development. It further explains how to identify, distinguish and solve errors on different levels. Continue reading
Resolving Cyclic Dependencies
Cyclic dependencies among Classes are a common issue in software development. They are best resolved at design level. This article explains how to do this. It also provides some intuitive insights into Interfaces and dependencies. Continue reading
Dependencies and Arrowheads
Fixing one bug often causes multiple new bugs. This article explains why by introducing some basics about dependencies. It also briefly introduces parts of UML to visualize these dependencies. Continue reading
Code Smell: Feature Envy
Methods suffer from Feature Envy, if they use other classes more than their own. This article describes why this is bad design, how to visualize feature envy and how to cure it. Continue reading
Code Smell: Data Class
This articles describes what’s bad about dumb data holding classes. It describes how to refactor Data Classes. Also Code Smells are introduced briefly, of which Data Class is one. Continue reading
Grumbling about JavaScript
This article describes why JavaScript is crap and its community is dumb, from an object-oriented point of view. It names alternatives and shows why they are problematic. It reveals that waiting for later versions is an option. Continue reading