Three Terms in Software That We Should Consider Retiring 

There are some terms in common use in the software industry that, while originally well-intentioned, have since become damaging rather than useful.  "Sprint" Sprints were originally meant to create some focused time for engineers to give them space for concentration and deep work. They are only supposed to happen periodically, and in between less intense … Continue reading Three Terms in Software That We Should Consider Retiring 

Let’s Replace the Term “Technical Debt”

If you work in software for any length of time, you'll eventually hear of the term technical debt. It refers to something that isn't that well designed and will be a costly maintenance headache in the future. It's supposed to conjure scary images of short-term technical shortcuts causing future pain. While well-intentioned, I think the … Continue reading Let’s Replace the Term “Technical Debt”

How to write software that is ready for the world

The conventional wisdom in software development has always been that internationalization (i18n) is a very expensive and time-consuming effort, and that it's always better to target just one language first, adding support for more languages later, when the market demands it. Because of that perception, multilingual support is not often considered during the early days … Continue reading How to write software that is ready for the world

Understanding Software Engineering Job Titles

The world of professional software engineering is full of titles and grades. Employers use job titles as a means to help them build new teams with the right mix of talent, attract the right caliber of candidates when hiring, create attractive career paths and assist with compensation planning. However, many companies assign titles differently, making … Continue reading Understanding Software Engineering Job Titles