Lightening talks on software development

Coffee time. Let's talk on software development and other stuff which are continoushly being buzz word in tech industry.

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
  • Design
  • Development
  • Testing
  • Maintenance

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.

  • Plan
  • Design
  • Develop
  • Test
  • Release
  • Feedbacks

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
  • DevOps
  • Database

Frontend 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:

  • HTML
  • CSS and it's preprocessors
  • Javascript and it's libraries
  • Frontend framework

    • React
    • Angular
    • Vue
    • Other

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
  • Python
  • Java
  • Javascript
  • Php
  • Many more

Database

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.

  • MySQL
  • PostgreSQL
  • DynamoDB
  • MongoDB
  • Oracle
  • Many more

We learned a lot, and it was worth it. Now, there is something new too.

DevOps

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.

  • Meeting
  • Task & Features Discussion
  • Study, research, and knowledge gathering
  • Problem solving
  • Coding
  • 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.

Let's deploy Wordpress

Let's deploy Wordpress

WordPress is an open-source blogging tool and content management system (CMS) based on PHP and MySQL that is used to power anything from personal blogs to hightraffic websites.

Let's run KML presentation tool inside a container

Let's run KML presentation tool inside a container

Let's run Presentation Tool inside a Container. I will come over to what the Container is. Assuming you had software packages or projects, you share with your friend...

The 5 lessons I learned from techwebinarnepal

The 5 lessons I learned from techwebinarnepal

One of the tech webinar series of nepal hosted by passionate Nepali tech admirer. Here are the few lessons I had learned from techwebinarnepal.