<?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>Forem: Uclusion</title>
    <description>The latest articles on Forem by Uclusion (@uclusionhq).</description>
    <link>https://forem.com/uclusionhq</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%2Forganization%2Fprofile_image%2F3008%2F7af24a87-0f11-4820-9fd9-7da024385153.png</url>
      <title>Forem: Uclusion</title>
      <link>https://forem.com/uclusionhq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uclusionhq"/>
    <language>en</language>
    <item>
      <title>Multiple tabs in your app</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Sun, 01 Nov 2020 01:57:47 +0000</pubDate>
      <link>https://forem.com/uclusionhq/multiple-tabs-in-your-app-133b</link>
      <guid>https://forem.com/uclusionhq/multiple-tabs-in-your-app-133b</guid>
      <description>&lt;p&gt;Update 2024 use &lt;a href="https://www.npmjs.com/package/tab-election"&gt;tab-election&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;We had some problems with multiple tabs that are pretty common:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing to storage could collide or not get picked up&lt;/li&gt;
&lt;li&gt;Logout in one tab would not be noticed in the other&lt;/li&gt;
&lt;li&gt;Sync with the backend would be done independently by all&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Being &lt;a href="https://www.uclusion.com/?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=multitab"&gt;Uclusion&lt;/a&gt; we of course used a Uclusion Dialog to decide and the options were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/broadcast-channel"&gt;broadcast-channel&lt;/a&gt; the NPM package&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API"&gt;Broadcast channel API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://felixgerschau.com/how-to-communicate-with-service-workers/#:~:text=Service%20Workers%20can%20intercept%20requests,when%20all%20tabs%20are%20closed"&gt;Service worker communication&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pretty easy decision because in addition to using broadcast channel API when available the NPM package supported leader selection. That allowed us to set up a React context to let us know anywhere in the code whether our tab was leader or not - see code &lt;a href="https://github.com/Uclusion/uclusion_web_ui/blob/a013f9327700f2d67d56df2d9154575b18cddde2/src/contexts/LeaderContext/LeaderContext.js"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We could also send messages to the other tabs telling them to refresh from IndexedDB &lt;a href="https://github.com/Uclusion/uclusion_web_ui/blob/0523b6fd43d8a696082b2ac1530c4081a3594f4b/src/contexts/CommentsContext/commentsContextReducer.js"&gt;like so&lt;/a&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 myChannel = new BroadcastChannel(COMMENTS_CHANNEL);
      return myChannel.postMessage('comments').then(() =&amp;gt; myChannel.close())
        .then(() =&amp;gt; console.info('Update comment context sent.'));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the basic idea we followed was the leader syncs from the backend and stores in an IndexedDB namespace and all other tabs store their local edits in a differently named IndexedDB namespace. Its very unlikely more than one tab is doing local edits at a time and even if somehow they were the sync from the network is the eventual master.&lt;/p&gt;

&lt;p&gt;Also very simple &lt;a href="https://github.com/Uclusion/uclusion_web_ui/blob/fdab31beb38bac3c1cc581a9c38fe06798dfe422/src/pages/Authentication/SignOut.js"&gt;logout&lt;/a&gt; broadcasts a message which is listened for by the other tabs &lt;a href="https://github.com/Uclusion/uclusion_web_ui/blob/b73290bcaf7ad8be153ff8dc31f253378e30a21f/src/containers/Header/index.js"&gt;here&lt;/a&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 [logoutChannel, setLogoutChannel] = useState(undefined);

  useEffect(() =&amp;gt; {
    console.info('Setting up logout channel');
    const myLogoutChannel = new BroadcastChannel('logout');
    myLogoutChannel.onmessage = () =&amp;gt; {
      console.info('Logging out from message');
      onSignOut().then(() =&amp;gt; console.info('Done logging out'));
    }
    setLogoutChannel(myLogoutChannel);
    return () =&amp;gt; {};
  }, []);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>architecture</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Traditional Kanban boards aren’t the best for stories.</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Tue, 06 Oct 2020 22:34:56 +0000</pubDate>
      <link>https://forem.com/uclusionhq/traditional-kanban-boards-aren-t-the-best-for-stories-3fe5</link>
      <guid>https://forem.com/uclusionhq/traditional-kanban-boards-aren-t-the-best-for-stories-3fe5</guid>
      <description>&lt;p&gt;Kanban was developed for factory floors and operates best with tasks that don’t require additional discussion, are well defined, exist in discrete stages, and proceed in a continuous flow.&lt;/p&gt;

