Writing High Quality Code

Writing Quality Code: Practicing “Make It Work, Make It Right, Make It Fast”

Rik Scarborough Articles, Programming, Soft Skills 1 Comment

Kent Beck, a software engineer famous enough to have his own Wikipedia page, is quoted as saying, โ€œMake it work, make it right, make it fast.โ€ A quick web search will show you several pages discussing this quote, some in great detail.

So, Iโ€™ll write another, and hopefully, Iโ€™ll provide two things to build on the existing literature. First, Iโ€™d like to put this concept in front of some programmers that might not have heard it, or if they have, havenโ€™t taken it to heart.

Second, Iโ€™ll provide my own philosophy on the subject. Maybe it will different enough that youโ€™ll get something new from it. I do have a slightly different take on it. Although I donโ€™t want anyone to change the quote, maybe we can instead think of it as, โ€œSolve the problem, make it maintainable, and make it perform.โ€

Microservices Anti-Patterns

Dallas Monson Agile, Articles, Consulting, Microservices 1 Comment

Microservices? Yeah, youโ€™re doing it wrong.

Microservices is a silver bullet, magic pill, instant fix, and can’t-go-wrong solution to all of softwareโ€™s problems. In fact, as soon you implement even the basics of microservices all of your dreams come true; you will triple productivity, reach your ideal weight, land your dream job, win the lottery 10 times, and be able to fly, clearly.

While this sounds like a lot of hyperbole wrapped up in some BS, if you have been listening to anything around microservices recently you will most likely have heard something not too far from this exaggerated sentiment – especially if it is coming from sales folks.

As a result of this, you or someone you know will likely have been charged by management to implement a solution in microservices or refactor an existing application to take advantage of microservices to ensure that you get all the magic. With so much overinflation of the truth out there, chances are you may have also implemented a microservices antipattern. These antipatterns are actually more common in the wild than fully functional microservices architectures.

Overview
In this post we will cover the most common antipatterns that I have witnessed in the wild:

Break the Piggy Bank
Everything Micro (Except for the Data)
We are Agile! a.k.a. The Frankenstein

Each one of these results from a common misconception. We will do our best to define these patterns and their symptoms. After each, we will also show a way out of the mess so that you can recover and begin to move towards a better implementation. Letโ€™s get started!

Web Development Business

Technical Debt โ€“ Observe, React, Prevent

Keith Shakib Articles, Consulting, Opinion, Soft Skills Leave a Comment

The term โ€œtechnical debtโ€ was coined over a decade ago to help highlight a common problem in software development. Generally you can think of technical debt like this:

The cost of additional rework created by choosing an easy, shortcut solution now instead of the better approach that would take longer.

Delivering software to meet deadlines or functional goals that are wrought with technical debt is like buying items before you can afford them. Both practices can drastically affect your ability to reach your future goals, both long term and short term.

This article is a gentle reminder to recognize, fix, and avoid technical debt in your software projects.