Skip to main content
Top

2023 | Book

A Friendly Guide to Software Development

What You Should Know Without Being a Developer

insite
SEARCH

About this book

Software is everywhere, but despite being so common and useful, it remains magical and mysterious to many. Still, more and more people are finding themselves working for tech companies, or with an array of software products, services, and tools. This can segregate those who understand tech from those that don’t. But it doesn’t have to be this way.

This book aims to bring these two worlds closer together, allowing people to learn basic concepts of software development in a casual and straight-forward way. Assuming no previous technical knowledge, you’ll embark on a journey where you can understand and build a new software project from scratch until it is an advanced product with multiple users.

A Friendly Guide to Software Development makes technical concepts broadly available and easy to understand. Imagine moving from a “traditional” company and suddenly finding yourself in one where software is the main product or is a foundational component to it. One is often left to wade through the infinite concepts while still doing their actual jobs. This book closes that gap. In doing so, you’ll be able to achieve better communication, which will undoubtedly lead to better working relationships, a better working environment, and ultimately better software.

What You'll Learn

See how a new software project is createdExamine the basics of software development and architectureKnow which questions to ask to avoid potential problems and pitfallsStart using and building software projects

Who This Book Is For

Those without a traditional technical background people like business and project managers who need to work closely with software developers and teamsPeople who are interested in building a software system but don’t know where to start.Programmers who want to jump to development but have no experience in the industry and its common concepts

Table of Contents

Frontmatter

Getting to Know This Familiar Unknown World

Frontmatter
Chapter 1. Welcome!
Abstract
You probably woke up by an alarm set on your mobile phone, maybe learned about the weather on your smartwatch, or checked some emails on your computer. Words like apps, smartphones, smartwatches, and software are so common nowadays that sometimes it’s hard to remember that most of these things became part of our daily lives not so long ago. I remember that was in my first year of college, back in 2008, when a friend showed me that his mobile phone could access the Internet. My first thought was “Why is this useful?”. Silly me.
Leticia Portella
Chapter 2. The Birth of a Software Project
Abstract
Everything usually starts in the same way: there is something that can be solved or improved by the use of technology. Maybe it is an idea that someone had while seeing themselves or their friends struggle with something. Maybe a user that reported some extra functionality (usually called feature) they need. Having an idea for a software can be, by itself, something really hard, but having an idea doesn’t really get you anywhere. You still need to figure out what to do from there.
Leticia Portella
Chapter 3. You Are Surrounded by This World!
Abstract
Right now, we have a clear idea of our potential users’ needs. You understand their pain points, and we have a good idea of how we might solve them. The next step is being able to translate these ideas (and requirements) into a software system. And to do that, we need to first take a step back in understanding what kind of systems are there.
Leticia Portella

Let’s Get Technical!

Frontmatter
Chapter 4. What Happens When You Open a Website?
Abstract
In the previous chapter, we launched our new e-commerce landing page, and now you want to show your family so they can see it. Your mom goes to a browser and types the URL you gave her: jollyfarm.co. Have you ever considered what happens when she presses enter?
Leticia Portella
Chapter 5. Frontend: The Tip of the Iceberg
Abstract
The JollyFarm, as an e-commerce, will be a dynamic system. This means that it will need a frontend and a backend system. We can start by looking at what the frontend consists as you have more familiarity with it. Every website you’ve accessed, every mobile app you’ve used, and everything you interacted with while using a web application are frontends.
Leticia Portella
Chapter 6. Backend: What’s Underwater
Abstract
We defined how our frontend should look like, now it’s time to think about the other side! While the frontend is responsible for interacting with users and making sure they have an amazing experience with the website, the backend is responsible for implementing the business logic as well as making sure that the information is quickly accessible and securely stored.
Leticia Portella

Working on Software Projects

Frontmatter
Chapter 7. The Big Questions While Starting a Project
Abstract
Whenever a new project is starting, there are several important decisions that might seem trivial but can highly impact the future of the project. Although someone might jump at you with an answer for them, the truth is that it’s never as simple as “use this” or “use that.” As with anything in software development, there are several trade-offs that need to be made and things to be considered. Whenever making a decision, you should know about the trade-offs so they don’t catch you off guard in the future!
Leticia Portella
Chapter 8. How Do We Build Software?
Abstract
So far, we spent a long time on decisions and work that happen before a single line of code is ever written. We have the requirements for the MVP, we know the tools, now comes the fun part! It’s time to start building it. To do that, we need to have developers working together toward common goals. How does this typically work?
Leticia Portella

What You Should Consider When Building Software

Frontmatter
Chapter 9. Building Today Thinking of Tomorrow
Abstract
Software is never done. There is always a new feature that was requested or a new bug that needs to be fixed. In reality, the developer will spend the vast majority of time not writing code but reading it.
Leticia Portella
Chapter 10. Guaranteeing Software Quality
Abstract
In the previous chapter, we discussed several topics that can impact the quality of the code and overall productivity of developers writing it. Although all of them are fundamental, there’s still a big piece missing: checking that the code does what’s intended. At the end of the day, the user doesn’t care if your code is perfect. If it doesn’t work, it doesn’t matter. Beyond the code quality, we also need to be sure, as much as we can, that the code actually works, and the way we do this is by testing.
Leticia Portella
Chapter 11. Working 24/7: Making Software Available at All Times
Abstract
Congratulations! JollyFarm is now a successful product, with farms and customers happy and healthy. This is really impressive, and you should be really proud. But now that the product is out there and people are relying on it, we need to think: What will we do if something goes bad? What if the database is unavailable? Or if a human error accidentally causes a big problem?
Leticia Portella
Chapter 12. The Monster Behind the Door: Technical Debt and Legacy Code
Abstract
For the past three chapters, we discussed things we can do to make the JollyFarm a good software system, both in the present as well as in the future. Making sure the code is well compartmentalized, the code quality is up to standards, and there is a good test suite wrapping all this. But we all know that one time or the other, things slip. Deadlines are short, resources might be scarce, and corners have to be cut. What do we do then? It’s time we discuss what happens when we don’t follow the guidelines we discussed throughout this book.
Leticia Portella

Human Aspects of Building Software

Frontmatter
Chapter 13. A Deeper Look to What Influence Software Teams
Abstract
For most of this book, we talked about the MVP development of the JollyFarm app. But if we did a good job, there’s a chance this story will go on and on to other stages and better and bigger features. Regardless of the moment we talk about—fresh start, scaling, legacy—you will need one or more teams to do the development of this and other products. These teams need to work well together and, hopefully, fix bugs and deliver features with efficiency and quality.
Leticia Portella
Chapter 14. The Role of the Developer
Abstract
Ah… we finally got to the developers, my crowd. We receive so many names! Software developer, software engineer, programmer, coder. I won’t go into the discussion of why there are so many names, but I want to talk about the role of the person that is one of the core pieces on software development.
Leticia Portella
Chapter 15. Building Software Is More Than Developers
Abstract
With a few exceptions, this book discusses work that is typically executed by developers. This is on purpose, as I focused on demystifying the technical side of a software product. However, there is a common assumption that the software industry is basically composed of developers.
Leticia Portella
Backmatter
Metadata
Title
A Friendly Guide to Software Development
Author
Leticia Portella
Copyright Year
2023
Publisher
Apress
Electronic ISBN
978-1-4842-8969-3
Print ISBN
978-1-4842-8968-6
DOI
https://doi.org/10.1007/978-1-4842-8969-3

Premium Partner