Jacob Orshalick is a software consultant, open source developer, and author. He is the owner of solutionsfit, a consulting firm dedicated to aligning businesses with technology. His software development experience spans the retail, financial, real estate, media, telecommunications, and health care industries. Jacob is a DZone MVB and is not an employee of DZone and has posted 13 posts at DZone. You can read more from them at their website. View Full User Profile

Is this Experimentation or SOS?

07.24.2012
| 2409 views |
  • submit to reddit

Experimentation. It certainly provides value, but must be watched closely. Constantly trying new ideas and never landing on a consistent approach becomes a cancer for a project. If left untreated, it creates project delays, technical debt, and reduces velocity.

Experimenting is critical to the success of a project. It ensures that we find the best technology, the best approach, and the best design for the product. Constantly searching for new technologies, new approaches, and new designs becomes Shiny Object Syndrome (SOS). There are ways to combat Shiny Object Syndrome without squashing experimentation.

Experiment in the right context

Is this a one-off solution or something that affects the larger scope the project? Always ask yourself this question prior to experimenting. One-off solutions should be implemented as just that, a one-off solution. Don’t spend excessive time experimenting as the R&D costs will never pay off. In these cases, find a solution and run with it.

Always time-box experimentation

When you have a problem that impacts the larger scope of the project, put a time-box around the time you spend searching for a solution. Spending 2 weeks may be acceptable within the context of a project, but spending 2 months is likely excessive. Pick a time-frame that makes sense within the larger scope of the project. In agile terms this is often called a spike and allows time for a team to wrap their arms around a problem.

Experiment early on

Once a team has attained a high velocity and has a stable approach to the problem being solved, the benefit of experimentation may decrease. There are maintenance benefits to code consistency and a consistency of approach. It may make sense to continue the same approach for the current project until completion, but once again experiment on the next project.

Innovate with appropriate technologies

Innovation is critical to help companies achieve better return on investment from their software investments, but make sure your innovation isn’t misusing a technology. Each technology has a sweet spot. This is where the the technology shines and increases your ability to succeed. Used the wrong way, a technology can hinder a project, or worse, create issues that are only found once the project is released.

Experimentation can make your project a shining success, but make sure you follow these tips and avoid shiny object syndrome.

Published at DZone with permission of Jacob Orshalick, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)