Monthly Archives: June 2016

Continuous Delivery is a Solution

The rush is on!  Software development organizations everywhere are rushing to implement Continuous Delivery.   It seems as though being ‘continuous’ is the answer to every company’s success story.  Successful adoption of the continuous movement is synonymous with product development success, but an important distinction is missing.  Continuous Delivery is a solution; not a development process.

I’ve been around long enough to see a few ‘one size fits all’ solutions go too far.  One time in the late 90’s, someone proclaimed to me that object oriented programming would be replacing every bit of procedural code in existence.  COBOL was out, C++ and Java were in.  OO was all the rage.  But last time I checked online, my bank transfers are still not entirely real-time operations.  The debit side happens right away, but the deposit happens during an evening batch processing run.  Some kind of procedural programming run is still in there.

Puppet and Chef are great tools, but what process do you follow when deciding if you need them?  Is it simply a, “follow the herd decision?”  Did the loudest, most passionate developer make the decision for you?  Is continuous deploy the right solution for your build environment?  Did you create a set of requirements, analyze them, and select accordingly?

Of course, it’s not that these continuous solutions are bad.  Quite the opposite; they are great solutions.  It’s the notion of a single solution being right for every problem that doesn’t sit well with me.  Herd mentality appears to have kicked in and everyone, it seems, is on a rampage to pursue this great new silver bullet.

Continuous integration is something many of us have been working toward for the past 15-years of software engineering.  I think of continuous integration, continuous test, continuous deploy and all the others are as nothing more than pieces of a puzzle.  They are great pieces and suitable for many organizations.  CI is an easy way to say, “one requirement of my SCM environment is end-to-end, unattended build automation.”  Are these other continuous solutions anything more than the same principles applied to the rest of the development processes?  Is continuous test the right way to test every software product? Is continuous deploy the right solution for your deploy?

A better choice for is the pursuit of a process to determine the best solution for creating and delivering our software.  If the solution produced by the process is Continuous Delivery, and it just might turn out that way, then awesome.  But if it’s not, you will be well on your way to figuring out the best solution for your situation.

My suggestion is to use an SDLC approach for determining if one or all of the continuous solutions are right for your project.  Start by understanding the stakeholders and defining the requirements instead of rushing to the answer.  Follow the process through implementation and maintenance and listen to the feedback.  Using an SDLC to determine our internal development processes means our stakeholders are internal.  Some are easy to find, but others are quiet and you will have to look for them.

This site will never be a one-stop shopping destination for everything related to the internal SDLC.  It is my intent to start conversations regarding various ways to effectively use and perhaps even formalize an SDLC to manage our internal development processes.  I think it’s prudent to view all of the internal development process together as a single system and evaluate effectiveness using the same tried an proven techniques we use for evaluating how successfully our business products satisfy the needs of our customers.

SCM is DISC

Successful SCM teams work with several different types of people.  Each of the various stakeholders types should be treated special in their own unique way.  This means the SCM professional needs to understand there are differences and must be able to quickly identify which type or types they are dealing with; as well as understand how to work with them.

One such difference between people is the Global vs Lineal distinction.  This difference was once creating friction between my wife and I, and it was several years before working in the software industry when a marriage counselor pointed it out to me.  Knowing that Lisa is a short-term, global thinking individual explained why our house was messy all the time.  At the time, she was a ‘have fun first,’ short-term, globally oriented person and I was a ‘work first’ long-term, lineal thinking person.  I wanted a clean house and she didn’t care as much.  We agreed to meet in the middle.  Sure, it cost a few bucks, but hiring a cleaning lady (to hide all her stuff in sensible places) is working out well for us.  Of course, it meant she had to get a job to pay for it!

Knowing this difference helped me understand working relationships at work.  Categorizing people worked most of the time as they would either be like lineal me, or global, which is not like me at all.  But work relationships are much more complex.  There are more types of people at work and fitting all of them somewhere on a one dimensional, global to linear line wasn’t working for everyone.  In fact, there were times when it seemed like a horrible fit.  There are some linear thinking people who are more like my wife and they were supposed to be like me; plus there were global thinking people who were more like me.

After continuing to struggle with the various personality types for several more years, I was introduced to the DISC profile through a company training session put on by Paul Jerome.  This DISC profiling technique added a new dimension to the mix for me.  I think of this new dimension as the people to data line.  Now I have four types of people categories instead of just first two.  As it turns out, I am located on the data end of this line and my wife is on the people side.  In other words, I am a linear-data oriented person and Lisa is global-people oriented.

Remember those folks who were hard to categorize?  They are the linear-people people, and the global-data people.   I think it’s important for you to know where you fit, and don’t be afraid to say you are on the line between two types.  That’s entirely possible.  Consider learning more about the standard DISC Assessment .  I find it hard to believe anyone could possibly work on an SCM team without understanding DISC profile or something similar.  This is why I think it’s safe to say…

SCM is DISC