Kids Code
Code Savvy Presents: A Software Engineering Overview
Happy Engineering Week! In honor, we are going to discuss our favorite kind of engineering... Software Engineering.
Software engineering and development have become integral parts of our lives. From social media to online shopping, we interact with software every day. But what is software engineering, and what does it involve? In this post, we'll explore the basics of software engineering and development, including the software development cycle, team roles, and common terms. We'll also take a look at some innovative software engineering teams in the state of Minnesota and some of the associations and organizations that software engineers can join to stay up to date with innovations in the field.

Mind map: Software Engineering
What is software engineering?
Software engineering is the process of designing, developing, testing, and maintaining software. It involves using engineering principles and techniques to create high-quality software that meets the needs of its users.
The goal of software engineering is to create software that is reliable, efficient, and easy to use.
Software Development Cycle
The software development cycle is the process that software engineers follow to create software. There are several stages in this process, including:
Planning: In this stage, the software development team determines the software's requirements and outlines the project's goals.
Design: In this stage, the software development team creates a blueprint of the software, including its architecture, features, and functionality.
Development: In this stage, the software development team writes the code that brings the software to life.
Testing: In this stage, the software development team tests the software to ensure that it is working as expected.
Deployment: In this stage, the software development team releases the software to the public.
Maintenance: In this stage, the software development team provides ongoing support and maintenance to the software.
Team Roles

A software development team typically consists of several roles, each with its responsibilities. The most common roles include:
Project Manager: The project manager is responsible for overseeing the entire software development process, from planning to deployment.
Software Developer: The software developer writes the code that brings the software to life.
Quality Assurance Engineer: The quality assurance engineer tests the software to ensure that it is working as expected.
User Experience Designer: The user experience designer creates the user interface and ensures that it is easy to use.
Database Administrator: The database administrator manages the database that the software uses.
Common Terms
Here are some common terms that you should be aware of in the field of software engineering:
Algorithm: A set of instructions that a computer program follows to solve a problem.
API: Application Programming Interface. It is a set of protocols, routines, and tools for building software applications.
Debugging: The process of finding and fixing errors in computer software.
Source Code: The human-readable code that programmers write to create software.
Innovative Software Engineering Teams in Minnesota
Minnesota has a thriving technology industry, and there are several innovative software engineering teams in the state.
Here are two examples:
Code42: Code42 is a Minneapolis-based company that specializes in data security and backup solutions. They are known for their CrashPlan data backup software, which is used by businesses and individuals worldwide.
The Nerdery: The Nerdery is a software development and consulting firm based in Edina. They specialize in user-focused software development and have worked with several high-profile clients, including Medtronic and Google.
Professional Associations for Software Engineers
There are several organizations and associations that software engineers can join to stay aware of best practices and innovations in the field. Here are a few examples:
Association for Computing Machinery (ACM) - ACM is the world's largest computing society, and it provides resources and opportunities for members to learn and collaborate on emerging topics in computing.
Institute of Electrical and Electronics Engineers (IEEE) Computer Society - The IEEE Computer Society is a professional organization that provides resources and opportunities for members to stay up to date on the latest trends and technologies in computing.
Software Engineering Institute (SEI) - The SEI is a federally funded research and development center that focuses on improving the practice of software engineering. It offers training, consulting, and research services to help software professionals improve their skills and practices.
Agile Alliance - The Agile Alliance is a nonprofit organization that promotes agile software development methodologies. It provides resources and opportunities for members to learn and collaborate on agile practices and techniques.
DevOps Institute - The DevOps Institute is a global community that focuses on the practices and principles of DevOps. It provides education, certification, and networking opportunities for software professionals who are interested in DevOps.
By joining these organizations or associations, software engineers can stay connected with other professionals in their field, stay up to date on the latest developments, and continue to learn and improve their skills.
As you can see, software engineering and development are critical components of our digital world. From the software development cycle to team roles and common terms, we've covered the basics of software engineering in this post. We hope that this information has been helpful in giving you an understanding of what software engineering is all about.
If you're interested in pursuing a career in this field, there are plenty of opportunities available, both in Minnesota and around the world.

One of those local opportunities is coming up this week… Girls and non-binary students of all ages are encouraged to register to attend our “Introduce a Girl to Software Engineering” event on February 25th at Smart North - Minneapolis.
Attendees will get some hands-on experience with software development and find out first-hand what it is like to work on a project as a software engineer.
Don't miss out!