All posts by Abhilash Shukla

๐—•๐˜‚๐—ถ๐—น๐—ฑ๐—ถ๐—ป๐—ด ๐—ฆ๐˜‚๐˜€๐˜๐—ฎ๐—ถ๐—ป๐—ฎ๐—ฏ๐—น๐—ฒ ๐—ช๐—ผ๐—ฟ๐—น๐—ฑ ๐ŸŒฑ with Technology | AIML, IoT, Big Data, Digital Transformation | ๐—ง๐˜‚๐—ป๐—ฒ ๐˜๐—ผ ๐—บ๐˜† ๐—ฆ๐—ฝ๐—ผ๐˜๐—ถ๐—ณ๐˜† & ๐—”๐—ฝ๐—ฝ๐—น๐—ฒ ๐—ฃ๐—ผ๐—ฑ๐—ฐ๐—ฎ๐˜€๐˜ ๐—ผ๐—ป ๐—–๐—น๐—ถ๐—บ๐—ฎ๐˜๐—ฒ ๐—–๐—ต๐—ฎ๐—ป๐—ด๐—ฒ โ›ˆ

Agile Methodology: Points, velocity, Complexity, & effort estimation

In Agile Methodology, points and velocity have been seen as crucial elements for the success of many teams and projects. A few years back one of my teams was working on a new mobile application for a popular restaurant chain. The project was a complex one, as it required integration with the restaurant’s existing systems, as well as the ability to place orders and make payments through the app. As the team began to work on the project, they quickly realized that estimating the complexity and effort required to complete the various tasks and stories was becoming increasingly difficult. The team was struggling to come up with accurate estimates, and as a result, they were falling behind schedule.

In an effort to get back on track, I decided to understand along with the project manager assigned to the team on how exactly they are estimating stories. And to my surprise I learned that the version of points and velocity understanding is way to confusing for them. We began by assigning points to each task and story based on their relative complexity and effort required, then used velocity to estimate the number of points the team believed they could handle in a given sprint. Trust me, it might sound simple but it was nothing near to simple. In this article I will try to break some of the learnings that helped my team to understand things well.

Basically, in Agile development, teams use the terms “points” and “velocity” to estimate the complexity and effort required to complete a task or story. However, these terms can be confusing as they are not meant to measure the business value of the work or evaluate how hard the team is working. So, points are intended as a relative metric to help developers predict the effort required for different tasks. And, Velocity is used to estimate the number of points a team believes it can handle in a given sprint. One of the main sources of confusion is when team members start to think of points and velocity as a way to measure the value of the work or how hard the team is working. This can lead to issues such as gamifying points and inaccurate estimation. Additionally, equating points with time spent working or comparing the point velocity of one team to another can also be misleading.

First: breaking the confusing terms in Agile methodology

