Chapter 2
So ware Development and
Design
This chapter covers the following topics:
Software Development Lifecycle: This section covers the Software
Development Lifecycle (SDLC) and some of the most popular SDLC
models, including Waterfall, Agile, and Lean.
Common Design Patterns: This section covers common software
design patterns, including the Model-View-Controller (MVC) and
Observer design patterns.
Linux BASH: This section covers key aspects of the Linux BASH shell
and how to use it.
Software Version Control: This section includes the use of version
control systems in software development.
Git: This section discusses the use of the Git version control system.
Conducting Code Review: This section discusses using peer review
to check the quality of software.
Are you a software developer? This has become an
existential question for traditional network engineers, as
programming and automation have become more
pervasive in the industry. Professional programmers
have picked up software integration with infrastructure
gear as a new service or capability they can add to their
applications. Traditional infrastructure engineers are
being expected to know how to use APIs and automation
tool sets to achieve more agility and speed in IT
operations. The bottom line is that we are all being asked
to pick up new skills to accomplish the business goals
that keep us relevant and employed. This chapter
discusses a few of the fundamental principles and tools
that modern software development requires. You will
learn about Agile, Lean, and common software design