3. Operations (PM, CI-CD, Backup, Engineering)¶
Operations are the value-creating activities that transform the inputs into the final product.
Application deployment and operations required to build a software.
3.1. Project management¶
StratEx is a web application enabling Managers to control the delivery using customer’ processes enforced by conventions shared amongst the team members.
StratEx App: https://www.stratexapp.com
StratEx App documentation : https://doc.stratexapp.com
3.2. Programme Management¶
Program Manager Responsibilities
Organizing programs and activities in accordance with the mission and goals of the organization.
Developing new programs to support the strategic direction of the organization.
Creating and managing long-term goals.
Developing a budget and operating plan for the program.
Developing an evaluation method to assess program strengths and identify areas for improvement.
Writing program funding proposals to guarantee uninterrupted delivery of services.
Managing a team with a diverse array of talents and responsibilities.
Ensuring goals are met in areas including customer satisfaction, safety, quality, and team member performance.
Implementing and managing changes and interventions to ensure project goals are achieved.
Meeting with stakeholders to make communication easy and transparent regarding project issues and decisions on services.
Producing accurate and timely reporting of program status throughout its life cycle.
Analyzing program risks.
Working on strategy with the marketing team.
source: Program Manager Job Description:
3.3. Software engineering¶
Do you use source control?
Can you make a build in one step?
Do you make daily builds?
Do you have a bug database?
Do you fix bugs before writing new code?
Do you have an up-to-date schedule?
Do you have a spec?
Do programmers have quiet working conditions?
Do you use the best tools money can buy?
Do you have testers?
Do new candidates write code during their interview?
Do you do hallway usability testing?
Can you use source control effectively?
Can you solve algorithm-type problems?
Can you program in more than one language or technology?
Do you do something to increase your education or skills every day?
Do you name things appropriately?
Can you communicate your ideas effectively?
Do you understand basic design patterns?
Do you know how to debug effectively?
Do you test your own code?
Do you share your knowledge?
Do you use the best tools for your job?
Can you build an actual application?
3.4. Continous Integration-Continuous Delivery¶
3.4.1. Continuous Integration¶
Continuous Integration (CI) is straightforward and stands for continuous integration, a practice that focuses on making preparing a release easier. The acronym CD) can either mean continuous delivery or continuous deployment.
source : Continuous integration vs. continuous delivery vs. continuous deployment
3.4.2. Continuous Delivery¶
Continuous delivery (CD) is an extension of continuous integration to make sure that you can release new changes to your customers quickly in a sustainable way.
You automate your release process and deploy your application at any point of time by clicking on a button on a daily, weekly, fortnightly basis.
source : Continuous integration vs. continuous delivery vs. continuous deployment
3.4.3. Continuous Deployment¶
Continuous deployment (CD) implies that every change that passes all stages of your production pipeline is released to your customers. There’s no human intervention, and only a failed test will prevent a new change to be deployed to production.
source : Continuous integration vs. continuous delivery vs. continuous deployment
3.5. Backup¶
3.5.1. Which ressources do you need to backup?¶
Virtual machines running an Operating system (Windows, MacOSX, Linux…)
Databases (Microsoft SQL Server, MongoDB, Oracle Database, MySQL…)
File systems (Directories containing documents, images…)
3.5.2. Which strategy do you need to apply?¶
Store forever one full backup per year from January the 1st (Year Y1, Y2…)
Store everyday day one incremental backup for each resource
Store a full backup the first of each month
Store an incremental backup from Day 2 to the end of the month (31-1 backups)
Replace the incremental backup performed one month earlier (Month M-1)
Keep the full backup made once a month
3.5.3. Wrap up¶
Store in total :
12 full backups per year for each month (1st day of each month)
31 incremental backups for the last 31 days
1 full backup per year
Example:
Year 1 : 12 + 31 backups
Year 2 : 12 + 31 + 1 backups
Year 3 : 12 + 31 + 2 backups