Skip to main content

Welcome

There are some advantages to getting older.  Less angst, less pretension, and a little bit more historical perspective.  The latter has been particularly useful for me during the last decade.  I have been developing software for almost 40 years (freaks me out to say that).  I still love writing code.  I feel very fortunate to have been born in the computer revolution so I could watch this fabulous change.

I've titled this blog "The Programmer's New Clothes" as a suggestion that, much as the author of "The Emperor's New Clothes" suggests we often follow the crowd in a very silly manner. Ideas that do not deserve the import we dote on them can live WAY beyond the period whence we have discovered their significant weaknesses.  

I don't intend this blog to be a "bile blog" (which I adored BTW).  In fact I don't think most of the entries on this blog will be critical at all.  Rather, the goal is to shine the light on subjects that are important but don't get enough thought.  I'm going to try hard to avoid "false assumptions"  and "leading questions" but I know I will fall into those traps.  Thank you for your patience.  I hope you get some value from this blog.

OK...let's go!


Comments

Popular posts from this blog

Managing Risk and the Shadow Backlog

As an approach to developing software agile has had a profound impact.  There are many great architectures, languages, libraries, frameworks, etc. that have helped software engineering get better. But in my experience almost none of these has been as important as the process of agile. There are many advantages to agile but one of the most important but least articulated (especially to executive leadership...who should care the most) is risk management.  Unfortunately, this aspect of agile can also be misunderstood by the practitioners: the development and test team. So why does agile reduce risk?  Because the agile process creates transparency.  Nothing creates more risk than hiding information.  Nobody can make a decision to reduce/avoid risk if they are not operating with good information.  This is not to suggest that teams who are developing using waterfall approaches are intentionally hiding the truth of their project's progress.  Rather, the p...

We need a new front-end language

I like to preach to software engineers that       the essence of software engineering is    designing for complexity . I also preach that       coding = design . So transitively speaking       coding = designing for complexity . I deeply believe this (and you are going to hear it often in this blog).  While there are many important skills a coder brings to the job designing for complexity (DC henceforth) is our bread and butter. Yes, there are other important talents we bring to coding... Performant algorithms, Cool animations Understanding new and adjacent new technologies etc. These are important and often are the most fun part of the programming job but we spend most of our time (80%+) on DC.  A good programmer is thinking about design when writing every line of code.  "How will it relate to the other code in this app?", "how will it stand-up to change?", "will the next developer (or even me 6 month...

Write your own router

In my formative years as a coder and architect I was mentored by several very talented engineers. One of them helped me understand a general goal of all engineering: simplicity. The best engineering is elegant in it's simplicity. Vehicles are my favorite example. The wheel itself? Incredibly simple, cheap and by far the most important component of a rolling vehicle. The internal combustion engine? A massively complex, polluting machine which we still struggle with more than 100 years after it's invention. I am so excited to see the electric motor become the heart of the automobile! In software engineering our goal is to create highly functional systems without creating great complexity. This is hard enough in itself but sometimes we needlessly create complexity by misuse (or lack of use) of borrowed code (e.g., libraries).  Good engineers are always on the lookout for borrowed code which solves a problem. The boon in open source in the last couple decades has made this a rou...