Why Your Last Software Project Failed (and How to Avoid It Next Time)

If you’re running a mid-sized business, chances are you’ve had at least one bad experience with a software project. Maybe you hired an offshore team that promised the world and delivered… crickets. Maybe you had developers who just ghosted you when things got hard (you started critiquing the work). Or maybe you went live with something that looked good on the surface but crumbled the first time your team tried to actually use it.

software project failures mitigation

Software Project Kickoff Checklist

Use this checklist before you start your next software project to avoid wasted time, money, and frustration.

software project checklist kickoff

Agile Is Pull-Based — Waterfall Is Batch-Based — And That Makes All The Difference

In manufacturing, there’s a world of difference between a batch-and-queue process and a pull-based flow like the [Toyota Production System](https://global.toyota/en/company/vision-and-philosophy/production-system/). The same is true in software development.

Agile Software Engineering Project Management Waterfall

Want to Leverage AI? Teach Your Business to Talk to Itself First

Every company wants to harness AI. Dashboards aren't enough. Everyone wants real-time answers, recommendations, forecasts, and action. Start your journey with ChatOps.

AI chatops journey CTO Insights

AI Is Boosting Senior Dev Productivity - But What's the Long Game?

It's no secret that AI is making software engineers faster. Tools like GitHub Copilot, ChatGPT, and countless other code assistants are already supercharging productivity, especially for experienced developers who know how to wield them well.

AI Software Engineering Productivity Mentorship Team Building CTO Insights

I take everyone who says AI is replacing software engineering jobs seriously

I'm taking everyone who says AI is replacing software engineering jobs seriously. Which means that every interaction I have, every task I accomplish, I take a step back and think through what would have to be in place in order for AI to do this?

AI DataEngineering SystemsDesign Integration FridayNightDebugging Leadership Compliance Observability HumanInTheLoop yesimtalkingtoyou

I Don't Want to Build Another Jira

I don't want to build a Jira clone. Jira excels at being Jira. Trying to compete with that directly would be missing the point. Instead, I see an opportunity to address an essential gap in how teams use tools like Jira and how they collaborate to build meaningful products.

agile teams reloaded jira

Flow vs Batch Based Work in Software Development

In the world of software development, the traditional approach often involves large batches of work, where teams are booked up for months and new features or changes have to wait in line. This approach can lead to long lead times, significant delays, and a constant need for re-prioritization, often involving lengthy discussions with stakeholders.

agile lean tps toyota production system software flexible

Strategic Planning - A Lesson from Kent Beck

Kent Beck invented Test-Driven Development (TDD), inspired from one of his dad's programming books. One of them said, here's how to write a program. You take the input tape and you manually type in the output tape that you expect; and then, program until that's the output tape that you get from that input tape.

strategy planning goals objectives tdd

Everybody wants a flexible system

A system that is easy to change over time. Maximize ROI. Be responsive. Competitive. Adapt to a changing environment.

architecture software flexible

Does Agile Software Development Scale?

Of course it does. But that's the wrong question. Because Agile Software Development is directly related to computing power and so it has similar scaling qualities.

agile scale

Resuscitating Hubot

According to GitHub stats, Hubot development stalled after 2015. There was a little bit of activity in 2017 and 2019, but not enough to consider the codebase under active development. I'm resuscitating Hubot.

hubot chatbot 2014

Software is like a garden

Software is like a garden when you invest. You till the ground, plant the seeds and maintain it daily by pulling weeds, watering, checking for good and bad insects.

softwareengineerin analogies buyvsbuild

Error loading shared library libcairo. No such file or directory

Building alpine Docker image for NodeJS app using node canvas and getting error from libcairo. The lesson learned is libcairo depends on the installed packages still being in the image and I wasn't including them.

whyprogrammingissohard

An Omni-channel Technology Strategy

I went through an excercise to develop a technology strategy for a fictional retail company which merged 2 IT teams.

strategy architecture

Tactical suggestions for developing non-coding skills

As software engineers, we focus our time and attention on learning how to write flexible software; one aspect to building great systems. We often neglect non-coding, communication aspects of building great systems.

skills

Use Safari Instead of Chrome with Angular (ng test)

I don't use Chrome. I'm a rebel I guess. So when building Angular apps and practicing TDD, I wanted to configure Karma to use Safari instead of Chrome.

programming is hard

Software Engineering

What is Software Engineering

software engineering

Isolated Application Development

Application dependencies can slow down development because you're waiting for them to add a field to their API or update their module with the feature you need.

isolated

The Difference Between SOLID and Design Patterns

So with the talk of learning a design pattern and not trying to shoehorn it into everything, is SOLID one of those things where its use case is specific to a task or is it generally just something to follow?

solid design software

Process

I never considered myself a process oriented person

process

Stop Trying to Scale Agile

STOP. TRYING. TO. SCALE. AGILE.

agile scale organizational

What is Architecture

Domain boundaries, Component responsibilities ...

architecture

To Make Money is Not a Useful Objective Statment

About 10 years ago I was part of a meeting where the CEO of the company was trying to convey his vision of the company and it's core service to customers. I asked the room what the objective was and someone jokingly answered, "to make money" and the meeting continued ... and finished.

objective

Don't Follow Spotify's Agile Model

It's easy to fall into the trap of thinking that you could copy the Spotify model presented in Henrik's Spotify Engineering Culture Videos as a way to Scale Agile. Well of course it's easy. They're organization continued to be agile as they grew. Henrik really makes it look easy and amazing! It's really very aspiring, so it totally makes sense.

agile spotiy leadership

Setup a Raspberry Pi

Ready to talk.

experimenting

I have 2 Mac Minis

And I want to create a cluster so that I can deploy some apps to them.

experimenting local

Agile

agile adj. - Characterized by quickness, lightness, and ease of movement; nimble.

agile

Team Process Framework, How We Work

Routine enables us to move fast in a sustainable velocity. So we have 6 meetings during our iterations. It's simple, focuses on solving the misalignment problem, and periodical (repeats every iteration).

team process

Story Points, So Many Questions

Tony likes to push my buttons sometimes. He knows what my opinion is about how and why teams should estimate stories. So I get a text from him today, asking me what I think about Do Story Points Relate to Complexity or Time?. I'm compelled to bite. I can help it, but meh, it's easy to post things to the internets.

story points scrum

Why people say Test Driven Design (TDD) is hard

I've been working with my team to practice Test Driven Design (TDD) for about 2 years. They just started REALLY doing it about 4 weeks ago after I finally gave them the permission they needed to do it. And even now, they don't feel comfortable because it takes them longer to finish development. Below is my story of how I kick started the team practicing TDD and my observations of what I think are keeping the majority of Software Engineers from following the practice.

tdd

Coding and Code Review Guidelines

In order to reuse code, it must pass the teams measurement of readability and discoverability.

review code

Delusional Conflict

Or rather, you think there's going to be a conflict about a particular subject and so you don't even broach it. You don't even know if all the subsequent decisions and problems could've been avoided had you just asked.

psychology

Steps to Creating a DevOps Culture in an Organization

I started out writing a verbose post about how to create a DevOps culture in an enterprise. After sleeping on it, I realized that people really need tactical suggestions on how to create a DevOps culture, not just a description. So here's a DevOps Culture todo list.

devops

Dream Team

I want to work on a team who's culture has these characteristics.

team

Definition of Quality in Software

Has your boss ever asked you to increase your code quality? How did you do that?

quality software

I Want to Increase My Output by 10, 100, 1000

I want to capture and share my journey about how I increase my work output as a software engineer by multiples of 10, 100, 1000.

career

I'm a programmer, I'm coding my own blog engine

This has been a long time coming. I've preached about blogging for years and yet, have never done it myself. Well, I have but back in 1997 and I didn't keep it up and I don't have proof. And I'm a big believer programmers should write code and if you're a programmer AND gonna write a blog, you should write the blog engine yourself. It shows off your talents, or lack there of, and you'll learn something along the way.

coding