Software Development Life Cycle
I decided that it would be worth it to spend the time to bring in a SDLC.
Source Code Management
We were using TortoiseSVN and well who doesn't love a centralized source control system? It's slow, painful and not very team friendly. So…. I guess me, I don't. I brought in GIT, installed GOGS, a freeware self-hosted git service, and installed Jenkins. I was able to convert projects that I used often to build automatically using MSBuild and MSDeploy. So now at the click of a button, I am able to build one or more projects and deploy them to test or production.
Kanban
We are using Assembla for bug tracking. It was Kanban 'like' so we started using that to start moving in the Agile direction.
Azure/DevOps
We were still missing parts, so to complete it, I suggested to our CIO we replace our VMWare environment with Azure on Prem. We were using some Azure in the cloud but it did not make sense to me that we have a completely different environment on prem. Then we replace Assembla with Microsoft DevOps and bring that on prem. This way we can have full control, in an organic environment. We would have projects define in DevOps where would could have a wiki with a project explanation, server information, configuration information, etc – basically a central place where we can keep all the information about the project, your one source of truth. Then DevOps has a great Kanban board that is integrated with other parts of the system. We use the repo DevOps provides to replace Gogs. Use Azure pipelines to replace Jenkins so we do not have to manage that. Add unit and system testing using DevOps. Allow for pull requests when we have code changes. And allow someone other than a developer to deploy a release to production so that the engineers do not have access to production, which is a common request. The next steps are to migration to .NET Core from .NET for many reasons but one main one is that it integrates better with DevOps. Also I wanted to, for cost reasons, deploy our WebAPI to Linux instead of Windows and lastly, move this ALL to Docker containers.
CI/CD
Doing most of that gives us a usable, showable and standard way to do CI/CD.
