The Software Development Life Cycle (SDLC)
4th stage of SDLC is Test
Test. The practice of Test Driven Development (TDD) has been gaining traction in the past few years. TDD is the process of building the tests first, then building the code to pass those tests.
TEST
TEST. Engineer gives demo to stakeholders and QA verifies functionality and integration with current code. Have the stakeholders approved the final product? Does the code pass the stress tests?
Sprint
Sprint: A timeboxed effort of delivering code. Sets the delivery expectations within a time limit, ranging from one week to one month.
4th stage of SDLC is Test
Test. In some organizations there are multiple levels of testing. Once the developer has built and tested their code for bugs and performance, the code is then assigned to Quality Assurance (QA).
4th stage of SDLC is Test
Test. QA tests not only the code, but ensures that the new code will integrate seamlessly with the entire code base. This helps to prevent surprises when the new code is integrated and goes live. Once the tests have passed, the code is approved to be deployed.
4th stage of SDLC is Test
Test. Testing and building go hand-in-hand. The old days of writing a bunch of code and then "throwing it over the fence" to the QA team to test are, thankfully, on their way out.
4th stage of SDLC is Test
Test. Testing while building speeds up the development process, improves the final product, and helps developers learn from and control the code they are building.
User Experience (UX) Designer
User Experience (UX) Designer: Focuses on understanding and designing for the end user's needs and expectations.
prototype
a first, typical or preliminary model of something, especially a machine, from which other forms are developed or copied
Build Automation
Build Automation: The process of automating the creation of a software build and the associated processes (i.e. compiling code, running tests).
BUILD. Development
BUILD. Development. A cycle of code being written and tested begins. How can we build for speed/ performance/security? How are we building for accessibility?
Back End Engineer
Back End Engineer: Works with the databases, platforms, and systems to deliver the data from the back end to the front end.
Back End
Back End is the data access layer of a piece of software.
archetype
the original pattern or model of which all things of the same type are representations or copies : prototype
DevOps Engineer
DevOps Engineer: Works with the system aspects of the software: Network, Databases, Automation and Security.
DevOps
DevOps: A software development methodology that combines software development (Dev) with information technology operations (Ops) to shorten the systems development life cycle and provide the whole team with continuous feedback on the success of the entire SDLC.
3rd stage of SDLC is Development
Development. Build. As they develop the code, they are thinking about building for efficiency, reusability and performance. Many developers are now building with a user-centric mindset and consider accessibility throughout their build.
3rd stage of SDLC is Development
Development. Build. Now it's build time! The developer will either solo code or pair program the solution, depending on the coding culture in their workplace.
Libraries
Libraries: A structured collection of resources that improve the speed and consistency for writing code.
Reminder - Recruiter
Once you better understand the workflow of your candidate and their thought process throughout that workflow, you will quickly see an improvement in the engagement, assessment, and hiring rates of technical candidates.
1st stage of SDLC is Research
Research. In this stage the developer may be reaching out to colleagues in different areas of the product team to gain a full perspective on the ticket.
A prototype
A prototype is an early sample, model, or release of a product built to test a concept or process
archetypal
Archetypal is original model or prototype.
DEPLOY
DEPLOY. Code is marked for delivery and engineers will coordinate with DevOps for the release. What are the system requirements? Who is responsible for maintaining code and any potential issues?
5th stage of SDLC is Deploy
Deploy. The deployment stage is when the approved code is integrated with the live code of the platform, app, product, or website.
Reminder - Recruiter
Don't miss out on good candidates! In your candidate search do not strictly keyword match. A skilled engineer can learn a new tool quickly. It's the breadth of their skills and experience you should look for.
Software Development Life Cycle (SDLC)
For the sake of learning, we are going to walk through these stages in a linear fashion (Waterfall). Bear in mind that in modern agile development many of these stages happen concurrently (Agile).
Framework
Framework: A package set of features that enforces a specific architectural approach. Provides consistency and efficiency by leveraging pre-established rules and structure when coding.
SDLC
SDLC: The Software Development Life Cycle is the engineer's process for developing. altering, maintaining, and replacing software.
Tech stack
Tech stack: An archetypal model composed of applications, programming languages, frameworks, and server requirements.
The Five Stage Process of Software Development
The Five Stage of the Software Development Life Cycle are Research, Design, Build, Test, and Deploy.
Software Development Life Cycle (SDLC)
The Software Development Life Cycle (SDLC) is the engineer's process for developing, altering, maintaining, and replacing software. It begins with a ticket and ends with live code.
Software Development Life Cycle (SDLC)
Working through the process of completing a ticket, the developer follows the five stage process - Research, Design, Build, Test, and Deploy. Depending on their team's workflow, their process will be closer to Agile, closer to Waterfall, or some form of both. Regardless of their approach, the workflow will touch all five stages of the process.
concurrent
concurrent means happening at the same time. concurrent means operating or occurring at the same time
iterative
iterative means doing something again and again, usually to improve it
iterative process
A process that repeats a series of steps over and over until the desired outcome is obtained.
Agile methodology
Agile methodology takes the same five stages of Waterfall, but applies them in short, quick cycles. This approach supports iterative design as testing and product feedback happen constantly, rather than simply at the end of the process.
BACK END
Back End. Languages: Java, C#, C++, PHP, Ruby, Python, JavaScript Libraries: .NET, Terrapin, C++ Standard Library Frameworks: Ruby on Rails, Laravel, Django, Express.js, JEE, Newton Soft, Flask, Spring, SpringBoot
Recent Project
Begin with an anchor question that allows them to dive into a past experience. Walk me through a recent project that you were on. What was the goal of the project and what was your role?
Configuration Management
Configuration Management: The process of ensuring all servers and systems are set-up consistently with the same software versions, operating systems, and hardware.
DESIGN
DESIGN. The high-level design is created and technical details are reviewed. Is there existing code that can be used? Are all user flows considered in the design?
DEVOPS
DEVOPS. Build Automation: Delphix, Datical, DBMaestro, Redgate, LiquiBase Configuration: Chef, Terraform, Ansible, Rudder, Puppet, Packer Release Management: XebiaLabs XL Deploy, UrbanCode Deploy, Jenkins Security: Checkmarx SAST, Signal Sciences, Black Duck, Snort
5th stage of SDLC is Deploy
Deploy. Most companies operate on a standardized schedule of when new code is deployed. This is called a release cycle. A release cycle could be weekly, every two weeks, monthly, or via continuous delivery, depending on the standards of the organization.
5th stage of SDLC is Deploy
Deploy. The developer will coordinate with DevOps to release the code into the wild. Once the code is deployed the ticket is closed and the developer is off to another ticket and the cycle begins again!
2nd stage of SDLC is Design
Design. A high-level design is created that outlines the architecture and the technical languages, frameworks, and libraries to be used. Where possible they will plan on re-using existing code in their solution and ensure that all of the use cases and expectations of the ticket will be met with this design.
2nd stage of SDLC is Design
Design. Once the developer has a full understanding of the expected result of the ticket and all the data inputs and outputs required, they begin the stage of designing a solution.
Front End Engineer
Front End Engineer: Builds & maintains the code that the user sees- animations, graphics, interactions, etc.
Front End
Front End is the presentation layer of a piece of software. It's what the user sees and interacts with.
FRONT END
Front End. Languages: HTML, CSS, JavaScript, TypeScript Libraries: React, Redux, jQuery Frameworks: Angular, Ember, Meteor
Iterative design
Iterative design is a design methodology based on a cyclic process of prototyping, testing, analyzing, and refining a product or process. Based on the results of testing the most recent iteration of a design, changes and refinements are made.
Product Manager
Product Manager: Keeps team focused on project priorities and on delivery targets.
RESEARCH
RESEARCH. The first step is to seek to understand everything needed and expected from this feature request. What are the requirements? What are the use cases we should consider?
Release Management
Release Management: The process of managing, planning, scheduling and controlling a software build through different stages and environments; including testing and deploying software releases.
1st stage of SDLC is Research
Research. During the research phase, the developer seeks to understand everything that is expected and needed from the ticket. This includes the requirements or what the code should accomplish, the dependencies or what constraints exist, and the use cases or when the code will be used by the user.
Scrum
Scrum is a framework for Agile software development. Scrum is a framework utilizing an agile mindset for developing, delivering, and sustaining complex products, with an initial emphasis on software development
Test Driven Development (TDD)
Test Driven Development (TDD): When the development of a software system is done in a cycle of writing tests and refactoring execution code until the condition of the test is resolved.
iterative process
The iterative process is an approach that designers, developers, educators, and others use to continually improve a design or product. People create a prototype and test it, then tweak and test the revised prototype, and repeat this cycle until they reach a solution.
UX Design
UX Design is The process of putting the end users of a product as the north star for all design and development decisions. Prioritizing the user and not the stakeholders of the project, improves usability, accessibility, satisfaction and adoption rates with a product.
Waterfall methodology
Waterfall methodology follows a sequential process where one stage of the development process is completed before beginning the next. Having its start in manufacturing, Waterfall is less iterative and more constrained in its process as projects only move in a forward direction.
Software Development Life Cycle (SDLC)
When building or maintaining code, a team will map out and track needed bug fixes and new features. Individual pieces of work will be assigned to tickets, and tickets get prioritized based on product delivery timelines. Developers are either assigned tickets or they simply take the next ticket in the queue.
SDLC - candidate experience
Your goal is to learn about their thinking process and problem solving skills in each stage of the SDLC. Research: What research went into your design decisions? How did you know ______ was the right tool to use? Design: What dependencies did you need to consider when designing the solution? Who were you collaborating with? Build: Walk me through the coding process. Were you solo or pair programming? Test: How was QA facilitated on your team? Deploy: What was your involvement in the release cycle?
framework
framework means a basic structure underlying a system, concept, or text. Framework means an essential supporting structure of a building, vehicle, or object.