About the Author

Keith Shakib

Keith is a Principal Consultant with Keyhole Software. Keith has been consulting in Kansas City since 2000 and before that was an Advisory Software Engineer with IBM. His 30+ years of software development has progressed from Cobol, Basic, and C, through C++ and SmallTalk, and on to Java/Java EE where he has focused most of his attention for the past 15+ years. Keith enjoys starting and finishing projects and considers himself above all to be a "pragmatist".

Quick Look: java.util.stream Examples

Keith Shakib Development Technology, Java Leave a Comment

Some of us take for granted the newer features in Java, but, being a software consultant, I get to be involved in projects that are sometimes constrained to older versions of Java. The features from Java 1.8 that I have enjoyed for a few years are brand new to others.

I wrote this blog as a primer for those who are just getting started using java.util.Stream classes, or for those who haven’t had a chance to take a look at them until now. The quick topics below represent just a sampling of some of the ways to be more productive using java stream classes. Rather than providing a tutorial on how the classes are used, I’ll attempt to explain by example.

Refreshing Your Scrum

Keith Shakib Agile, Consulting, Design, Dev Methodologies, Soft Skills 3 Comments

Most of us now have some experience with Agile Scrum practices. Many of us have had years of practice on multiple processes. As a consultant, I have the opportunity to see many differences in how organizations implement and practice the most popular development process methodologies.

While the prescription for good practices is well-documented, many of us have lost our “mojo” at least once and seen many of the benefits of using the process decline.

In this blog, I will indicate some key points required to return to optimal agile performance. I will highlight three common pitfalls, some common causes of those problems, and reminders of how to get back to a high-performance Scrum implementation. Let’s dive in.

Technical Debt – Observe, React, Prevent

Keith Shakib 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.

Introducing Cucumber for Java + STANDARD Values

Keith Shakib Agile, Dev Methodologies, Development Technology, Java, Testing 1 Comment

Attention: The following article was published over 5 years ago, and the information provided may be aged or outdated. Please keep that in mind as you read the post.As software developers, we all have our favorite tools for making us successful. Many are perfect for the job when getting started but are soon outgrown. Others require too much setup and …