Related Specializations and Techniques



index
Disabled back buttonNext Section
printable version




Section 0: Module Objectives or Competencies
Course Objective or Competency Module Objectives or Competency
The student will be introduced to related specializations and techniques for software development. The student will be able to explain development stacks, like front-end development, back-end development, and full-stack development.
The student will be able to explain alternative software development techniques, like CI/CD, DevOps, and 12 Factor Design
The student will be able to explain the Agile software development methodology.


Section 1: Overview

There is a multitude of specializations and emerging techniques that are too detailed or advanced for a beginning Analysis and Design course, but which students need to be introduced to.

These will be divided into three areas:



Section 2: Development Stacks

A tech stack is broadly divided into the client side (front end) and server side (back end).

Developer Skills.
Front-end and back-end skills

Front-end Developer

Front-end development refers to the client side, that is, a website’s interactive features.

Front-end developers must be adept at three main languages: HTML, CSS, and JavaScript programming.

Back-end Developer

Back-end development refers to the server-side development.

Back-end developers also create and maintain the entire back end of a system, which consists of the core application logic, databases, data and application integration, API and other back-end processes.

Full-stack Developer

A full-stack developer can work cross-functionally on the full stack of technology, i.e. both the front end and back end.


Here are some figures detailing the differences between front-end and back-end developers:

Developer Skills.
Brief front-end and back-end tools

Front and back end tools.
Detailed front-end and back-end tools

Front-End vs Back-End.
Front-end vs. back-end


Section 3: Software Development Techniques

A wide variety of software development techniques is available, with DevOps, continuous integration (CI) and continuous deployment (CD), and the 12 Factor Design Methodology becoming more widely used.

CI/CD

Continuous integration and continuous deployment (CI/CD) are often cited as pillars of successful DevOps.


DevOps

DevOps is a portmanteau of Development and Operations, and is based on the realization of the value of collaboration between development and operations staff throughout all stages of the development life cycle when creating and operating a software system.


12 Factor Apps

12 Factor Apps, sometimes referred to as the 12 Factor Design Methodology, is an app design methodology that was introduced to manage cloud-based apps.

The 12 Factor App methodology is a set of principles that describes a way of making software that, when followed, enables companies to create code that can be released reliably, scaled quickly, and maintained in a consistent and predictable manner.



Section 4: Mobile App Development

A mobile application, commonly referred to as an app, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer.

Mobile application development is the process of writing apps, and typically requires experience in languages like HTML5, Swift, and Ionic.


Progressive Web Applications (PWA)

A progressive web application takes advantage of the latest technologies to combine the best of web and mobile apps. Think of it as a website built using web technologies but that acts and feels like an app.



Section 5: Agile Approach

The Agile Software Development Methodology is an umbrella term for a set of practices that emphasize close collaboration between the development team and business stakeholders, frequent delivery of business value, tight, self-organizing teams, and smart ways to craft, confirm, and deliver code.

An Overview of Agile Development


Agile Project Management

Project management involves initiating, planning, executing, controlling the work of a team to achieve project goals.

Agile project management focuses on continuous improvement in the development of a product or service.


Agile Analysis and Design

The Agile analysis and design approach uses an iterative process to deliver small incremental releases at short and regular intervals known as sprints or iterations.


Scrum Master (Agile)

Scrum, according to Scrum.org, is a framework that allows teams to work on complex projects and deliver high-value products by approaching problems adaptively.

The Scrum Master role was created as part of the Scrum framework; the name was initially intended to indicate someone who is an expert at Scrum and can therefore coach others.


Software Release - Agile

Software release management is the process of managing, planning, scheduling and controlling a software build through different stages and environments, including testing and deploying software releases.

Agile methodologies produce software releases at the end of each iteration.


Lectures from another professor

Agile Development

eXtreme Programming


Online Resources

Agile Project Management: Best Practices and Methodologies

What are the Different Types of Agile Methodologies?

The Seven "Flavors" of Agile

Agile Methodology

7 Agile Software Development Methodologies



Section 6: Closing

The most enchanting aspect of a career in Information Systems or Computer Science is the opportunity to continue learning throughout your life, as no field changes more quickly or inexorably.

The most daunting aspect of a career in Information Systems or Computer Science is the responsibility and the requirement to learn and adapt as these changes take place.

Portmanteau

A portmanteau (pronounced port-MAN-toe) is a word made by blending at least two words.