Lets look at some of the basic terms that you should differentiate between in order to have an understanding of the points and velocity system.

  • Agile is a philosophy that focuses on improving software development

  • Agile is about the “why” and “what” of improving software development
  • Scrum
  • Scrum is a practical framework that explains how to successfully execute software development projects

  • Scrum is about the “how”
  • Agile framework
  • A framework gives teams a loose structure and allows for customization and interpretation

  • Scrum is considered a framework
  • Agile methodology
  • A methodology is rigid and explains exactly how to do something

  • Extreme Programming (XP) is a methodology
  • Self-organize
  • When teams self-organize, they only choose how to accomplish their work.

  • In a self-organized team, a leader or outside party might determine tasks and assignees
  • Self-manage
  • When they self-manage, they also decide who does what and when.

  • While a self-managed team chooses these elements themselves
  • Product Backlog
  • The Product Backlog is an ordered โ€“ and ideally prioritized โ€“ list of all the ideas you could possibly work on to develop your product further.

  • You can continuously expand and refine the Product Backlog.
  • Sprint Backlog
  • The Sprint Backlog only contains items you have selected from the Product Backlog to work on during the current sprint.

  • Sprint Backlog is only reviewed and updated during sprint planning meetings.
  • Velocity
  • Velocity is a measure of how much work a team can complete in a sprint

  • A team with a velocity of 20 points per sprint and a capacity of 160 hours would be able to complete 20 points of work within the 160 hours they have available.
  • Capacity
  • Capacity is the amount of time a team has available to work on a sprint.
  • Definition of Done
  • The Definition of Done is a set of criteria that a product or feature must meet before it can be considered complete.

  • For example, a Definition of Done might include testing and documentation requirements.
  • Definition of Ready
  • Definition of Ready is a set of criteria that a product or feature must meet before it can begin development

  • For example, a Definition of Ready might include user stories and acceptance criteria.
  • Sprint
    A sprint is a time-boxed period of development, usually between one and four weeks, during which a specific set of tasks are completed.
    An iteration is a single pass through the development process, which may include multiple sprints.
    Sprint goal
  • A Sprint Goal is a short, specific statement outlining what the team hopes to achieve during the sprint.

  • For example, a Sprint Goal might be “improve user experience”
  • Sprint objective
  • Sprint Objective is a specific, measurable goal that the team commits to achieving during the sprint.

  • For example, a Sprint Objective might be “increase user satisfaction by 10%.”
  • Technical debt
    Technical debt refers to the cost of maintaining and updating code over time. For example, a project with a high technical debt ratio may be more difficult and expensive to maintain in the long-term.
    Technical debt ratio
    Technical debt ratio is a measure of how much technical debt a project has relative to the amount of new code being added.

    What’s the confusion with the points and velocity system?

    Points and velocity can be confusing for many people as they are abstract concepts that don’t directly correspond to real-world units of measure, like hours or days. The process of estimating points can be subjective as well because with different team members may have different opinions on the size or complexity of a task. This leads to discrepancies in point estimates and makes it difficult to compare to the relative size of different tasks.

    Also, these terms confuse few people because they are often used in conjunction with other Agile concepts, like sprints and backlogs, which can be complex and difficult to understand on their own. Additionally, the use of velocity as an estimation tool, it’s based on the assumption that the work of the team will be consistent over time, which is not always the case.

    Ironically, points and velocity are actually not the only ways to estimate complexity and effort in Agile methodology, and different teams may use different methods for the same activity which further add to the confusion when different teams are using different estimation techniques and terminology.

    Due to the confusion caused by these terms, some agile circles have called for eliminating points altogether, arguing that they are not only confusing for the team but also a distraction from the real work. The idea behind this approach is to avoid the competitive associations people tend to make with points and velocity. However, it is important to remember that points and estimation are crucial tools for teams to better understand and predict the effort required for different tasks.

    The big question: How points & velocity can help in estimating complexity & effort

    Let’s say a team is working on a project to develop a new mobile app. The project is broken down into several user stories, such as “As a user, I want to be able to create an account” and “As a user, I want to be able to view my profile.” Each of these user stories is assigned a number of points, based on the relative complexity and effort required to complete them. For example, the “create an account” story might be assigned 8 points, while the “view profile” story might be assigned 5 points.

    The team works in sprints, with each sprint lasting two weeks. At the end of each sprint, the team assesses the number of points they were able to complete, and this is their velocity. For example, in the first sprint, the team completes a total of 15 points. In the second sprint, they complete 12 points. And so on.

    Using this information, the team can estimate how many points they will be able to complete in future sprints, and use this to predict when the project will be completed. For example, if the team’s velocity is 15 points per sprint, they can estimate that they will be able to complete a total of 60 points in four sprints. If the total number of points for the project is 100, this means the project is expected to be completed in 6 sprints.

    Also, its very important to understand that in Agile development, it’s a team effort and the team members collectively assigns points to the user story, it’s not an individual effort. There are several techniques that teams uses to assign points to user stories including the most common one i.e. “planning poker“.

    Planning Poker is a consensus-based technique used to estimate the relative size of user stories. It’s a process where team members discuss the story and each member independently assigns a point value to the story. Once everyone has assigned a point, they reveal their points and discuss any differences. The team then continue this process till they reach a consensus on the point value of a story.

    The point value assigned to a story is based on the complexity and effort required to complete it, but it’s also influenced by other factors such as risk, uncertainty, and dependencies. The team members might use Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34) or powers of 2 (2, 4, 8, 16, 32) to assign point value.

    But, this process of story pointing is not an exact science and it’s not always possible to predict the exact effort required to complete a story with 100% accuracy. It’s an estimation and the team should be prepared to adjust the point value of a story as the project progresses and new information becomes available.

    The above example that we had discussed is a simple one and in real-life scenario, there are many other factors that can affect a team’s velocity, such as changes in team composition, delays, and unexpected complications. Therefore, this method should be used as a general guide rather than an exact prediction.

    Closing Note

    In spite of the fact that Agile can work without points or estimation, it’s important to remember that this approach may not work as well for teams with less experience or self-awareness. Communication, understanding, and alignment among team members are key to successful Agile development and using the principles and values of Agile and Scrum, teams can effectively work together and achieve their goals. The point system and velocity, although not directly related to value, are still useful measures of the team’s progress because they help predict the effort they will have to put in. We need to use them as an aid to the team, not as an end in themselves. This way, teams can better understand and predict the effort required for different tasks and use that information to make informed decisions about what to work on and when.

    Would you like to connect & have a talk?

    My daily life involves interacting with different people in order to understand their perspectives on Climate Change, Technology, and Digital Transformation.

    If you have a thought to share, then let’s connect!

    The LEFT and RIGHT (Skeptical view) debate on climate change

    The debate on climate change can often be divided into two main camps: those on the “left” and those on the “right.”

    People who are considered “left-leaning” (Also termed as Skeptical viewpoint) generally think that climate change is a big problem that needs to be dealt with right away. They usually support ideas like setting a price on carbon and making rules to limit the amount of greenhouse gases that are released. A lot of people on the left also believe that doing something about climate change is the right thing to do morally and ethically, and that countries that have been releasing a lot of greenhouse gases for a long time have a special responsibility to take action.

    People who are considered “right-leaning” usually do not believe that climate change is as big of a problem and that it needs any immediate action. They may say that we do not have enough information to be sure that climate change is happening or that it is caused by human activity, or that it would be too expensive to do something about it. Some people on the right may also believe that people should be free to make their own choices and that economic growth is more important than protecting the environment.

    It’s important to remember that not everyone who is considered “left” or “right” feels the same way about climate change. There are many different opinions on this topic and some people may not fit into one of these two groups or might hold a more nuanced position. Also, “left” and “right” can mean different things in different countries and situations.

    Continue reading The LEFT and RIGHT (Skeptical view) debate on climate change

    A note for transitioning from traditional to agile project management

    Adopting agile project management? Learn how to excel by aligning team goals, re-evaluating success metrics & fostering collaboration. Say goodbye to traditional constraints and embrace agility for faster results. As a project manager, the transition to agile methodologies can bring about new challenges. Agile emphasizes small teams working in short intervals and continuously learning, which may be a departure from the traditional linear approach to project management that many project managers are accustomed to. However, with the right mindset and approach, project managers can not only adapt but excel in this new environment.

    One of the initial steps for project managers leading an agile team is to comprehend the goals and objectives of the organization. By taking the time to understand the reasoning behind the organization’s adoption of agile, project managers can align their team’s goals and objectives with those of the organization. This allows them to demonstrate how organizational agility can aid their team in achieving these goals, and how their team can contribute to the overall success of the organization.

    Another crucial aspect of leading an agile team is re-evaluating the metrics by which success is measured. In traditional project management, success is typically measured by delivering a specified amount of work, on time and within budget. However, in an agile environment, metrics such as cycle time, which measures the amount of time it takes an item of work to go through a team’s R&D process, are becoming increasingly important. This metric directly reflects a team’s ability to learn and adapt quickly, which is vital in today’s rapidly changing business environment.

    Also, in addition to understanding the goals and objectives of the organization, and re-evaluating success metrics, project managers should also adopt a facilitative approach when leading an agile team. This means empowering team members to be self-organized and providing clear boundaries, frequent communication, and a clear vision for the team. By doing so, project managers can create an environment in which their team can focus on priorities, maintain overall team culture, and work towards achieving the goals and objectives of the organization.

    A primary advantage of adopting an agile approach is the ability to adapt and respond quickly to change. In today’s business climate, organizations are facing more rapid change than ever before. The traditional linear approach to project management is often too slow and inflexible to keep pace with these changes. Agile methodologies, on the other hand, allow teams to work in short cycles, learn and adapt quickly, and respond to change in a more agile manner. This can be a significant advantage for organizations looking to reduce dependence on external vendors and partners and decrease the time it takes to bring new products to market.

    Agile methodologies has this ability to deliver high-quality results. By working in short cycles, teams can quickly identify and address issues, and make adjustments as needed. This allows teams to continuously improve their processes and deliver high-quality results that meet the needs of the organization and its customers.

    As a project manager, it’s crucial to understand that the transition to agile methodologies is not just a change in process but also a change in mindset. Agile methodologies require a different approach to leading a team, measuring success, and responding to change. It also demands to promote collaboration and open communication within teams as agile teams often consist of multidisciplinary members with different backgrounds, which can bring unique perspectives to the table. The agile approach encourages team members to work together, communicate openly and frequently, and learn from each other, leading to better results for the organization.

    Closing Note: Traditional to agile project management

    By comprehending the goals and objectives of the organization, re-evaluating success metrics, adopting a facilitative approach, and promoting collaboration and open communication, project managers can lead their teams to success and deliver high-quality results that meet the needs of the organization and its customers. The agile approach can be a significant advantage for organizations looking to reduce dependence on external vendors and partners and decrease the time it takes to bring new products to market. Embrace the change and opportunities that come with Agile methodologies and see the positive impact they can bring to your team and organization.

    Would you like to connect & have a talk?

    My daily life involves interacting with different people in order to understand their perspectives on Climate Change, Technology, and Digital Transformation.

    If you have a thought to share, then let’s connect!

    The dilemma of an entrepreneur acting as a project manager

    An entrepreneur who has to also act as a project manager, the days are always filled with a constant act of balancing. In startups and budding businesses, you have to perform those roles side by side. On one hand, you had to lead and manage your teams ensuring that projects are completed on time and within budget, on other hand, you have to focus on growing your business and making sure that it is financially successful as well.

    One of the primary challenges I have always heard from people in this dual role is time management, as frankly for an entrepreneur, there are a million things to do and always not enough hours in a day to do them. You have to constantly prioritize and make sure that you are focused on the most important tasks at hand and do not deviate from insignificant activities. Of course, some days such decisions are done right, and sometimes they are not.

    As an entrepreneur and a pseudo project manager, the way we look at things become different and through my own experiences and the perspectives shared by my peers, I have come to realize that the most crucial skill we must exhibit is inclusivity and diversity, which may not be the prime aspect a traditional project manager would be considering. We have to make sure that everyone on our team is feeling valued and heard, regardless of their background or experiences. Also, it is important to make sure that the projects we work on should reflect the diversity of our society and that everyone is having an equal opportunity to contribute and succeed. I think an effective approach would be to actively seek out and recruit individuals from diverse backgrounds, and to foster an inclusive atmosphere where all individuals feel welcomed and respected. We should also make sure that they are provided with training and resources on the topics such as unconscious bias and cultural competency to help them understand and appreciate the different perspectives and experiences of their colleagues.

    Secondly, the challenge of the uncertainty of running a business is way too high. Entrepreneurship is a risky endeavor, and there were times when you didn’t know if your business would be successful or not. This uncertainty requires you to be adaptable and to be able to pivot your business strategy when things didn’t go as planned. It also requires you to have a long-term vision for your business so that you can make those difficult decisions in the short term that would benefit your business in the long run.

    And due to this, the business can be emotionally taxing considering such uncertainties and risks that may come on your way, and because of it, many people experience feelings of doubt in their abilities. With time one thing that I have learned is that such things will always come across when you are playing this dual role, but taking care of your emotional well-being is decisive. Surrounding yourself with a support system of friends and family who believe in you and your vision can prove to be a crucial element for your mental health and success in running a business, and it eventually helps you to stabilize yourself. Because, doubts and criticisms are an inevitable part of running a business, and despite your best efforts people will question your abilities as a manager. It’s difficult not to take these doubts personally and to let them affect your emotions, but at the same time, you need to remember that you cannot let those doubts get in the way of your goals.

    Ideally speaking an entrepreneur is also bugged with the financial aspect of running a business which a traditional project manager never experiences. And this factor impacts the way entrepreneurs do decision making, and even how they run a team. When you are responsible for securing funds, managing cash flow, and ensuring that your business is financially stable, you eventually build a few traits that you cannot shadow while handling a team. And this superimposes your traditional project management rules, i.e. limiting yourself from making risky and less-proven decisions, cutting costs, or seeking out for unreasonable time-frames to keep your project, or say the business afloat, etc.

    In the end, you have to manage your own time effectively and have to prioritize your tasks. This will require you to have a deep understanding of the projects that your team has been working on on a day-to-day basis for making the right decisions that would benefit the business as a whole. Along with that, you have to build and manage a team of skilled professionals, which would require you to have excellent leadership qualities and to be able to inspire and motivate them to further achieve their goals.

    This dual-role of being both a project manager and an entrepreneur has unique kind of challenges that you might need to navigate with. But through it all, my overall experience has taught me valuable lessons making me more successful in my personal and professional life. And I am proud of the work that my team and I accomplished, creating projects that were not only successful but also inclusive and diverse.

    Would you like to connect & have a talk?

    My daily life involves interacting with different people in order to understand their perspectives on Climate Change, Technology, and Digital Transformation.

    If you have a thought to share, then let’s connect!

    Demonstrating Newton’s laws of motion using Python code

    Newton’s laws of motion are a set of three laws that describe the relationship between a body and the forces acting upon it. These laws were developed by Sir Isaac Newton in the 17th century and are still widely used in classical mechanics to describe the motion of objects.

    Newton’s laws of motion provide a fundamental framework for understanding the motion of objects and the forces that act upon them.

    Here is an example of how you could demonstrate Newton’s laws of motion using Python code:

    Newton’s First law of motion with Python code

    An object at rest tends to stay at rest, and an object in motion tends to stay in motion with the same speed and in the same direction, unless acted upon by a force.

    # define a class to represent an object
    class Object:
      def __init__(self, mass, velocity=0):
        self.mass = mass
        self.velocity = velocity
      def apply_force(self, force, time):
        # calculate the acceleration of the object
        acceleration = force / self.mass
        # update the velocity of the object based on the acceleration and time elapsed
        self.velocity += acceleration * time
    # create an object with a mass of 10 kg and initial velocity of 0 m/s
    obj = Object(10)
    print("Initial velocity:", obj.velocity) # should print 0
    # apply a force of 50 N for 1 second
    obj.apply_force(50, 1)
    print("Velocity after applying force:", obj.velocity) # should print 5 (50 N / 10 kg = 5 m/s^2)
    # apply no force for 1 second
    obj.apply_force(0, 1)
    print("Velocity after applying no force:", obj.velocity) # should still print 5

    Newton’s Second law of motion with Python code

    Newton’s second law of motion states that the force acting on an object is equal to the mass of the object times its acceleration. In equation form, this is represented as:

    F = ma

    Where F is the force acting on the object, m is the mass of the object, and a is the acceleration of the object.

    Python code that calculates the mass and acceleration of an object based on the given variables:

    # Define the initial and final velocities of the object
    initial_velocity = 10  # m/s
    final_velocity = 20  # m/s
    # Define the time elapsed
    time_elapsed = 5  # s
    # Calculate the change in velocity
    delta_v = final_velocity - initial_velocity
    # Calculate the acceleration of the object
    acceleration = delta_v / time_elapsed
    # Print the calculated acceleration
    print("Acceleration:", acceleration, "m/s^2")
    # Define the force acting on the object
    force = 50  # N
    # Calculate the mass of the object
    mass = force / acceleration
    # Print the calculated mass
    print("Mass:", mass, "kg")

    This code will output the following values:

    • Acceleration: 4 m/s^2
    • Mass: 12.5 kg

    The variables initial_velocity, final_velocity, and time_elapsed can be changed to different values to calculate the acceleration and mass for different scenarios.

    Now the below Python code demonstrates this principle by calculating the force required to accelerate a 1 kilogram object at a rate of 1 meter per second squared:

    # Define the mass of the object in kilograms
    mass = 1
    # Define the acceleration of the object in meters per second squared
    acceleration = 1
    # Calculate the force required to accelerate the object
    force = mass * acceleration
    # Print the calculated force

    This code will output the result 1, which represents the force required to accelerate a 1 kilogram object at a rate of 1 meter per second squared.

    Newton’s Third law of motion with Python code

    For every action, there is an equal and opposite reaction.

    import matplotlib.pyplot as plt
    import numpy as np
    # Constants
    GRAVITY = 9.81  # m/s^2
    MASS = 1.0      # kg
    # Initial conditions
    y_0 = 0         # m
    v_0 = 10        # m/s
    t_0 = 0         # s
    dt = 0.01       # s
    # Create lists to store the position and velocity of the ball at each time step
    y_positions = [y_0]
    v_velocities = [v_0]
    times = [t_0]
    # Loop through time steps and calculate the position and velocity of the ball at each step
    while y_positions[-1] >= 0:
        # Calculate the acceleration of the ball due to gravity
        acceleration = -GRAVITY
        # Calculate the velocity at the current time step
        v_current = v_velocities[-1] + acceleration * dt
        # Calculate the position at the current time step
        y_current = y_positions[-1] + v_current * dt
        # Append the current position, velocity, and time to the lists
        times.append(times[-1] + dt)
    # Plot the position of the ball over time
    plt.plot(times, y_positions)
    plt.xlabel('Time (s)')
    plt.ylabel('Position (m)')

    This code simulates the motion of a ball being dropped from a height of y_0 meters with an initial velocity of v_0 meters per second. The ball is subjected to the force of gravity, which is represented by the acceleration GRAVITY meters per second squared. The code uses a while loop to step through the simulation, calculating the position and velocity of the ball at each time step using the equations of motion:

    acceleration = force / mass
    velocity = velocity + acceleration * dt
    position = position + velocity * dt

    At each time step, the ball experiences a force equal to its mass times the acceleration due to gravity (F = ma). This force is the action, and the reaction is the equal and opposite force that the ground exerts on the ball. The code plots the position of the ball over time, showing how it bounces back up after hitting the ground due to the equal and opposite reaction force.

    Would you like to connect & have a talk?

    My daily life involves interacting with different people in order to understand their perspectives on Climate Change, Technology, and Digital Transformation.

    If you have a thought to share, then let’s connect!

    Startup companies contributing to climate change mitigation

    There are a number of startups out there that are tackling climate change head on. These companies come from different industries and are using a variety of methods to cut down on greenhouse gases and lessen the effects of climate change. This article showcases some of these innovative firms and their efforts to protect our planet. Please note, its just a small list and I do not have sponsorship from any one of them ๐Ÿ™‚

    One company has developed a technology that captures and sequesters CO2 from industrial processes and uses it to make concrete stronger and more durable. Another company specializes in developing and operating facilities that convert waste into clean energy. There is a company that manufactures inverters and other technologies that help optimize the performance of solar energy systems. There is also a company that provides electric vehicle charging infrastructure and related services. Another company has developed a technology that captures CO2 from industrial emissions and uses it to produce chemicals and fuels.

    So the idea is to share a small sample of many startup companies that are focused on developing and commercializing innovative technologies and services that directly or indirectly help reduce greenhouse gas emissions and mitigate the impacts of climate change.

    Continue reading Startup companies contributing to climate change mitigation

    Electrifying world with Solar: How much Surface Area required?

    Electricity powers our daily lives and drives economic growth, so it’s no surprise that some countries consume more electricity than others. According to recent data, the top 10 countries with the highest total electricity consumption are China, the United States, India, Russia, Japan, Germany, South Korea, Iran, Saudi Arabia, and Canada. These countries have high demand for electricity due to factors such as large populations, industrialization, and economic development.

    It has been an interesting exercise to mathematically assume how much surface area would be required to install solar panels in these countries to meet their electricity needs. However, please do understand that this article is purely an interesting hypothesis and not a concrete recommendation in any sense. It’s just a mere area-based assumption to see how much land we might need to electrify a country or this entire world.

    China, the United States, and India are the largest consumers of electricity globally, with China alone accounting for almost 20% of total global electricity consumption. Russia, Japan, and Germany also have large and developed economies, which contribute to their high levels of electricity consumption. South Korea, Iran, Saudi Arabia, and Canada also consume relatively large amounts of electricity due to their populations, industrial bases, and economic development. I assume that you possess the basic understanding that electricity consumption doesn’t necessarily reflect a country’s prosperity or well-being, but it is a significant indicator of economic and industrial activity.

    Top 10 countries with the highest total electricity consumption (2019):

    1. China – 9,596 billion kWh
    2. United States – 4,178 billion kWh
    3. India – 3,599 billion kWh
    4. Russia – 1,295 billion kWh
    5. Japan – 1,196 billion kWh
    6. Germany – 647 billion kWh
    7. South Korea – 593 billion kWh
    8. Iran – 423 billion kWh
    9. Saudi Arabia – 358 billion kWh
    10. Canada – 347 billion kWh

    Again, I am referring my last quote before banging on the complete article is that the ranking of countries by electricity consumption may change depending on the data source and time frame being considered for these assumptions. It is also important to remember that a country’s electricity consumption does not necessarily reflect its level of development or well-being.”.

    Continue reading Electrifying world with Solar: How much Surface Area required?

    Solving Euler’s formula for polyhedra, Navier-Stokes equations, and Feynman path integral using Python

    Euler’s formula, the Navier-Stokes equations, and the Feynman path integral are three important concepts in the fields of mathematics and physics. Just to clarify, they are not a tall connected to one another directly, however, they are all related to our understanding of the world around us. We will be using the Python programming language to explore and solve these concepts. My assumption is that you understand all these formula’s and hence attempting to solve it using Python.

    Euler’s formula is a tool that helps us understand the structure of three-dimensional shapes called polyhedra. It tells us the relationship between the number of vertices, edges, and faces that make up a polyhedron.

    The Navier-Stokes equations, on the other hand, are used to study the movement of fluids. These equations are a set of mathematical statements that describe how fluids behave and are used to model the flow of liquids and gases in many different situations.

    The Feynman path integral, named after physicist Richard Feynman, is a way of understanding the behavior of particles at the quantum level. It allows physicists to make predictions about the actions of particles by considering all of the possible paths they might take and calculating the chances of each one occurring.

    Solving Euler’s formula for polyhedra using Python code

    This is a Python function that checks if a three-dimensional shape, called a polyhedron, follows a certain rule called Euler’s formula. To use the function, you need to give it three whole numbers, which represent the number of flat faces, straight edges, and points on the polyhedron. The function will then tell you if the polyhedron follows Euler’s formula by giving you either ‘True’ or ‘False’:

    def satisfies_euler(V, E, F):
      return V - E + F == 2
    Continue reading Solving Euler’s formula for polyhedra, Navier-Stokes equations, and Feynman path integral using Python

    Why poor experience the most severe effects of climate change?

    Climate change affects everyone, but it disproportionately impacts vulnerable and marginalized communities, including the poor. These communities often have fewer resources and less political power to adapt to and mitigate the impacts of climate change.

    For example, in a coastal community where fishing is a major source of income, rising sea levels and more frequent storms may make it more difficult for fishermen to go out to sea, leading to a loss of income. Without the financial means to adapt, such as by investing in more durable boats or finding alternative sources of income, these individuals and their families may be at risk of poverty and food insecurity.

    According to a report by the United Nations Office for Disaster Risk Reduction (UNDRR), between 1995 and 2015, more than 95% of all deaths caused by natural disasters occurred in developing countries. During this period, more than 1.3 million people died as a result of natural disasters, and more than 4.4 billion people were affected.

    It is difficult to determine the exact percentage of people living in poverty worldwide, as definitions of poverty and methods of measuring it vary across countries and regions. However, according to the World Bank, as of 2021, about 9.2% of the global population, or about 689 million people, lived in extreme poverty, defined as living on less than $1.90 per day. This represents a significant reduction from 1990, when more than 35% of the global population lived in extreme poverty.

    It is important to address the needs and concerns of poor communities in the context of climate change and to ensure that they have the resources and support they need to adapt to and mitigate the impacts of a changing climate.

    Continue reading Why poor experience the most severe effects of climate change?

    Why child birth control is often talked with Climate Change?

    These days, it is not uncommon for people to talk about this or to show the concerns about child birth control in the face of climate change and other environmental challenges. People may simply be uncertain about what the future will hold and this has become a reason for them to be hesitant to bring the children into a world that is facing such significant challenges.

    Now many people don’t think like this, and the black-and-white reason could be that few people are too sensitive about the climate change, whereas few aren’t. In this article, I will try to understand and help bring my perspectives on why people would be thinking that way.

    A word of caution

    This article is written from my own individual perspective and have psychological, geographical, conceptual, and overall belief that I possess. The article is quite lengthy, as there were many elements that I couldn’t resist to write about. Please read at your own wisdom.

    There are several reasons why some people may be hesitant to have children due to environmental concerns. Fear of environmental degradation is one such reason. Climate change and other environmental problems can harm human health and well-being. Some people may worry that their child will face a difficult future due to environmental challenges.

    Another reason is fear of resource depletion. People may be concerned about the availability of resources such as food, water, and energy in the future and how having a child may impact these resources. Also, there is the fear of overpopulation. Population growth can put pressure on the environment and natural resources. Some people may be hesitant to have children out of concern for the impact their family may have on the planet.

    Continue reading Why child birth control is often talked with Climate Change?