&lt;p&gt;Bugs, and very small feature requests fit this model well, which is why Kanban is a popular methodology today with Trello and Github providing popular boards.&lt;/p&gt;

&lt;p&gt;Unfortunately, every other kind of story doesn’t work so well. Stories that are part of larger work require frequent collaboration as the overall requirements evolve. Conceptually, such stories exist in discrete stages, but in reality stories influence each other: comments and suggestions abound, and traditional  Kanban boards don’t have a way to display the true status.&lt;/p&gt;

&lt;p&gt;What’s needed is a new type of Kanban board that integrates stories and communication. Suggestions during implementation should result in resolution during review, and failure to do so should be immediately apparent. Status needs to evolve from a simple column into a real-time view of what people are saying about the story.&lt;/p&gt;

&lt;p&gt;Without such improvements, Kanban boards are not able to serve the needs of complex development, and will always be a source of frustration.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>agile</category>
    </item>
    <item>
      <title>Development Collaboration is Complete Bullshit</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Mon, 05 Oct 2020 22:11:58 +0000</pubDate>
      <link>https://forem.com/uclusionhq/development-collaboration-is-complete-bullshit-1g60</link>
      <guid>https://forem.com/uclusionhq/development-collaboration-is-complete-bullshit-1g60</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Developers are not ok with spending hours talking about out what to do next week&lt;/li&gt;
&lt;li&gt;Daily standups are rarely actually useful&lt;/li&gt;
&lt;li&gt;Backlogs are where things go to do die&lt;/li&gt;
&lt;li&gt;Notifications and "responsiveness" are the modern equivalent to a dog leash&lt;/li&gt;
&lt;li&gt;Video meetings with children running around are comically painful&lt;/li&gt;
&lt;li&gt;Three people can agree on a meeting time, if two of them are dead&lt;/li&gt;
&lt;li&gt;We're still dealing with "core hours" when nobody's life is that simple&lt;/li&gt;
&lt;li&gt;Only estimating ahead of time doesn't even work for bathroom remodeling&lt;/li&gt;
&lt;li&gt;Project management tools give managers what they want but not what they need&lt;/li&gt;
&lt;li&gt;Engineers are judged on adherence to process instead of outcomes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What’s needed is a collaboration style that gives developers a seat at the table, without gluing them to their chair.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Backlogs don't make sense anymore</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Sat, 19 Sep 2020 00:13:17 +0000</pubDate>
      <link>https://forem.com/uclusionhq/backlogs-don-t-make-sense-anymore-4lmh</link>
      <guid>https://forem.com/uclusionhq/backlogs-don-t-make-sense-anymore-4lmh</guid>
      <description>&lt;p&gt;Backlogs are the ordered list of items the team may take on in future sprints.&lt;/p&gt;

&lt;p&gt;Modern customers expect short delivery cycles, and aren’t willing to wait for deliverables. In that environment, something that’s not getting done in the next sprint is the first candidate to drop when interruptions “blow up the sprint”.&lt;/p&gt;

&lt;p&gt;Unfortunately this means that backlogs are where things go to die.&lt;/p&gt;

&lt;p&gt;Maintaining the backlog requires the team to meet every sprint for at least an hour for “refinement”. This only pays off if the backlog items are worked on, which as stated above, is increasingly less likely. This is one of the reasons engineers tend to hate refinement meetings. They are tedious, and the return on time invested is horrible.&lt;/p&gt;

&lt;p&gt;There is a better way.&lt;/p&gt;

&lt;p&gt;Instead of a backlog of things that won’t get done, only keep track of stories that you’re going to do right now.  When a story is created, assign it to a developer, and have the entire team weigh in on whether it should be done. Developers in turn, only start stories that their team considers worthy, and discard ones that don’t make the cut. In other words, continuously refine and plan, instead of waiting for the story to lose relevance.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>agile</category>
    </item>
    <item>
      <title>Planning meetings are an exercise in futility.</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Thu, 17 Sep 2020 22:33:40 +0000</pubDate>
      <link>https://forem.com/uclusionhq/planning-meetings-are-an-exercise-in-futility-i1h</link>
      <guid>https://forem.com/uclusionhq/planning-meetings-are-an-exercise-in-futility-i1h</guid>
      <description>&lt;p&gt;When sprint planning was first proposed software development cycles were measured in quarters or years. In that environment getting together to plan once every few weeks made a lot of sense, as the environment the software lived in wouldn’t be likely to change in that time.&lt;/p&gt;

