As I work through the OCG, I will throw up notes on what I cover up to exam day!
For more in depth explanations of the theory of topics I would refer to my “DevNet Class” articles for really in depth notes which are good to know, but I will be posting smaller and easy to digest posts here leading up to exam day, its good to have many resources for study and these will be a culmination of the OCG / CBT Nuggets / Cisco Study Group notes.
With that, I will just be covering SDLC / Methods in this post, keeping it short and sweet!
SDLC (Software Defined Life Cycle) – The Blueprint to planning Software Development
SDLC defines a 6 step model of how to developed software without the “Cowboy Coding” style, it is not actually a “model” like Waterfall / Agile / Lean, here are the 6 steps in SDCL:
- Stage 1 – Planning – AKA the “requirement analysis” stage, this is looking at the problem by the customer or stake holders need resolved, use cases for it and the desired outcome
- Stage 2 – Defining – This stage is about software review and defining what it does
- Stage 3 – Designing – Important phase! Turning Software Specs into Design Specs, must be on same page / in agreement with customer to proceed, crucial for successful outcome
- Stage 4 – Building – Once Design Specs are completed the programmers get to work building the software, this stage considered the easy part
- Stage 5 – Testing – Self explanatory, software is tested to ensure it meets requirements before deployment into the Production environment
- Stage 6 – Deployment – In SDLC terms this is getting the end product to users as essential the final stress testers, this is really its own topic on Deployment Methods, and CI/CD methods to continuously push updated versions with bug fixes or new features
SDLC Model List – Several to know but only 3 really focused on for DEVASC
I will bullet point out a list of all of the current models, however for DEVASC at this time there are only 3, which I will re-cover very lightly (see my Class notes for depth), :
- Big Bang
The others are maybe good to know and maybe google just for the heck of it, but our three for DEVASC is Waterfall / Agile / Lean which I cover painfully in my DevNet class material so here I will only be making quick notes and new buzz words I see associated by the OCG.
Waterfall Method was built using the same pricniples as build a structure back 1950’s timeframe, when there was no other models to go frome, so the Software Development model was devised with building a physical structure in mind which has been improved upon.
As illustrated it is meant to be each step completed before moving onto the next, if issues are found at one step it is not meant to move backwards (hence the Waterfall name), and likely a new Iteration would be needed of the entire flow of work possibly driving up costs and not meeting deadlines agreed upon with the client – So newer models were in need!
The three major flaws of Waterfall:
- Project Scope and Planning is statically defined and agreed upon in “Requirements / Analysis” phase, so changes to a project means starting over most of the time
- There is no value in the project until the end point (Operations / Deployment), as there is no value in a partially completed project, making it hard to show value during the project
- Time / Quality, Waterfall has very static goals defined for the project, so once time starts to wind down if things did not go as planned (which they rarely do), some quality control might be skipped to get the project out the door / meet customer deadlines
I learned in the OCG this was actually born out of Japan after being destroyed by WW2, the entire country had little resources to spare, and had to re-think how to reconstruct their society with as much as precision and little waste as possible – Interesting fact.
That being said, there are really three main components to Lean Methodology:
- Elimination of Waste – Time, resources, redundant work, waiting around, all forms of waste that needs to be eliminated to get the most productivity out of effort
- Just-In-Time – Don’t build until someone is ready, as unused products is a lot of different types of Waste (resources, money, time, effort)
- Continuous Improvement – Communication is key to review lessons learned to improve processes to maximize output from effort put into the project
This was a huge improvement over previous and out-dated models such as Waterfall, and gave way to the next method which is derived by the Lean Methodology!
The wording of this may be important for exam day – “Agile is an application of Lean Principles to Software Development” – Not “Project Mgmt” or any other wording that might be used, Agile borrow Lean Principles of SOFTWARE DEVELOPMENT!
While Waterfall is called “Serial” Methodology meaning slow, Agile works in what are called “Sprints” of work that include all steps of the SDLC process in a short duration, being able to show value / embrace changes in the project / feature driven / Etc to constantly have a product ready to (but not necessarily is) present to the customer constantly.
Agile Method projects are meant to be highly flexible, continuously pushing out new products and features, and each “Sprint” should result in tested usable code.