InfoQ Homepage Software Craftsmanship Content on InfoQ
-
The Ideal Programmer - Why They Don't Exist and How to Manage Without Them?
Mike Williams outlines some of the main characteristics that make developers and teams perform better than the average.
-
Entirely Predictable Failures
Poul-Henning Kamp considers that if developers are not getting better, we are going to repeat many of the major IT project failures. He exemplifies with major Denmark project failures.
-
Technical Debt, Process and Culture
Michael Feathers advices on creating an organizational process and culture that can enhance software development in a way that reduces technical debt.
-
Accruing Technical Debt: Practical Decision-Making and Its Business Relevance
Christof Ebert discusses technical debt including a Netscape vs. IE case study and provides a framework with practices for managing technical debt.
-
Beauty is in The Eye of the Beholder
Alex Papadimoulis attempts to define ugly code, how one can recognize it, providing advice on avoiding writing such code and refactoring old code to get rid of it.
-
Master-Builders Have Rich Conceptual Models of Software Design
George Fairbanks stresses the importance of having a good grasp of various conceptual models in order to be a master-builder, translated into development as “learn your software architecture”.
-
Building Rich User Experiences without JavaScript Spaghetti
Jared Faris provides 3 principles –decouple everything, make it testable, push events not state – and some patterns which help avoiding creating JavaScript spaghetti code over time.
-
SOLID Clojure
Colin Jones discusses applying the SOLID OOP principles to Clojure programming in order to create systems that are easy to change.
-
Stop Refactoring!
Nat Pryce considers that we cannot write the perfect code because it is never fully prepared for the coming change, so he suggests embracing impermanence & continual imperfection.
-
Evident Code, at Scale
Stuart Halloway shares advice on creating evident code that scales. Evident code is software that clearly expresses its meaning and purpose.
-
Nothing Is Permanent Except Change - How Software Architects Can Embrace Change
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.