&lt;p&gt;That’s just not the case anymore, especially for online platforms. Software is deployed in weeks, or in some shops hours. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a development plan for a fast release cycle costs too much.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sprint planning is a significant investment of time and energy. The meeting requires everyone to get together for at least an hour, usually more. In order to make that investment pay off you have to speed up delivered software development by at least as many man hours. The shorter the sprint, the worse this ratio gets, and your process overhead goes through the roof.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plans are unlikely to survive, even if sprints are short.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditional agile process has been a victim of its own success. Software delivery speed has gone up, and customers are no longer willing to wait months for a fix or for critical features to be developed. This means that whatever plans you make are increasingly likely to be interrupted by business needs. “Blowing up a sprint” isn’t a big deal if it happens once every few months, but it’s now happening all the time. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A better way is needed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of trying to decide what’s getting done all at once, planning needs to happen all the time. Instead of building a backlog, when a story is created it is directly assigned to a developer, and the entire team weighs in on whether it should be done. Developers in turn, only start stories that their team considers worthy. When a story is blocked, before work starts again it must be considered alongside the new tasks that have arrived.&lt;br&gt;
In other words, there’s no such thing as ‘blowing up the plan” only a succession of stories that are worth working on right now.&lt;/p&gt;

&lt;p&gt;Enabling such a process is one of the goals of Uclusion, and we hope you’ll give it a try.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Standups used to make sense, they don’t anymore.</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Thu, 17 Sep 2020 01:22:19 +0000</pubDate>
      <link>https://forem.com/uclusionhq/standups-used-to-make-sense-they-don-t-anymore-1kbc</link>
      <guid>https://forem.com/uclusionhq/standups-used-to-make-sense-they-don-t-anymore-1kbc</guid>
      <description>&lt;p&gt;Back when daily standups were conceived they were a good solution to waterfall development problems. Instead of working on their specification in isolation, everyone would get in a room and any issues would be surfaced before they got out of hand.&lt;/p&gt;

&lt;p&gt;Unfortunately, they don’t really work well in the world we now find ourselves in. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The assumption that everyone is in the same room doesn’t translate well into online experiences.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Somebody, somewhere, is going to have a technical glitch, or forget to mute, or have a dog turn over the laptop. Unless everyone has a dedicated home office, it’s just not going to be possible to bring the same level of concentration to the meeting. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Once a day isn’t enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From the developer side, standups only really worked when we could have all the little conversations to clear blockages outside the standup. We don’t get those hallway conversations anymore, so the standup takes way longer than it should. You can try to keep that out of the meeting, but I’ve never seen it successfully done. Developers just want to help too much.&lt;/p&gt;

&lt;p&gt;From the business side, the same lack of little conversations means that progress isn’t being made until tomorrow, and that utterly kills productivity. You can try to fix it by having more frequent group checkins, or a chat channel that should be monitored, but then you just wind up killing productivity because people are always getting interrupted when they need to focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There is a better way.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of standups, what’s needed is continuous collaboration. Status isn’t something that exists at a point in time, it’s something that everyone should be able to see whenever they want. Questions and issues need to be reflected in that status, and should cause the appropriate people to be notified, instead of taking the entire team’s time.&lt;/p&gt;

&lt;p&gt;Continuous actionable status is one of the things we’re trying to bring to life with Uclusion, and we hope you give it a try.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Uclusion React code now public</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Sat, 12 Sep 2020 16:21:51 +0000</pubDate>
      <link>https://forem.com/uclusionhq/uclusion-react-code-now-public-3a42</link>
      <guid>https://forem.com/uclusionhq/uclusion-react-code-now-public-3a42</guid>
      <description>&lt;p&gt;In order to help with the learning curve in React, Uclusion &lt;a href="https://github.com/Uclusion/uclusion_web_ui"&gt;uclusion_web_ui&lt;/a&gt; is now public with a Readme to many articles on Dev.To explaining its code.&lt;/p&gt;

