SCM ?? DevOps ?? What...???

SCM ?? DevOps ?? What...???

SCM through the trenches.  
With over 20 years doing SCM.  Why can't you do DevOps? 

Thank you for your email, this seems like an interesting opportunity, however I am only available for contract as a build and release specialist.

My career focus is on being a Software Configuration Management Specialist.
A mark of being successful in this field is to specialize in Build and Release Automations. Of course once the processes and automatons are complete there is no more work for me, which is the main reason I only do contract work. I’ve found this to be the case in all my roles as an SCM specialist outside of large software corporations, financial or insurance houses. I’ve also noticed that the nature of this role is one that ensures quality but does not actually generate revenue.  Often these jobs can quickly become earmarked for a later date as they are often considered non-cost effective.

Due to that uncertainty in the workplace, the nature of the changing technology within these industries, and without the challenges offered by new automations once the initial automation is complete long term projects with the same routine scope does not appeal to me.  While many people would enjoy such an opportunity, my nature requires a constant challenge to keep me engaged.

Entering the workforce at a very young age, I was on my own by the age of 15. The only way for a teenage kid with a grade 9 education to get by in life was working full time labour jobs. I did this mostly in manufacturing either on an assembly line or in the back warehouse as a shipper receiver.  These experiences continue to pay off today, as they gave me background knowledge of how all parts and components can come together to make a whole system function smoothly.

By the age of 27, I had been working as the shipper/receiver for Entre Computers in downtown Toronto and had been there for about 2 and half years in the late 80's and very early 90's.  At that time Entre Computers was winning awards for being the number one Computer House in Toronto for both sales and service.  While watching my colleagues get wealthy while I got dirty I began to feel the effects of a life of labour and I committed myself to gaining higher education.  

Now in my 23rd year in the Computer Software Industry I’ve dedicated over 20 of those years specializing in the science of Software Configuration Management (SCM). I believe my early life experiences, combined with the age I was when I entered the industry propelled me into leadership roles extremely early into my career.

I know the term SCM has been used to mean different things by different people like:

Source Code Management when referring to the version control system,

Software Change Management when referring to the change management system.

Software Configuration Management, a practice that encompasses the process definition and functional administration for those tools as well as the issue tracking system, the build system, and the release system - which is how I think of the term.

As I mentioned previously due to the volatility and nature and the brevity of the roles my specialty provides my experiences have been very diverse. I have had the fortune to have been engaged in many different industries, and benefitted from the continuous learning opportunities presented by new technologies and process frameworks. Thankfully this field of work continues to offer me these great opportunities with every new job I take on, including my current engagement.

The role of an SCM specialist requires the ability to communicate and collaborate work activities across internal departments and/or business units. Dependent on the nature of a company's business that may also include their customers for User Acceptance Testing. The ability to communicate at all levels within the corporate structure is a necessary skill for someone in this position to achieve and one I feel I excel at.  Without this skill gaining the required collaboration needed to implement an SCM solution into an organization will be difficult at best, and a solid automation will save the day but not for long.  

Regardless of a corporation's choice in process model framework be it traditional waterfall, something in the agile realm or a combination both which I commonly refer to as waterscrum, I consider myself an expert in the knowledge areas of SDLC processes pertaining to SCM.  I’ve outlined the areas of my expert SCM knowledge below:

Process:

Process identification, description, design, and implementation for both creation and continuous improvement.

Technology:

The technology identification, description, design, implementation, versioning, and archive retrieval pertaining to the integration of all underlying technologies required to satisfy the defined process, the continued integration of those technologies, and the ability for two way communication between the technology and the processes that both defines the technologies behavior and the processes workflows.

People:

The ability to effectively ease the common human reaction to resisting change in their work environment.  This is achieved  through communication, education, and leading by example.

SCM specialists are schooled to see the larger picture of the Software Development Life Cycle (SDLC).  A good SCM specialist can take that big picture and whittle it down so the end user can manage the work activities for a delivery pipeline including, Automated and Manual processes, Archive Retention, Status Accounting, and Change Management.  With integrations to the Business, Project/Product Management, Development, Data Base, Quality Systems, Quality Assurance, IT/DevOps, and Data Centre for both systems and personnel.  This of course accounts for a full Reporting or feedback loop.

The difference between an SCM person and a Process Improvement Specialist is that the SCM person is able to go beyond the processes they just created, and create the technology integrations, step by step automations, as well as clearly documented steps for any necessary manual requirements to support them.  An SCM specialist’s end goal being an Archived Versioned Artifact of the company’s product that is fully tested, stable, and releasable.

I always take the time to work with the IT departments to some capacity on each project. In the early days it was primarily gaining their support for physical maintenance on the servers for the System Tools that come under the SCM umbrella. Today, I work with these teams commonly known as DevOps to assist in automating some of their work processes.

Due to the rise in production systems through the evolution of technology as well as the introduction of security processes for separation of duties, the way companies release software has dramatically changed.  Software products are generally no longer required to be placed on a physical formatted device to be shipped to the customer.  And in most instances the software only runs on dedicated servers as a hosted web application. These servers can be maintained either internally by the software owner or a hosting service.  In most cases today the final delivery of software products from a company to its customers or internally in-house developed applications are being performed by persons outside of both engineering, and the quality system disciplines.  

The recent increase of the DevOps(Development Operations) movement, has increased the interest in my skills within the software industry.  However most organizations do not see the difference between an SCM (Software Configuration Management) and someone with a DevOps set of skills.  There is a misconception that the two are one and the same, they are very much different. In an effort to make things clear, I’ve written an overview of each role

Role: DevOps

Are responsible for a company's setup and configuration management activities surrounding that company's computer infrastructure needs, including the company's production systems.  They manage the setup and configuration of the company's software once it is approved for release into these systems. They perform any integrations for this software to databases, load balancers, security systems, reporting tools, and any other systems required to run that software within that production system while ensuring it meets any and all compliance regulations and standards for the nature of that software.

The configuration management activities performed, and the tools used for this activity are owned by the DevOps Team/Department.  However, the identification of these tools and processes must be communicated to the product team.  Collaboration of these processes and tools should be shared with SCM for integration points for release management, or the creation of a delivery pipeline, and feedback loop.

Due to separation of duties, this person should not have the ability to access any areas of a company's source code for their products.

Role: SCM

Are responsible for a company's source code management, the integration and compilation of that source code from development language to machine binary. The retention of the versioned artifacts produced from those activities. The status accounting of those activities, and the integration of those activities into the change management, issue tracking, and release management systems.  Providing feedback through continuous cross departmental collaborations and feedback provided through release meetings and as targeted detailed reporting throughout the SDLC.

Due to separation of duties, this person should not have the ability to access any areas of your Production systems.

I am in a similar boat having 23+ years in SCM experience, I started out being SCM, but I was also responsible for the infrastructure, some IT and adoption of CI/CD pipelines, Azure DevOps, deployment packages, but still not recognized as a "Senior DevOps Engineer" at my company. DevOps usually entails using tools like Terraform, Puppet, Ansible, Chef and knowing inside and out of Cloud Infrastructure such as AWS, GCP, and Azure. This is outside of SCM though.

Like
Reply

wow, clear explanation about SCM and DevOps differences! Down here in Brazil few people know the difference. Are you hiring intterns? kkkkkk

Like
Reply

Very informative, giving clear picture diff between DevOps and SCM.

To view or add a comment, sign in

More articles by Craig Nodwell

  • Meanwhile in Canada.

    This is just too enjoyable not to share. INNISFIL, Ont.

Others also viewed

Explore content categories