Yeah, it's day one as a tech advocate readers for you, ops forget to mention the day 0 blog. If you haven't read it, you can read it out here. So, We learned a little bit about the overall software development and its life cycle.
what the heck is Software Development
Well, it's the process of writing the source code, which includes everything that is involved between the conception of the desired software through to the final manifestation of the software. Software development may include research, re-engineering, or maybe changing the whole stack of the software product. The misconception of people about Software development is that it's all about coding stuff laying down on the computer with many coffees.
There are many approaches to software project management known as the software development life cycle. One of the famous and old ones is the waterfall model, as you may have heard too. There might be a misconception about the waterfall model for the beginner one, and it's not a model girl sitting behind the waterfall. It's the mythology that software engineers follow and ship out their code into production. There are a few steps to implement the waterfall model in your daily software engineer day.
- Requirements Analysis
These are the necessary steps that software engineers follow, but there might be more steps too, but this is the basic one. There are many processes also. It's not like there is only a waterfall model for the software development life cycle.
So why others exist? Because there need to be improvements in this waterfall model and other reasons too. Some of the drawbacks of the waterfall model are listed below.
- Difficult to incorporate new changes or requirements.
- The project delivery gets too late.
- It isn't easy to measure progress.
- High amount of risk and uncertainty
One thing is that all the stuff in the waterfall model are dependent on each other. What's the solution to that?
Agile comes into the big picture
The Etymological meaning of Agile means to move quickly and easily. Agile is a process by which a team can manage a project by breaking it up into several stages and involving constant collaboration with stakeholders and continuous improvement and iteration at every step.
Agile includes the following procedures.
Few benefits of Agile
- High Product Quality
- Higher customer satisfaction
- Increased project control
- Easy and predictable delivery
- More focused on business value and quality
Now, let's dig dive into Development and Coding Stuff.
Coding is a part of the process where software engineers program the code for the project. Coding can be classified into many types. Commonly on web development, there are four types.
- Frontend Development
- Backend Development
The frontend is a part that users interact with. Everything you see while browsing through your computer or mobile is a part of frontend development. It takes a bigger role. Major technologies used in Front-end Development are:
- CSS and it's preprocessors
What is Backend Development
It's the part of the software which determines how the whole functionality of the application works. You are mostly focused on business logic to solve their problem through your code. You have to work with the database to perform CRUD( Create, Read, Update & Delete) operations and work with APIs (Application Programming Interface) to render where you wanted to and other tasks. There are tons of languages to use as a backend language. Some of them are listed below.
- Go lang
- Many more
Data is everywhere in today's world, even in your motion too. So what's the relation between data and database? Well, database management data that you wanted. The database is a collection of data used for storing, managing, and retrieving information. You used social media, and you chat with your friends and message transfer from your phone to server and server to your friend. Here, the message is your data, and to manage that data, the database takes action. There are many databases out there. Some are SQL and NO-SQL database.
- Many more
We learned a lot, and it was worth it. Now, there is something new too.
It's a set of operating principles and a collection of practices that enable application development teams to deliver code change more frequently and reliably. It's the interaction of development and operation tasks. The benefits of DevOps are listed below.
- Enhances the quality of code It- Easier to detect the issue and fix it
- Active involvement of end-user
- Reduces the cost to the company over some time
- Smaller and more frequent updates are possible
What is a Full-stack Developer anyway?
I think there is no exact definition of Full stack development. There are the ones considered as the jack of all trades but master of something specific too. A full-stack developer is an engineer who can handle all the work of databases, servers, systems engineering, and clients. It doesn't mean that they will be coding 24/7 hours. They will work on a project where they will be wearing many hats, and they are capable of working on new technologies too within a few periods. These are just the basic things we learned, but there is a vast scope of it with each and small topic, which I can't share in a single blog.
A day in the life of a Software Engineer
At the end of the session, we learned how the software engineer spent time in the company. Note, it might be different from the company to the company too. These are the basic things that include in software engineer daily workouts.
- Task & Features Discussion
- Study, research, and knowledge gathering
- Problem solving
- Helping each other out
- Hanging out with coworkers and having coffee
- Having fun
I was excited about day one too. We are learning each and everything parallel. I learned few things already, so I quickly caught those concepts again. I hope you might feel worth reading my article. Thank you.