&lt;p&gt;I've been searching for a while now and am unable to find anything like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Public UI for a large recently launched React application that you can log in for free and use&lt;/li&gt;
&lt;li&gt;Explained point by point with blogs and we are happy to add more if you request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.com/mattermost/mattermost-webapp"&gt;Mattermost&lt;/a&gt; was the closest I was able to find and until their cloud beta finishes you have to setup a server to run them. With a Github or Google identity you are one click away from running Uclusion (and with any email several clicks) - no credit card required.&lt;/p&gt;

&lt;p&gt;If you are new to React or even front end development in general then this repo and accompanying blogs are the resource I wish I had a couple of years ago. At the time we used Tarik Huber's excellent &lt;a href="https://github.com/TarikHuber/react-most-wanted"&gt;React Most Wanted&lt;/a&gt; which I also recommend but its no substitute for access to documented, easy to run, production level code.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>news</category>
    </item>
    <item>
      <title>React Wizards with State</title>
      <dc:creator>Benjamin Follis</dc:creator>
      <pubDate>Fri, 11 Sep 2020 02:18:44 +0000</pubDate>
      <link>https://forem.com/uclusionhq/react-wizards-with-state-19n6</link>
      <guid>https://forem.com/uclusionhq/react-wizards-with-state-19n6</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TPcc6Z4V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4a0xazc4zr201e72p1pc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TPcc6Z4V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4a0xazc4zr201e72p1pc.png" alt="UclusionWizard"&gt;&lt;/a&gt;&lt;br&gt;
Hi,&lt;br&gt;
Over at Uclusion, we have a fairly large amount of information required to properly set up a Workspace (or Dialog, or Initiative). As we talked about in &lt;a href="https://dev.to/uclusion/wizards-aren-t-just-for-hogwarts-14kd"&gt;Wizards aren't just for Hogwarts&lt;/a&gt;, to make sure our users aren't hit with too much information at once, we've converted all of our top level creation flows to Wizards.&lt;/p&gt;

&lt;p&gt;While doing so we discovered that the most annoying part was keeping track of the form state that the user had entered, and making sure the user could resume if they had to reload or just set down work.&lt;/p&gt;

&lt;p&gt;To make sure YOU don't have to go through the same annoyance, we're open sourcing &lt;a href="https://github.com/uclusionopensource/react-formdata-wizard"&gt;react-formdata-wizard&lt;/a&gt;, which will maintain all the state transitions, form data, resets, etc, all in one easy to deal with package. &lt;/p&gt;

&lt;p&gt;Unlike other react wizard projects we &lt;em&gt;do not&lt;/em&gt; render any UI or nav buttons, but instead provide you with the properties you need to make your own. That keeps state management separate from UI, the way it should be.&lt;/p&gt;

&lt;p&gt;Enjoy, and expect more changes as time goes on. We're busily rebasing the entirety of the wizard flow on this package.&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
    <item>
      <title>Responding to Mr. Hastings  statements about WFH</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Wed, 09 Sep 2020 18:57:37 +0000</pubDate>
      <link>https://forem.com/uclusionhq/responding-to-mr-hastings-statements-about-wfh-269f</link>
      <guid>https://forem.com/uclusionhq/responding-to-mr-hastings-statements-about-wfh-269f</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hTJNLMZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/59ydloijfzsystx4pae0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hTJNLMZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/59ydloijfzsystx4pae0.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine a world like ours suffering a pandemic but there are no streaming services. The movie theaters shut down and people are forced to watch entertainment from the internet in any way they can cobble together.&lt;/p&gt;

&lt;p&gt;Now along comes someone and says watching from home is "&lt;a href="https://archive.is/6iK6Z"&gt;a pure negative&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Mr. Hastings says, "Debating ideas is harder now." just as in that alternate no streaming services world someone might say, "full immersion in the entertainment is harder now."&lt;/p&gt;

&lt;p&gt;Of course without streaming services one would have no concept of binge watching and so watching from home would have less upside. Just as in a world where working from home tools like &lt;a href="https://www.uclusion.com"&gt;Uclusion&lt;/a&gt; are unknown it might seem that asynchronous collaboration is very difficult.&lt;/p&gt;

