Software Development

Development
Software Development thumbnail

What is software development?

Definition:

Software development is the process of building a piece of software and involves 6 major phases: Planning, Analysis, Design, Implementation, Testing and Integration, and Maintenance.

Analogy:

Software development is like designing and building a house.

Before an architect starts building a house, they generally want to plan how big the house will be and what the timeline will be. Then, they will figure out what materials and resources are appropriate. Next, they will make a blueprint. Finally, they will hand the specs to the engineer, who will build the house and make sure everything is up to safety and health codes. Once the house is built, a handyman should regularly maintain and fix any problems that might occur once the owner moves in.

In other words:

Developing software is an intensive process that requires a lot of time and resources to build something great. Once developed, software can generate a lot of value and can be built upon in the future.

Why is software development important?

It's one thing to know what a term means, but that is worthless if you don't know why you should know what software development is in the first place. Let's break down the importance of this tech term based on two high level categories. We'll walk through an explanation as well as provide a score, 1-10, that shows you how much you should care about software development.

Pre-Product: 7/10

The first will be if you do not have a product yet. This means that you don't have a physical product. Maybe you're in the ideation phase, or maybe you're almost ready to start development. Whichever it is, we'll get into why software development is important and why you should or shouldn't care about it if you do not have a product.

This is a very important term that you should be aware of, because at the end of the day, if you don't know what software development is, you aren't going to be able to start building your product! You don't need to know the ins and outs, nor how to code, but you should understand the general process of software development to prepare yourself for all the important steps you are required to take if you want to be as efficient and cost effective as possible.

Live Product: 3/10

The second category is if you do have a live product. Maybe you just launched your business or maybe it's been live for years and you're continuing to improve its quality. Regardless of the scenario, if your product is live, software development carries a different weight.

The only reason this score is low is because if you are building a product, that means you know what software development is! It of course is still important, but there is no pivotal knowledge here in the general term that will change your trajectory.

Examples of software development

So you know what software development is, by definition. You know if you should care about it or not depending on your situation as a business/company/product. To dig in deeper, we will walk through some examples so we can make sure you really have a solid grasp on software development.

Five common software development projects:

There are many different forms that software development will come in. We'll walk through some of the common software development projects you'll interact with or build yourself as a business.

  1. Website

    A website is a webpage that hosts information. You can have a dynamic website (one with multiple interacting pages) or you can have a static website (one that is a single page with non-interactive information). Whether you are writing custom code to develop a website or using no-code tools like Wix or Squarespace, you are utilizing software development to launch your website. Custom code is, of course, performed by writing code. No-code tools are built in a very sophisticated manner using software development. Rather than forcing the user to write their own code to build a website, the user can leverage pre-existing code and user-friendly interfaces to build their website like legos.
  2. Web App

    A web app is an application that is accessed through a website. For example, Airbnb has a landing page, but once you log in, you are accessing their web app. A web app can be written in many different languages. Some of the most common tech stacks in the software development of web applications is MEAN and MERN stack.

    MEAN Stack: MongoDB, Express.js, Angular, Node.js

    MERN Stack: MongoDB, Express.js, React, Node.js

    There are tons of different combinations of coding languages that will make up your software development journey.
  3. Mobile App

    A mobile app is just like a web application except it lives on your mobile phone. As a user, you have to download the mobile app from an App Store (either Apple or Google Play). Mobile apps are one of the hottest forms of development at the moment. There are three main ways you can go about mobile app software development: no-code, cross-platform, and native development.

    No-code: While no-code mobile applications aren't as strong as no-code websites (because a mobile application is more complex than a website), this is still an option that many will look towards in order to take advantage of cost savings. While you won't have the same flexibility in terms of your design and functionality, you will have a much quicker pathway towards development. This is commonly used for early-stage MVPs.

    Cross-platform: When you want to build an iOS and Android application, you have the choice of using cross-platform technologies, like React Native or Flutter. A cross-platform technology will allow you to utilize one code-base for both applications. While this method isn't always possible for larger-scale applications due to their complexity, it is a common method used to access cost savings for simpler and more standard mobile applications.

    Native development: If you want to build a mobile app in the native language, then you are engaging in native development. For iOS, the native language is called Swift. For Android, the native language is either Javascript or Kotlin.
  4. Desktop App

    Desktop apps are just like mobile and web apps, but they live on your desktop. If you are using the internet right now, you are likely using the desktop app of Google Chrome, Safari, or Firefox. You can identify a desktop app by the icon that will sit on your desktop menu bar.
  5. IoT

    As a hot new industry, IoT offers a variety of ways that you can approach software development. The general concept here is interacting software with hardware. For example, if you build an application for your smart watch that monitors your steps, you need your software (the application) to integrate with the hardware (your apple watch) to calculate your steps. As an emerging industry with continuously sophisticated technologies being released, IoT tends to be a more expensive software endeavor.

Key Takeaways:

  1. Developing software is an intensive process that requires a lot of time and resources to build something great. Once developed, software can generate a lot of value and can be built upon in the future.
  2. Whether you have a product or not, you need to know what software development is.
  3. There are 5 main categories when it comes to software development products: Websites, Web Apps, Mobile Apps, Desktop Apps, IoT.
Not seeing a term? 🤔