Producing working software involves more than writing code. Most software applications require some form of data storage. And guess what, these data storages do not magically appear; they need to be built, tested, and deployed somewhere.
As a software developer, you tend to use databases much more than building and maintaining one. There are people who specialize in databases to do that. So, at this point, you might be wondering why you need to know about building and maintaining databases — can’t you just write the code? You can, but that would put you at a disadvantage in the modern world of software development.
Teams Are Becoming Cross-Disciplinary
More software development teams are becoming cross-disciplinary nowadays. This means developers are required to take on or at least contribute to work in a variety of different roles. In another word, as a software developer, you may be asked to wear multiple hats, especially if you work for a startup or small to medium size organization.
It is not unlikely that you will be asked to install a database and set one up to work with an application. You may be asked to help determine the process of deploying the working application code to a production server. Or, you may be asked to work with a Database Administrator (DBA) and or DevOps.
Databases Require Upkeep and Maintenance
Databases like anything else need to be taken care of. You can’t deploy it and expect it to work forever without any issues. Generally, in a large organization, there are database administrators (DBA) who handles the upkeep and maintenance.
In smaller organizations, there might not be a DBA to handle the databases. So, guess who needs to take care of it? That’s you and your team of developers. So, it is useful if you know your way around a database and the basics of installing and maintaining one.
Databases grow over time and can become a big resource hog. So, it is important to pick the right equipment to run a database and determine when it is time for an upgrade.
Databases also hold valuable data, so it is vital to back up regularly in case a failure does happen — they will. Someone (you) needs to put together a plan to restore the databases or keep things running if a database does fail.
As a Software Developer, You Are Technically Part of DevOps
DevOps is a new role in the IT field. Since DevOps is new, the role is loosely defined. To define DevOps in an overly general way, it is a mashup of development and operations. It is about getting the code built, tested, deployed and running in production.
Based on the definition of DevOps, you can see how it overlaps with your role as a software developer. So, you are technically part of DevOps.
What Does Being Part of DevOps Means for You
As a part of DevOps, you can’t just write code and throw it over the wall and let it be someone else’s problem. You need to understand the process and tools that are used to move code from development to production. You should know how an application gets packed up and ready for distribution or deployment. You also should know something about monitoring an existing application to check for issues the customer base is having.
What Do You Really Need to Know About Databases
You don’t need to become a DBA, but it definitely helps if you invest some time to learn the basics. Here is a list to help you start:
- Install and set up a database
- Create and restore backups of database
- Create tables and schemas
- Join tables
- Index tables and understand how indexes work
- Create stored procedures
- Write SQL code to perform operations such as inserts, updates, and queries
You don’t need to be an expert in databases. By knowing the basics, it will help you out a lot as a software developer.
I hope you found this post helpful. If you found this post helpful, share it with others so they can benefit too.
What are your experiences with databases? Did any of the scenarios described in this post happen to you?
To stay in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.