&lt;p&gt;Early on in any technological change skeptics can poke fun. The real surprise is a visionary like Hastings having so little vision on this subject:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If I had to guess, the five-day workweek will become four days in the office while one day is virtual from home. I’d bet that’s where a lot of companies end up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why not four days virtual from home and one day in the office? If WFH is such a negative why would people want the one day from home? America is very early on in this experiment and already working remotely is working much, much better than predicted. As new technology built for asynchronous collaboration becomes more wide spread the case for a high percentage of time in the office will only decrease.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>remote</category>
      <category>leadership</category>
    </item>
    <item>
      <title>How Uclusion Makes Life Easier for the Team Lead</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Fri, 17 Jul 2020 00:32:41 +0000</pubDate>
      <link>https://forem.com/uclusionhq/how-uclusion-makes-life-easier-for-the-team-lead-25f4</link>
      <guid>https://forem.com/uclusionhq/how-uclusion-makes-life-easier-for-the-team-lead-25f4</guid>
      <description>&lt;p&gt;As a point of departure let’s use Lane Wagner’s observations on four problems faced by current common process:&lt;br&gt;
&lt;a href="https://hackernoon.com/leave-scrum-to-rugby-4-major-issues-with-using-scrum-gp2x3uyi?source=rss"&gt;&lt;strong&gt;Leave Scrum To Rugby - 4 Major Issues With Using Scrum | Hacker Noon&lt;/strong&gt;&lt;br&gt;
*Bitcoinist, libertarian, atheist, cryptography fan, and founder of http://qvault.io Scrum is a buzzword, the virtue…*hackernoon.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem #1 — Scrum Is Vague
&lt;/h2&gt;

&lt;p&gt;Here’s how &lt;a href="https://www.uclusion.com/?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=devteamlead"&gt;Uclusion&lt;/a&gt;’s built in workflow and rules make the state of development crystal clear:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0sVqTjRA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2562/1%2Aql4deunjN3OZ9TTK7les8g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0sVqTjRA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2562/1%2Aql4deunjN3OZ9TTK7les8g.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a glance, Dene Jille’s story in Proposed is not approved yet (red text), her story In Progress is on track, her story in Review has unresolved comments (red text), she is Blocked on “Map software” story and Requires Input on “Naming and domain” story.&lt;/p&gt;

&lt;p&gt;This is all backed by Uclusion enforcing only one story In Progress at a time and opening a blocking type comment automatically moving the story to Blocked. Also, Opening a Dialog on a story automatically moves it to Requires Input, and if a story is past its estimated completion date then Dene has to enter a progress report or the whole card shows yellow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem #2 — The “Sprint”
&lt;/h2&gt;

&lt;p&gt;Sprints don’t enable agile software delivery — they crush agile altogether unless you live in some dinosaur world where collaboration can wait to happen once every two weeks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x42jlAwq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2472/1%2AVGlzmmGHywUg8tpbbR69iw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x42jlAwq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2472/1%2AVGlzmmGHywUg8tpbbR69iw.png" alt="Uclusion Workspace with a new edit showing a highlighted diff"&gt;&lt;/a&gt;&lt;em&gt;Uclusion Workspace with a new edit showing a highlighted diff&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Uclusion works a different way.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Don’t maintain a backlog of fully flushed out stories that may or may not be ever implemented. Instead keep your requirements in a wiki like area in the Workspace. When the requirements are changed everyone will be notified and see a diff.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A developer or team lead will write up a story from the list of requirements and assign it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The story will be in Proposed and one or more members of the team can approve it&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uALKaDEb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2516/1%2AQ3DMhrRuYv4-iB6FPKtpVA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uALKaDEb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2516/1%2AQ3DMhrRuYv4-iB6FPKtpVA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you really want every single team member to estimate and approve the story then there is a Workspace setting for the number of approvals required — change it to the size of your team. The important thing is that the approval, implement and review cycle in Uclusion is truly continuous — not on arbitrary Sprint boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem #3 — The Scrum Master
&lt;/h2&gt;

