<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Christophe Kwizera</title>
    <description>The latest articles on DEV Community by Christophe Kwizera (@kabundege).</description>
    <link>https://dev.to/kabundege</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F815079%2Fa9db8405-926e-4831-bcc3-0059d46c6d48.png</url>
      <title>DEV Community: Christophe Kwizera</title>
      <link>https://dev.to/kabundege</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kabundege"/>
    <language>en</language>
    <item>
      <title>React Query Mutations Offline React-Native</title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Wed, 28 Feb 2024 00:26:47 +0000</pubDate>
      <link>https://dev.to/kabundege/react-query-mutations-offline-react-native-2p3l</link>
      <guid>https://dev.to/kabundege/react-query-mutations-offline-react-native-2p3l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;We are addressing a React-Query mutation issue related to offline functionality. Upon analysis, several discrepancies were identified within the setup. The following points elucidate the observed issues:&lt;/p&gt;

&lt;h3&gt;
  
  
  Paused &amp;amp; Pending
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In React-Query version 5, the &lt;code&gt;useMutation&lt;/code&gt; hook returns &lt;code&gt;isPending&lt;/code&gt; instead of &lt;code&gt;isLoading&lt;/code&gt;. Initially, I misconceived &lt;code&gt;isPending&lt;/code&gt; solely as indicative of submission loading. However, it signifies both loading states: when online (&lt;code&gt;isLoading&lt;/code&gt;) and when offline (&lt;code&gt;isPending&lt;/code&gt;). This is evident by assessing &lt;code&gt;isPaused&lt;/code&gt; within &lt;code&gt;useMutation&lt;/code&gt;, which reflects false when online and true when offline.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;isPaused&lt;/code&gt; indicates that the request has been cached and will resume (if configured accordingly) upon device reconnection to the internet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const {
    reset,
    mutate,
    isPaused,
    isPending,
  } = useCreate();