&lt;p&gt;Effectively Uclusion has automated some of what was perceived as a Scrum master’s job.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--huwwkKeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A_zd6xsXR4jvu3mq5miaT6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--huwwkKeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A_zd6xsXR4jvu3mq5miaT6w.png" alt="Uclusion notifies everyone so a Scrum master does not have to"&gt;&lt;/a&gt;&lt;em&gt;Uclusion notifies everyone so a Scrum master does not have to&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;However fully agile software delivery has a lot better things for a process person to do. With the team at full speed and potentially changing direction more often the work shifts to helping get everyone on the same page. Here is where Uclusion’s structured communication shines:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wLm-NRUx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4000/0%2AZLFcSj0Zr3nayYs2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wLm-NRUx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4000/0%2AZLFcSj0Zr3nayYs2.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Opening a TODO on a story prevents it from changing stage until the TODO is resolved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Aa1_cZLc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2526/1%2AhRCqfADHQbf4y0E4SVrKIw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Aa1_cZLc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2526/1%2AhRCqfADHQbf4y0E4SVrKIw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Options for doing a story get their approval right inside the story. Now when the team lead or process czar wants to keep things moving he can see exactly what the issues are and, if necessary, call meetings that have an agenda that makes sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem #4 — Estimates
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;In Scrum&lt;/strong&gt; &lt;strong&gt;you don’t even write down people’s individual opinions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Much of the Scrum ceremonies are data for the sake of data instead of being actionable. If your burn down chart looks bad or Sprint estimates are wrong what are you going to do about it? Most likely have a retrospective meeting where nothing is resolved either. Instead of a traditional retrospective Uclusion recommends &lt;a href="https://medium.com/uclusion/how-teams-work-with-uclusion-d675bdfc4fca"&gt;opening a Dialog&lt;/a&gt; and doing something with about it now — not 2 weeks later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--reB43igU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2458/0%2A2VhiXEKWFMs1PVMK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--reB43igU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2458/0%2A2VhiXEKWFMs1PVMK.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Its just easier
&lt;/h2&gt;

&lt;p&gt;If you are a team lead insist on a process and supporting collaboration tool that matches the way software is built in 2020. We think Uclusion is that tool and would love to talk about it — &lt;a href="https://calendly.com/uclusion/30min"&gt;https://calendly.com/uclusion/30min&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>agile</category>
    </item>
    <item>
      <title>Getting the highest ROI out of Contractors</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Tue, 14 Jul 2020 21:38:57 +0000</pubDate>
      <link>https://forem.com/uclusionhq/getting-the-highest-roi-out-of-contractors-5f3c</link>
      <guid>https://forem.com/uclusionhq/getting-the-highest-roi-out-of-contractors-5f3c</guid>
      <description>&lt;p&gt;&lt;a href="https://www.uclusion.com/?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=devcontractor"&gt;Uclusion&lt;/a&gt;, works a lot with contractors. If you’ve ever done so yourself, you understand that the single biggest problem is making sure that the contractor is constantly doing useful work.&lt;/p&gt;

&lt;p&gt;We believe that the features we describe below are the &lt;em&gt;minimum requirements&lt;/em&gt; for any product which is going to help you get good ROI from your contractors.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Contractor “Swim Lanes” (personalized Kanban boards), are right on your home page.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ORpnTQpP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4598/1%2A6rNCB3KQzD5_LyvZmdxAsQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ORpnTQpP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4598/1%2A6rNCB3KQzD5_LyvZmdxAsQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Approval for a story requires value to be assigned to a story.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ujxmvw5i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4506/1%2AyZJ_OHWkojsz-mkugi0-cA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ujxmvw5i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4506/1%2AyZJ_OHWkojsz-mkugi0-cA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;If the story is taking more time than estimated we will demand a progress report from the contractor and mark the story as in danger.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ihLMm_Zg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4604/1%2AglQZ1cmWUZJ_307jMgZ52A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ihLMm_Zg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4604/1%2AglQZ1cmWUZJ_307jMgZ52A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;When your contractor raises a blocking issue on a story, you will be immediately notified, and will see it in the swim lanes.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--82vgeZtD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4730/1%2AAy46dxoXtMKZhvpiU6HG3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--82vgeZtD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4730/1%2AAy46dxoXtMKZhvpiU6HG3g.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;You can provide, TODOs and the contractor can’t move the story forward until they do what you tell them.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L81VA8wG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4486/1%2AR2Uq_cNYd3nqznSFP0JwPA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L81VA8wG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/4486/1%2AR2Uq_cNYd3nqznSFP0JwPA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;It’s clearly visible when a story needs your input.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sqa_-VTp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2512/1%2AJkv0eH_-3MkaCggY5N0oYw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sqa_-VTp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2512/1%2AJkv0eH_-3MkaCggY5N0oYw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Communication resides inside the story, not outside of it.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7k3a9IjN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2536/1%2A9sucgym1XQC8xzZkPogXiQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7k3a9IjN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2536/1%2A9sucgym1XQC8xzZkPogXiQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;You can easily communicate with images and files, not just text.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hz1WNN6a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2464/1%2AJiDhwpQA-Fu0I_GEro9qTw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hz1WNN6a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2464/1%2AJiDhwpQA-Fu0I_GEro9qTw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  It &lt;em&gt;is&lt;/em&gt; possible to effectively manage contractors without spending inordinate amounts of time or effort. However to do so you need a tool like Uclusion, or you’re going to see significantly lower ROI than you could be.
&lt;/h2&gt;

</description>
      <category>productivity</category>
      <category>management</category>
    </item>
    <item>
      <title>Is Testim worth using for automated testing?</title>
      <dc:creator>David Israel</dc:creator>
      <pubDate>Fri, 10 Jul 2020 19:50:37 +0000</pubDate>
      <link>https://forem.com/uclusionhq/is-testim-worth-using-for-automated-testing-3cad</link>
      <guid>https://forem.com/uclusionhq/is-testim-worth-using-for-automated-testing-3cad</guid>
      <description>&lt;p&gt;For the past couple of weeks, I have been using Testim.io as a tool to create tests for the company &lt;a href="https://www.uclusion.com/?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=devtestim"&gt;Uclusion&lt;/a&gt;’s user interface, so it’s safe to say I have a pretty good impression on the site’s capabilities. In short, it’s a mixed bag. The amount of struggle you’ll have in Testim entirely depends on what you’re testing. Testim excels when you bug-test simple things, like the Google Calculator: the test making process and run-through are notably smooth . But when you try to use it for full-blown websites, like the Uclusion.com site I’m working on now, …not so much. Here is a list of its strengths and weaknesses, so you can decide whether Testim is the one for you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Strengths:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9fgw0ayV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ad56uTZoVnTE07T9YFFV8EA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9fgw0ayV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ad56uTZoVnTE07T9YFFV8EA.png" alt="“Educate” on top, support on bottom."&gt;&lt;/a&gt;&lt;em&gt;“Educate” on top, support on bottom.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Great customer service.&lt;/strong&gt; If you have a question or concern, on the upper right, they have an “educate” button that answers a variety from frequently asked questions, from basic to expert. If you can’t find what you’re looking for in there, you can contact their support team, who respond in a couple of minutes. They are a really nice group of people who try to answer anything problems you have.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easy to use.&lt;/strong&gt; Pictures 2 and 3 on the bottom left is a test I made for Uclusion, where it tests its Google sign up option. As you can see, it allows groups, which are very useful for reusing steps, making the test creating process significantly faster. Once you have created the test, the run through is very straight forward, telling you exactly where it messes up (if there is an error that is). Testim is very comparable to coding. It will do exactly the instructions you give it. The instruction making process is very simple: all you have to do is perform an action, and Testim will record it and replicate it as an instruction. Just remember whatever you do when recording, you’re doing in an actual browser.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CxRkEE8H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3192/1%2Ac-HpYIZcXWBadG5lfBJcVQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CxRkEE8H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3192/1%2Ac-HpYIZcXWBadG5lfBJcVQ.png" alt="Picture 2 (An array of subsequent groups)"&gt;&lt;/a&gt;&lt;em&gt;Picture 2 (An array of subsequent groups)&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Weakness:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_NnQ3u9N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3220/1%2AA1GEY6qV6BMCwPduMh-1sw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_NnQ3u9N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/3220/1%2AA1GEY6qV6BMCwPduMh-1sw.png" alt="Picture 3 (The steps inside a group)"&gt;&lt;/a&gt;&lt;em&gt;Picture 3 (The steps inside a group)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Major lack of flexibility.&lt;/strong&gt; All of Testim’s weaknesses stem from this, so instead of having a long list of each individual weakness, I’ll try to summarize my problems so far. When I said the instruction making process is simple, I didn’t necessarily say it was good, or flexible. If you intend to use it as a legitimate website testing tool, this is where you’ll run into problems. You are extremely limited in what actions you can perform. For example, Testim doesn’t have a function where you can navigate through Google accounts without programming. It will also be unable to catalog links. If you copy a generated link, Testim will generate a step where it continually navigates to that specific link you clicked, rather then the general “copy and paste generated link” step you probably intended. In short, if you try anything that is the slightest abnormal Testim will either be unable to create that action for you, or be inconsistent in the test running process.&lt;/p&gt;

</description>
      <category>testing</category>
    </item>
  </channel>
</rss>