useEffect(() =&amp;gt; {
    if (isPaused) {
      // If a request is pending due to offline work, it may be necessary to reset the form to allow the action to be attempted multiple times despite the offline status.
      reset();
    }
  }, [isMutationPaused]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Storing (updating) Offline Data
&lt;/h3&gt;

&lt;p&gt;Using react query eliminated the need of redux to data it already hold, you will store the data &lt;code&gt;onMutate&lt;/code&gt; and here's how it done.&lt;/p&gt;

&lt;p&gt;Remember the queryKey you assigned to the data &lt;code&gt;e.g ['todos']&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const useCreate = () =&amp;gt; {
  const queryClient = useQueryClient();
  return useMutation({
    onMutate: async variables =&amp;gt; {
      // Cancel current queries for the order list
      await queryClient.cancelQueries({ queryKey: ['todos] })

      // Create optimistic todos
      const optimisticTodo = { ...variables };

      // Add optimistic todo to other todos list
      queryClient.setQueryData(
        ['todos'],
        (previousData) =&amp;gt; {
          return [...previousData, optimisticTodo ];
        },
      );

      // Return context with the optimistic todo
      return { optimisticTodo };
    },
    mutationFn: (data) =&amp;gt; createOrder(data),
  });
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for more info read about Mutations on &lt;a href="https://tanstack.com/query/latest/docs/framework/react/guides/mutations"&gt;React_Query_Docs&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Resume Paused Mutations
&lt;/h3&gt;

&lt;p&gt;In my scenario, it appeared that none of the mutations were being paused. Here is the resolution I implemented:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To try to resume paused mutations only if online otherwise it will also throw Network Error and mutation will no longer be paused.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;PersistQueryClientProvider
            client={queryClient}
            persistOptions={{
                persister: syncStoragePersister
            }}
            onSuccess={() =&amp;gt; {
                NetInfo.fetch().then(state =&amp;gt; {
                    if (state.isConnected) {
                        queryClient.resumePausedMutations()
                    }
                })
            }}
        &amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Setting focus manager also only if device is only otherwise this will also try to trigger mutations and if offline they will fail with NetworkError so no longer paused:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NetInfo.fetch().then(state =&amp;gt; {
        if (state.isConnected &amp;amp;&amp;amp; Platform.OS !== 'web') {
            focusManager.setFocused(status === 'active')
        }
    })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Honorable mention
&lt;/h3&gt;

&lt;p&gt;If you persist offline mutations with the persistQueryClient plugin, mutations cannot be resumed when the page is reloaded unless you provide a default mutation function.&lt;/p&gt;

&lt;p&gt;This is a technical limitation. When persisting to an external storage, only the state of mutations is persisted, as functions cannot be serialized. After hydration, the component that triggers the mutation might not be mounted, so calling resumePausedMutations might yield an error: No mutationFn found.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const persister = createSyncStoragePersister({
  storage: window.localStorage,
})
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      gcTime: 1000 * 60 * 60 * 24, // 24 hours
    },
  },
})

// we need a default mutation function so that paused mutations can resume after a page reload
queryClient.setMutationDefaults(['todos'], {
  mutationFn: ({ id, data }) =&amp;gt; {
    return api.updateTodo(id, data)
  },
})

export default function App() {
  return (
    &amp;lt;PersistQueryClientProvider
      client={queryClient}
      persistOptions={{ persister }}
      onSuccess={() =&amp;gt; {
        // resume mutations after initial restore from localStorage was successful
        queryClient.resumePausedMutations()
      }}
    &amp;gt;
      &amp;lt;RestOfTheApp /&amp;gt;
    &amp;lt;/PersistQueryClientProvider&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I trust you found this information beneficial. For further details, please refer to the conversation on this GitHub issue &lt;a href="https://github.com/TanStack/query/issues/5847"&gt;here&lt;/a&gt; &lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>offline</category>
      <category>reactquery</category>
      <category>mutations</category>
    </item>
    <item>
      <title>TaskForce Week Five</title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Sun, 20 Mar 2022 10:12:31 +0000</pubDate>
      <link>https://dev.to/kabundege/taskforce-week-five-4ab</link>
      <guid>https://dev.to/kabundege/taskforce-week-five-4ab</guid>
      <description>&lt;p&gt;Design thinking is a five-step process to come up with meaningful ideas that solve real problems for a particular group of people. &lt;br&gt;
the process is taught in top design and business schools around the world, it has brought many businesses lots of happy customers and helped entrepreneurs from all around the world to solve problems with Innovative new Solutions. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CPd0_aK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jzasn8pkbs09mudvwut8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CPd0_aK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jzasn8pkbs09mudvwut8.png" alt="Empathise " width="880" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The purpose of Step One is to conduct interviews they give you an idea about what people really care about we need to empathize with the situation for example if you want to help older people you might find that they want to keep the ability to walk around and you'll conversations they might share with you different ways they can do that later into the interview you'll want to dig a little deeper look for personal stories of situations where things became difficult ideally you redo the process with many people with the same problem &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nnjMcEky--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/224dllnpyomw8r6r7ixg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nnjMcEky--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/224dllnpyomw8r6r7ixg.png" alt="Define the problem" width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking at the interviews you can now understand the actual needs that people are trying to fulfill with that and activities one way to do that is to the line the pubs or activities that the people mentioned when talking about those problems like going for a walk, meeting old friends for tea, or simply going grocery shopping around the corner store. you might realize it's not so much about going out, but more about staying in touch. after your analysis, formulate a problem statement such as &lt;code&gt;some elderly are afraid to be alone, they want to stay connected&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PU5msyYx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmtgeeumx29rjx582pq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PU5msyYx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmtgeeumx29rjx582pq5.png" alt="Ideate" width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now Focus only on the problem statement and come up with ideas that solve the problem. the point is not to get a perfect idea come up with many ideas, like a unique virtual reality experience has CD or friendly hoverboards, or a modified pushcart, whatever it is sketch up your best ideas and show them to the people you are trying to help, so you can get that feedback. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--10ZOSiRu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jew1y4ypxvuo1zury632.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--10ZOSiRu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jew1y4ypxvuo1zury632.png" alt="Prototype" width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now take a moment to reflect on what you have learned from your conversations about the different ideas, and ask yourself; &lt;code&gt;how does your idea fit in the context of people's actual lives&lt;/code&gt;. &lt;br&gt;
Your solution could be a combination of a new idea and what is already being used then connect the dots sketch up your final solution and go build an actual prototype enough to be tested.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EObapmgy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3235wv0ay3hxx6jnoov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EObapmgy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3235wv0ay3hxx6jnoov.png" alt="Testing the prototype" width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now test your prototype with actual users don't defend your idea in case people don't like it the point is to learn what and what didn't so I need feedback is great then go back to ideation or prototyping and apply your learning repeat the process until you have a prototype that works and solve the real problem, now you are ready to change the world.&lt;/p&gt;

</description>
      <category>awesomitylab</category>
      <category>codeofafrica</category>
      <category>bootcamp</category>
      <category>intership</category>
    </item>
    <item>
      <title>TaskForce Week Four</title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Sat, 12 Mar 2022 21:44:33 +0000</pubDate>
      <link>https://dev.to/kabundege/taskforce-week-four-5f7h</link>
      <guid>https://dev.to/kabundege/taskforce-week-four-5f7h</guid>
      <description>&lt;p&gt;Critical Thinking is a term that gets thrown around a lot,&lt;br&gt;
you've probably heard it being used often throughout the years, whether it was in school, at work or in everyday conversation.&lt;/p&gt;

&lt;p&gt;When you stop to think about it, just what exactly is critical thinking and how do you do?. it's simply put it's the act of deliberately analyzing information so that you can make better judgments and decisions. &lt;br&gt;
It involves using things like logic reasoning, and creativity to draw conclusions and generally understand things better, this may sound like a pretty broad definition and that's because critical thinking is a broad skill that can be apply to so many different situations. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7G2iREzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygn0azme9yfrg2aw2hyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7G2iREzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygn0azme9yfrg2aw2hyf.png" alt="Critical Thinking pros" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use it; &lt;code&gt;to prepare for a job interview, manage your time better, make decisions about purchasing things and so much more&lt;/code&gt;. As humans we are constantly thinking it's something we can turn off but not all of it is critical thinking, no one thinks critically 100% of the time that would be pretty exhausting, instead it's an intentional process something that we consciously use when were presented with difficult problems or important decisions.&lt;/p&gt;

&lt;p&gt;In order to become a better critical thinker it's important to ask questions when you're presented with a problem or a decision before jumping to any conclusions you can start with simple ones like what do I currently know and how do I know this, another thing you can use is &lt;code&gt;5 whys Method&lt;/code&gt; this is a proccess of asking why repetitively until you get to the bottom of the issue (and YES the whys can be more than 5).&lt;br&gt;
This can help to give you a better idea of what you're working with and in some cases simplify more complex issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jhNJxbmZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zj8eu3801uhiz4odpwij.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jhNJxbmZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zj8eu3801uhiz4odpwij.jpeg" alt="Critical Thinking Example" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's take a look at how we can use critical thinking to evaluate online information, say a friend of yours posts a news article on social media and you're drawn to its headline. If you were to use your everyday automatic thinking you might accept it as fact and move on but if you were thinking critically you would first analyze the available information and ask some questions what's the source of this article, Is the headline potentially misleading what are my friends General beliefs and do they inform why they might have shared this. &lt;br&gt;
After analyzing all of this information you can draw a conclusion about whether you think the article is trustworthy.&lt;/p&gt;

</description>
      <category>codeofafrica</category>
      <category>awesomitylab</category>
      <category>bootcamp</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Task-Force Week 3 </title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Sun, 06 Mar 2022 09:57:31 +0000</pubDate>
      <link>https://dev.to/kabundege/task-force-week-3-3h9a</link>
      <guid>https://dev.to/kabundege/task-force-week-3-3h9a</guid>
      <description>&lt;p&gt;This week we bigged deeper into effective communication, where we looked at different cultures and how to bring the best from each (inter-cultural communication).&lt;/p&gt;

&lt;h2&gt;
  
  
  StereoTypes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lnsHnuO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m7lpvj12r71wue4nk8b3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lnsHnuO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m7lpvj12r71wue4nk8b3.jpeg" alt="SteroeTypes Illustration" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was aware of different cultures but I hadn't really considered how it could affect a formal or non-formal relationship between people.&lt;/p&gt;

&lt;p&gt;My parents raised me to be accepting of people no matter their appearance. If I had some stereotypes (a belief about a particular category of people) feelings towards, I should always be open to change, commit to knowing the person first, and always focus on what makes people similar to people different.&lt;/p&gt;

&lt;p&gt;This is done by putting yourself in someone else's shoes and thinking for a second (how would it make me feel if the tables were turned). after that emotional step in the right direction, it leads you to some good topics and away from harmful conversation topics.&lt;/p&gt;

&lt;p&gt;when you make the other party feel valid and safe, he/she will open up, and you'll both have effective communication.&lt;br&gt;
When you get past the stereotypes barrier, Then you can get quickly to the best next part about sharing your information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Values
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JyI1d1mB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xz36qlax258q37yqxv7n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JyI1d1mB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xz36qlax258q37yqxv7n.jpg" alt="Core Values" width="384" height="216"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Your values are the things that you believe are important in the way you live and work.&lt;br&gt;
Value is a big part of people, some are tough them from the childhood to their current age. values  (should) determine your priorities, and, deep down, they're probably the measures you use to tell if your life is turning out the way you want it to.&lt;/p&gt;

&lt;p&gt;When the things that you do and the way you behave match your values, life is usually good – you're satisfied and content. But when these don't align with your personal values, that's when things feel... wrong. This can be a real source of unhappiness.&lt;/p&gt;

&lt;p&gt;In these types of situations, understanding your values can really help. When you know your own values, you can use them to make decisions about how to live your life, and you can answer questions like these:&lt;br&gt;
What job should I pursue?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should I accept this promotion?&lt;/li&gt;
&lt;li&gt;Should I start my own business?&lt;/li&gt;
&lt;li&gt;Should I compromise, or be firm with my position?&lt;/li&gt;
&lt;li&gt;Should I follow tradition, or travel down a new path?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, take the time to understand the real priorities in your life, and you'll be able to determine the best direction for you and your life goals !&lt;/p&gt;

</description>
      <category>bootcamp</category>
      <category>awesomitylab</category>
      <category>coa</category>
      <category>knowledge</category>
    </item>
    <item>
      <title>Task Force 5.0 Second Week</title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Sat, 26 Feb 2022 22:48:47 +0000</pubDate>
      <link>https://dev.to/kabundege/task-force-second-week-39hm</link>
      <guid>https://dev.to/kabundege/task-force-second-week-39hm</guid>
      <description>&lt;p&gt;We started off with some more codewars challenges, though I consider myself an algorithm genie, some of the katas proved me wrong. on our way home I, Elvis, and Nicolas my Task-Force 5 colleagues, started going through different ways to solve the challenges, and by putting our thoughts together we were able to get passed our difficulties and accomplish our work in time.&lt;/p&gt;

&lt;p&gt;always asking or providing assistance requires communication skills. the first step is to hear out the other party, Wiseman once told me &lt;code&gt;The devil lies in the details&lt;/code&gt;.&lt;br&gt;
while listening you should always, communicate back either verbally, with short words, or with empathetic acts to confirm that you're following one's words, and later ask questions if any. as a developer I get &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VbfqfV9H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7q48vu0irjqoqb42kw3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VbfqfV9H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7q48vu0irjqoqb42kw3.jpg" alt="This is time" width="880" height="550"&gt;&lt;/a&gt;&lt;br&gt;
It was week was Time for new changes, &lt;code&gt;Winston Churchill said "To improve is to change"&lt;/code&gt;. I have been using &lt;code&gt;GITHUB&lt;/code&gt; as a professional version-control tool for quite a while now, and I didn't see myself having to change from it, anytime soon. &lt;br&gt;
Yannick &lt;code&gt;Awesomity Co-Founder&lt;/code&gt; introduced us to GitLab, and walked us through all the perks it brings to the table and how it is easy to set up and get running. &lt;br&gt;
At first, I was not on board with the idea, but later on, when he assigned us a task and told us to use GitLab instead, it gave me the opportunity to come out of my comfort zone and learn once something new.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TFbrPoMf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq7w22zbttqoll1op2fw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TFbrPoMf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq7w22zbttqoll1op2fw.jpeg" alt="Group Presentation" width="880" height="660"&gt;&lt;/a&gt;&lt;br&gt;
lastly, I was amazed by our presentation on Friday, which we were told to prepare for in less than 3 hours. we quickly got into teams, and suddenly everyone was focused on preparing their material for the presentation. This shows a great quality of how responsible, dedicated, and attentive good Engineers can be we assigned a task, and concluding The hard work paid off because every group had a great presentation and were able to answer all the questions asked by the audience &lt;/p&gt;

</description>
      <category>taskforce</category>
      <category>bootcamp</category>
      <category>codeofafrica</category>
      <category>awesomity</category>
    </item>
    <item>
      <title>Task-Force Pilot Week</title>
      <dc:creator>Christophe Kwizera</dc:creator>
      <pubDate>Sun, 20 Feb 2022 06:13:47 +0000</pubDate>
      <link>https://dev.to/kabundege/task-force-pilot-week-183o</link>
      <guid>https://dev.to/kabundege/task-force-pilot-week-183o</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Task-Force&lt;/strong&gt;&lt;br&gt;
Task force is a program aiming to bridge the knowledge gap of software developers either university graduates or self-taught developers with profound previous knowledge of programming or designing. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;find more about taskforce &lt;a href="https://codeofafrica.com/EN/blog/Life%20After-Taskforce"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1. Team Building&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NBD_Wmrz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/co2r94pyfcastc1o8afu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NBD_Wmrz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/co2r94pyfcastc1o8afu.jpeg" alt="Image description" width="750" height="492"&gt;&lt;/a&gt;&lt;br&gt;
We started off, with a team-building session. we started with a game of picking an egg and putting it on top of a bottle, which involved all 5 members of the group at once.&lt;/p&gt;

&lt;p&gt;one of many lessons I learned from that game is; to listen more to what my team members, before deciding on the action to be taken, for the treasure lies in details.&lt;/p&gt;

&lt;p&gt;later we were randomly picked, and assigned several assignments, which helped us put to use the skills we gained from the team building session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Project Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We had the opportunity to learn Project Management skills from Yves Ndejuru, where we took a deep dive into waterfall and Agile (project management methodologies).&lt;/p&gt;

&lt;h4&gt;
  
  
  Agile
&lt;/h4&gt;

&lt;p&gt;This can be described as an iterative approach to delivering a project throughout its life cycle. This methodology breaks down large tasks to be completed in specific time frames called sprints.&lt;br&gt;
In my point of view, it's used to promote flexibility, velocity (delivering pieces of the project to the user to ensure customer needs are met and get his/her product to the market in time with the best quality) and adaptability (enhance your product with the latest client needs). the methodology breaks down large tasks to be completed in specific time frames.&lt;/p&gt;

&lt;h4&gt;
  
  
  Waterfall
&lt;/h4&gt;

&lt;p&gt;unlike Agile, waterfall is best suited for projects with a clear picture of the final product, it only works if a client doesn’t expect to make changes to the scope of the project after it has commenced.&lt;/p&gt;

&lt;p&gt;some areas that waterfall works well are; construction, Manufacturing, repeated services, and many more.&lt;/p&gt;

&lt;p&gt;in concluding there's more to come, in the 5 remaing weeks ahead, and i can't wait &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>taskforce</category>
      <category>bootcamp</category>
    </item>
  </channel>
</rss>
