<?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: Rishabh Saxena</title>
    <description>The latest articles on Forem by Rishabh Saxena (@rishabhs_dna).</description>
    <link>https://forem.com/rishabhs_dna</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%2F31362%2Fdfe4de73-ce82-487a-911e-c90c39df350b.jpg</url>
      <title>Forem: Rishabh Saxena</title>
      <link>https://forem.com/rishabhs_dna</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rishabhs_dna"/>
    <language>en</language>
    <item>
      <title>The Basics of Static Sites </title>
      <dc:creator>Rishabh Saxena</dc:creator>
      <pubDate>Fri, 01 Dec 2017 04:57:31 +0000</pubDate>
      <link>https://forem.com/rishabhs_dna/the-basics-of-static-sites-8d4</link>
      <guid>https://forem.com/rishabhs_dna/the-basics-of-static-sites-8d4</guid>
      <description>

&lt;p&gt;For most newcomers to web development, dynamic websites are the standard in Web 2.0 interactions. But that was not always the case.&lt;/p&gt;

&lt;h1&gt;
  
  
  The move to dynamic sites
&lt;/h1&gt;

&lt;p&gt;When &lt;a href="https://home.cern/topics/birth-web"&gt;Tim Berners-Lee created the internet&lt;/a&gt;, as an information-sharing portal between scientists, web pages were static HTML documents.&lt;/p&gt;

&lt;p&gt;Websites, at the time, were a collection of these static documents, stored in its entirety and there was minimal other interface on the server side.&lt;br&gt;
With the introduction of &lt;a href="https://en.wikipedia.org/wiki/Common_Gateway_Interface"&gt;CGI, or Common Gateway Interface&lt;/a&gt;, this changed. CGI allowed websites to run scripts and this enabled the web server to be more than just a storage facility of static HTML documents. The output of the scripts could be run on the server and displayed back on the website.&lt;/p&gt;

&lt;p&gt;This led to dynamic websites — websites with which you could interact and communicate. Along came a host of server side technologies and websites become more like applications being served on the web server.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why use static sites
&lt;/h1&gt;

&lt;p&gt;However, when it comes to aspects like speed, reliability and scaling, static sites offer unmatched performance. For use cases where content does not change often, such as blogs, landing pages, documentation and portfolio sites, static sites are a great solution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A static website is delivered to the user exactly as it is stored on the web server.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is because static sites are stored entirely in the server and only have static HTML, CSS and JavaScript files in them. When the server has to render the static site, it is able to serve the collection of files without having to send additional queries to a back end database. Each time an edit is made to the site’s content, it can be updated on the server end, in the static files. Since it is the browser that interprets HTML, CSS and JavaScript, and not the server, this enables a much more secure data package to be delivered and reduces chances of site failure.&lt;/p&gt;

&lt;p&gt;The most common challenges are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Deploying a static site has a steeper technical curve than publishing via a content management system like WordPress, Drupal or Django.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are limitations to what can be offered on the client side. For example, for an eCommerce site, the static route would not be a great idea. Similarly, for monetizing web pages using targeted marketing ads, static sites would be a dead-end (though you can always put banner ads on a static site).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The former is a speed bump, but tools like Lektor and Publii (more on them below) are making it easier to lower the barrier of entry. Jekyll, one of the most popular static site generators, is also growing in adoption.&lt;/p&gt;

&lt;p&gt;Static progressive web apps are now coming to the fore. These enable a lot of client side interaction using JavaScript and its frameworks, that may have been limited to dynamic sites earlier. For example, check out Balsamiq’s contact us page, &lt;a href="https://balsamiq.com/company/contact/"&gt;here&lt;/a&gt;. It is a static page using React.&lt;/p&gt;

&lt;p&gt;This article compiles a list of the resources you need to serve up your very own static site.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: If you have no previous experience with a static site before this, no worries. This article covers static site generators and CMSs that can help in that. I’d really advocate the “seeing-is-believing” approach when it comes to appreciating the performance of a static site. So just go ahead and jump into static sites with one of these tools.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Static Site Generators
&lt;/h1&gt;

&lt;p&gt;One of the essential characteristics of a static site generator is that it serves up a simple source folder, which is a self-contained static website in itself. Hosting this folder on the server will deploy the static site. Here is an exhaustive list of options when it comes to static site generators.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;One of the most popular static site generators, it supports importing from many dynamic blogs. It’s written in Ruby and is the engine behind GitHub Pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://hexo.io/"&gt;Hexo&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript and powered by Node.js. It allows one command deployment to GitHub Pages, Heroku, OpenShift etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="http://www.metalsmith.io/"&gt;Metalsmith&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Simple and an extremely pluggable static site generator — apart from the core functionality, everything is handled by plugins so it is extremely flexible. It’s written in JavaScript and can be used as more than just a static site generator; whether as a build tool, or even documentation generator.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;a href="http://gohugo.io/"&gt;Hugo&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Extremely fast and flexible. It’s written in Go. It comes with a bare bone structure in place so that you customize down to the smallest detail.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;a href="https://blog.getpelican.com/"&gt;Pelican&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Python, Pelican can handle content input in multiple formats (Markdown, reStructuredText etc.). It also provides multilingual support beyond English.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;a href="https://www.gatsbyjs.org/"&gt;GatsbyJS&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript, it generates a Static Progressive Web App; one advantage being that every change made can almost immediately be seen without having to reload the web page every time. It’s powered by React.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;a href="http://wintersmith.io/"&gt;Wintersmith&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in CoffeeScript and built on Node.js. It’s minimalistic, but can be customized and scaled with plugins.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;a href="https://nuxtjs.org/"&gt;Nuxt&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Nuxt creates a static generated Vue.js application. It’s written in JavaScript and uses Vue SSR to generate client as well as server side pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. &lt;a href="https://middlemanapp.com/"&gt;Middleman&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Ruby. Ruby language and RubyGems need to be installed to run Middleman. Minification, compressions and cache busting are built in. It follows Ruby on Rails conventions.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. &lt;a href="http://assemble.io/"&gt;Assemble&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript and built on Node.js. It has a host of plugins available; lots of options to customize.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Built on top of the Jekyll framework, the difference is that it does away with the time consuming parts of setting up a Jekyll site like configuration. It’s written in Ruby. The latest version, Octopress 3.0, restructures the framework so that each features becomes an extensible gem with its own documentation. This way users can customize and choose the parts of Octopress that they want to implement on top of Jekyll.&lt;/p&gt;

&lt;h3&gt;
  
  
  12. &lt;a href="https://jaspervdj.be/hakyll/"&gt;Hakyll&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in the Haskell language. It is well suited to small and medium sites.&lt;/p&gt;

&lt;h3&gt;
  
  
  13. &lt;a href="https://sculpin.io/"&gt;Sculpin&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in PHP and with a very simple setup. It combines plain text files with Twig templates to generate static pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  14. &lt;a href="https://www.getgutenberg.io/"&gt;Gutenberg&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in &lt;a href="https://www.rust-lang.org/en-US/"&gt;Rust&lt;/a&gt;, which gives it great compilation speed. It comes as a single executable file with no dependencies. Gutenberg also has Sass compilation and syntax highlighting built in.&lt;/p&gt;

&lt;h3&gt;
  
  
  15. &lt;a href="http://jigsaw.tighten.co/"&gt;Jigsaw&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in PHP. Jigsaw ompiles assets using Laravel Elixir. Elixir can be pre-configured so that the site is rebuilt automatically every time a change is deployed.&lt;/p&gt;

&lt;h3&gt;
  
  
  16. &lt;a href="https://getstatik.com/"&gt;Statik&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Python. It provides a fully customizable data model the ability to define custom taxonomies. It is good for creating static sites beyond blogs.&lt;/p&gt;

&lt;h3&gt;
  
  
  17. &lt;a href="http://www.mkdocs.org/"&gt;MkDocs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Python. MkDocs is aimed at creating quick project documentation with Markdown. It allows previews as you build and can be hosted almost anywhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  18. &lt;a href="https://github.com/eudicots/Cactus"&gt;Cactus&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Python. Cactus is easy to develop locally and deploy directly to Amazon S3. It has the option to preview the site from the development web-server built in.&lt;/p&gt;

&lt;h3&gt;
  
  
  19. &lt;a href="https://docpad.org/"&gt;DocPad&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in CoffeScript. DocPad is a dynamic static site generator; this means that it takes content from several sources and renders them as a static output. It has a tiny core with non-essential functionality offered as plugins, which means its lean and extensible.&lt;/p&gt;

&lt;h3&gt;
  
  
  20. &lt;a href="https://phenomic.io/"&gt;Phenomic&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript. Phenomic uses the React framework, which renders both client and server side pages. The user sees a static-pre-rendered version of the site, and as they explore new pages only the data necessary to render those parts is served. It is now pivoting towards being a modular website compiler so the static site can be rendered not just in React, but also in ReasonReact, Preact, Next.js, Vue and Angular.&lt;/p&gt;

&lt;h3&gt;
  
  
  21. &lt;a href="https://github.com/nozzle/react-static"&gt;React-Static&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript and focused on site performance, SEO and user/developer experience. It renders the site as a progressive static application.&lt;/p&gt;

&lt;h3&gt;
  
  
  22. &lt;a href="http://harpjs.com/"&gt;Harp&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript, Harp comes with built in pre-processing. It compiles a project down to its basic static assets.&lt;/p&gt;

&lt;h3&gt;
  
  
  23. &lt;a href="https://github.com/Jack000/Expose"&gt;Expose&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Static site generator that turns folders of images and videos into photoessays. It runs as a bash script and requires Imagmagik and FFmeg to work. Ideal for users who need a photo portfolio or gallery. &lt;a href="http://jack.ventures/2014/beijing/"&gt;This is a great example&lt;/a&gt; of what can be done with Expose.&lt;/p&gt;

&lt;h3&gt;
  
  
  24. &lt;a href="http://roots.cx/"&gt;Roots&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in CoffeeScript. Good for building static front ends, especially small to medium sized.&lt;/p&gt;

&lt;h3&gt;
  
  
  25. &lt;a href="https://www.getnikola.com/"&gt;Nikola&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in Python. It provides incremental builds and supports multiple input formats — reStructuredText, Markdown, IPython Notebooks and HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  26. &lt;a href="http://laktek.github.io/punch/"&gt;Punch&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Written in JavaScript, Punch is a web publishing framework built for designers and developers. It has a quick setup thanks to boilerplate code and minimal templates thanks to Mustache.&lt;/p&gt;

&lt;h1&gt;
  
  
  Static Content Management Systems
&lt;/h1&gt;

&lt;p&gt;You may ask why do I need a CMS if I’m using a static website? Well, the one thing that CMSs do simplify is access for non-technical users and enabling that content bottlenecks do not occur because of just one pipeline to push content. The issue with a lot of static site generators is that there is a fair amount of technical deployment. These CMSs can help with that.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://www.netlifycms.org/"&gt;Netlify CMS&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open source; Works with most static site generators; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://forestry.io/"&gt;Forestry.io&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free personal plan, paid plans starting from $9/site/mo; Supports Jekyll and Hugo; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="https://www.siteleaf.com/"&gt;Siteleaf&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free developer plan, paid plans starting from $7.20/mo; Supports Jekyll; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;a href="https://www.datocms.com/"&gt;DatoCMS&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free developer plan, paid plans starting from €9/mo (discounts for more than 1 site); Supports — Jekyll, Hugo, Middleman, Metalsmith, GatsbyJS, Hexo; API-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;a href="https://getpublii.com/"&gt;Publii&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open source; Publishes websites as static HTML files; App-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;a href="https://sitecake.com/"&gt;Sitecake&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open source; Drag and drop editor for HTML and PHP websites.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;a href="https://cloudcannon.com/"&gt;CloudCannon&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free starter plan, paid plans start from $25/mo; Supports Jekyll; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;a href="https://www.getlektor.com/"&gt;Lektor&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open source; Publishes sites as static HTML files; App and API-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. &lt;a href="https://appernetic.io/"&gt;Appernetic&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free plan till 14 publishings per week, Paid plans start from $0.5–$20.5; Supports Hugo; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. &lt;a href="https://bowtie.io/"&gt;Bowtie&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Plans starting at $10/mo; Supports Jekyll by default but can support other static site generators; Git-based.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. &lt;a href="https://www.contentful.com/"&gt;Contentful&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Free developer edition, paid plans starting at $249/mo; Supports Middleman, Jekyll, Metalsmith; API-based.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A static site can load up to 6 times faster than a regular web page! Considering such numbers and the effects that can have not just on user experience but also on the Google ranking and SEO, static sites are surely an area worth considering for your own website.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you’re looking to build your own site then these articles may also be helpful:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.zipboard.co/diy-website-tools-e4bda5b32934"&gt;How do I make my own website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.zipboard.co/which-cms-to-choose-kirby-grav-jekyll-or-craft-f7d61616510"&gt;Which CMS to chose - Kirby, Grav, Jekyll, or Graft&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.zipboard.co/best-platforms-and-content-management-system-for-ecommerce-websites-fad954c3ee72"&gt;Best Platforms and Content Management Systems for an E-Commerce Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article was first published on the &lt;a href="https://blog.zipboard.co/how-to-start-with-static-sites-807b8ddfecc"&gt;zipboard blog&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>html</category>
      <category>webdev</category>
      <category>staticsites</category>
      <category>cms</category>
    </item>
    <item>
      <title>Collaboration and Communication Simplify Bug Tracking</title>
      <dc:creator>Rishabh Saxena</dc:creator>
      <pubDate>Thu, 26 Oct 2017 06:23:38 +0000</pubDate>
      <link>https://forem.com/rishabhs_dna/collaboration-and-communication-simplify-bug-tracking-ahm</link>
      <guid>https://forem.com/rishabhs_dna/collaboration-and-communication-simplify-bug-tracking-ahm</guid>
      <description>

&lt;h1&gt;
  
  
  Why the old system isn’t good enough
&lt;/h1&gt;

&lt;p&gt;Bug tracking has increasingly expanded into the domains of the entire product team, not just R&amp;amp;D and for good reason. As software becomes complicated, it becomes more difficult to manage issues in excel sheets or post-its.&lt;/p&gt;

&lt;h2&gt;
  
  
  Need Process + Tools
&lt;/h2&gt;

&lt;p&gt;Having an expensive tool for tracking bugs will not solve the issues by itself. Investing in extensive solutions like JIRA or Redmine, that require a setup with databases and servers, does not not guarantee a sure shot solution.&lt;br&gt;
How the organization and team approach the process has a direct influence on the effectiveness of the setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bugs are a headache for everyone
&lt;/h2&gt;

&lt;p&gt;The teams that develop software and build products today are not composed merely of developers and quality assurance testers. There are many different stakeholders such as designers, product managers etc. Feedback from the end user is also a valued source of input in uncovering issues and the minutest problems are often discovered by the most ardent user.&lt;br&gt;
By putting the onus of finding issues on just the quality assurance team, not only is critical time lost in capturing and reporting the issue but also in getting it in front of the right person to get the problem resolved.&lt;/p&gt;




&lt;h1&gt;
  
  
  What the present system should do
&lt;/h1&gt;

&lt;p&gt;In the agile approach that has been adopted by most teams today, deployment and releases occur in rapid succession. Testing and QA cannot be put off to the end of sprints. Not only do issues have to be resolved quicker, their detection needs to be optimized as well. Hence, teams need to have processes and tools in place that not only allow identification of bugs but also foster efficient communication and collaboration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recreating the bug
&lt;/h2&gt;

&lt;p&gt;The single, most important concern with any issue or bug that is reported is reproducing it. The bug report should ideally state what the problem encountered was as compared to the right functionality, and provide sufficient context for the developer. Having witnessed a bug, the QA tester scrambles to record the exact steps that led to it. But this conventional approach has limitations.&lt;br&gt;
Chief among these is the loss of productivity on the developer’s end. The developer loses time recreating the issue, when they would be more productive if they had a live example of the issue. With a screen capture or recording of the bug, developers would, then, have much more time to actually fix it rather than reproduce it. If there’s a bug that is hard to recreate then having a live example can be even more helpful.&lt;br&gt;
Another area where the conventional approach comes up short is if the bug is user reported. Asking users to record the steps involved is just not practical. It is much more easier for the user to capture their screen, attach the image, and send it as feedback. But then you have a screenshot that has to be processed from the customer support team to the developers or designers, and it is just not efficient at scale. There are indeed many tools that provide the ability to annotate on issues and send them directly to developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prioritization
&lt;/h2&gt;

&lt;p&gt;Just like when prioritizing features during the development road map, issues and bugs have to be prioritized as well. When tracking bugs reported by users and your QA testers on a website or an application, the value of it has to be taken into account.&lt;br&gt;
Co-founder of Trello and Fog Creek Software, Joel Spolsky, mentions in one of his articles that, “Fixing bugs is only important when the value of having the bug fixed exceeds the cost of the fixing it. While he does list a disclaimer before people brand him as someone who does not care about fixing bugs, it is worth noting what is the value provided to the health of your system or the user’s experience when you tackle a bug.&lt;br&gt;
Certain issues are critical to track for the health of the system. Irrespective of whether they translate into direct use for the user or not, these critical issues need to resolved. On the other side of the spectrum, certain issues while not as critical to the system are important on the user side and that necessitates dealing with them pronto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessible to the entire team
&lt;/h2&gt;

&lt;p&gt;The only surefire way to guarantee bug-free software is to prevent their creation in the first place. Preventing bugs starts with communication and collaboration between product management, design, development, and QA.&lt;br&gt;
Given that different kinds of stakeholders work on a project, the tools and processes setup to counter them should be equally accessible. Wikis and issue tracking logs are still useful but they cannot work end to end on today’s projects, specially with web applications becoming more graphical than ever before. Couple this with the fact that teams are incredibly agile and you will see why only conventional issue trackers like JIRA or Redmine are not enough.&lt;br&gt;
In the move fast-break fast approach, every stakeholder has a role to play in making sure that no issues plague the application. This is why having more accessible tools like &lt;a href="https://zipboard.co"&gt;zipBoard&lt;/a&gt; enable everyone to contribute without setting up a database or installing more software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Organizing and filtering through the issues
&lt;/h2&gt;

&lt;p&gt;With users and internal team members both chiming in to share feedback and report issues, managing the sheer volume of it can become a task in itself. Both with internal and external feedback, you need to first and foremost classify the feedback into issues or feature requests.&lt;br&gt;
Help desk software, Groove’s team was facing similar issues and at one point were severely overwhelmed with the volume of things coming their way. Backlogs were piling up and teams were starting to get stretched beyond what they could manage. The were spending more time trying to get the workflow right, to manage the chaos, rather than actually working on the issue itself. Getting the workflow right is so so vital. If you don’t fix this in the beginning, it gets completely out of hand as the feedback starts to mount.&lt;br&gt;
The solution that works for our team is having one central platform for organizing everything. Apart from prioritizing feedback, assigning issues to the right person, sorting them into the right category, capturing metadata etc. are important to manage the volume of issues and bugs. Tags are another useful way to sort and organize issues so that teams can quickly filter through them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usability
&lt;/h2&gt;

&lt;p&gt;Every product and service today has an interface that is the primary source of interaction with the users. Users interact with products via a number of different devices. This means optimization for mobile, fitting screens to different resolutions and sizes, and making sure that your website or application works in a host of different environments.&lt;br&gt;
To give some perspective on the kind of variety available when it comes to devices on which applications can run, there are 8,075 certified Android devices that the iA Writer for Android application supports. Android in itself comes in 14,290 types of phones and tablets. Imagine the number of screens you have to develop and design for, when you throw in iOS, different desktops, laptops etc.&lt;br&gt;
Responsinator and Browsershots are some of the nifty tools that give you a quick glimpse of how your applications and websites look across the prominent screen sizes and browsers. Soap opera testing is one of the go to methods to uncover issues in responsive web development. Besides just the layout, elements that have to function uniformly across environments are colors, fonts, buttons, links etc.&lt;br&gt;
The variety in access is not just in devices but in people too. Many applications need to be translated for different countries and demographics. Often changes in language are accompanied by changes in design and structure.&lt;/p&gt;

&lt;p&gt;Information architecture, themes, audio, images, navigation — all these are elements that need to be reviewed in localization. One of the most common pitfalls that teams face is that the layout/UI is designed for English, and when the language is translated, phrases and text end up taking vastly different amounts of space than expected. This makes the design seem incoherent.&lt;br&gt;
When text is placed directly in the code, it becomes a tedious task to change it in all the different language instances of a project. Instead, if separate resource files are used, then a singular instance of the code can be translated to different languages and the changes do not have to be recurring.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;In large scale organizations, there’s an entire skeleton that supports development efforts so that issues do not go undetected, and yet they do sometimes. But smaller teams do not have the same kind of resources available, both in terms of technology and time. For such teams, having transparency in processes that makes things simple is the priority.&lt;br&gt;
Teams that still use Excel sheets and post-it notes to track issues are not using the optimal approach. What they’re attempting to do is not only track issues but collaborate and communicate over changes. But doing so via an Excel sheet get extremely tedious. The sheer volume of data that has to be managed gets overwhelming and that decreases the pace with which teams can tackle bugs.&lt;br&gt;
To have a lean setup, teams need tools that get the job done but do not increase overhead in doing so. This is why collaboration tools that provide context and make communication easier for everyone on the team are extremely useful.&lt;/p&gt;

&lt;p&gt;You can find more such articles on &lt;a href="https://blog.zipboard.co"&gt;the zipBoard blog&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>developer</category>
      <category>collaboration</category>
      <category>bugtracking</category>
      <category>issuetracking</category>
    </item>
    <item>
      <title>Five Reasons Why Developers Need Project Management Tools</title>
      <dc:creator>Rishabh Saxena</dc:creator>
      <pubDate>Thu, 05 Oct 2017 11:01:15 +0000</pubDate>
      <link>https://forem.com/rishabhs_dna/five-reasons-why-developers-need-project-management-tools-737</link>
      <guid>https://forem.com/rishabhs_dna/five-reasons-why-developers-need-project-management-tools-737</guid>
      <description>

&lt;p&gt;No matter how exciting it is to start working on a new project, there are still many hurdles the developers and the entire working team have to overcome. As business grows and projects mount, things can easily get out of hand. Many different &lt;a href="https://blog.zipboard.co/dealing-with-challenges-in-agile-methodology-e96e9db53ff4"&gt;challenges&lt;/a&gt; may arise. Instead of reaching the desired goals, developers might get overwhelmed by the challenges and eventually face the prospect of failure. Developers who are aiming at ambitious projects need to focus on high-quality work and operate under schedule. To make sure that everything runs smoothly, they usually opt for a robust and client-friendly &lt;a href="https://blog.zipboard.co/what-tools-do-you-use-to-manage-software-projects-a5b77502b5f2"&gt;management system tool&lt;/a&gt; that will segment the tasks and help the team bridge potential gaps. Here are a few reasons why a solid project management tool has become an imperative to almost any developer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Improved Team Collaboration&lt;br&gt;
One of the crucial reasons why developers go for a project management software is the fact it ultimately increases the team’s response time to comments and discussions. Since there are so many things that developers need to stay focused on, any interruption can have a damaging effect on their creativity. A good project management tool enables the team to distribute information on “need-to-know basis without interrupting anyone. Not only does it keep the team concentrated on work but it also improves productivity and keeps everyone in the loop. Creating clear and concise communication between the developer, designer, project manager and other team members is of crucial importance so as to avoid any misunderstandings and disagreements. It keeps the collaboration straightforward and all the project-related information at one place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Direct Communication with the Client&lt;br&gt;
While project managers usually act as intermediates between the client and the team, getting the client involved into the project from the start sometimes seems to be the least painful solution. A project management tool enables clients to see what developers and other team members are working on and provide feedback. If there is some sensitive information that should be kept within the team, it can easily be hidden. This way, a developer and the rest of the team maintains a healthy and simple collaboration with the client without making him feel uncomfortable and unsatisfied. It is important to constantly communicate progress and keep the clients regularly updated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Successful Time Tracking&lt;br&gt;
Clients are mainly interested in the final product and how much it will cost without caring too much about the time spent on the project development. Developers are advised to use best project management tools in order to make more time for situations which require additional work, especially if the client asks for reworks and changes. They need to keep track of all the payments and most frequently the best solution is to charge by an hour. A collaboration tool automatically stores time records which is an excellent substitute for a timesheet and a perfect timesaver. This also serves as a proof of the amount of time spent on the entire process and gives a client an important insight into the team’s work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easier Invoice Management&lt;br&gt;
Since working on large projects requires a constant flow of money, billing process should be quick and easy. Developers sometimes take responsibility for payments because they need them to be fast and efficient.&lt;br&gt;
Project management tool gives an opportunity to invoice time records on the project and to group them according to different categories such as job type, task, or a project. This makes it easier for clients to review invoices and finish payments in just a few clicks. Also, it keeps them well-organised and enables the developer to keep a track of the entire invoicing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Categorization of Complex Tasks&lt;br&gt;
When starting a project, many developers have to face not so glamorous part of it — a project planning. There are multiple tasks to be completed and they need a way to consistently organize their work. Most project management tools have a column for each project where it is possible to create various groups of tasks depending on the given project and the category such as:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Feature&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Priority&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complexity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Progress&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This way, workflow becomes easily manageable and straightforward. Another benefit of this feature is that it gives an overview of all the projects and their tasks in a Project Timeline report which helps developers track the busiest dates and avoid them accordingly.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
There you have it. If you want to keep your team organised, deliver the best results within desired timelines and budget, and triumph on your next development cycle, having an efficient project management tool is a big help to achieve that goal.&lt;/p&gt;

&lt;p&gt;Check out more such posts on the &lt;a href="blog.zipboard.co"&gt;zipBoard blog&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>developer</category>
      <category>projectmanagement</category>
      <category>productivity</category>
      <category>collaboration</category>
    </item>
    <item>
      <title>A Beginner’s Guide to CSS Front End Frameworks</title>
      <dc:creator>Rishabh Saxena</dc:creator>
      <pubDate>Mon, 28 Aug 2017 10:00:52 +0000</pubDate>
      <link>https://forem.com/rishabhs_dna/a-beginners-guide-to-css-front-end-frameworks</link>
      <guid>https://forem.com/rishabhs_dna/a-beginners-guide-to-css-front-end-frameworks</guid>
      <description>

&lt;h2&gt;
  
  
  What is a CSS framework?
&lt;/h2&gt;

&lt;p&gt;CSS frameworks provide a basic structure for designing consistent solutions to tackle common recurring issues across front end web development. They provide generic functionality which can be overridden for specific scenarios and applications. This greatly decreases the time needed to start creating applications and websites.&lt;/p&gt;

&lt;p&gt;This way developers do not have to start from scratch every time when building applications. They can reuse the basic foundation from earlier applications and get straight into working on the crux of the website or application rather than coding in every little details again and again for each application.&lt;/p&gt;

&lt;h3&gt;
  
  
  To summarize:
&lt;/h3&gt;

&lt;p&gt;A framework is a standardized set of concepts, practices and criteria for dealing with a common type of problem, which can be used as a reference to help us approach and resolve new problems of a similar nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wait, what about libraries?
&lt;/h2&gt;

&lt;p&gt;The key difference between a library and framework is where the control lies. In a library, control rests with the caller, i.e. you. This means you are in control of when the library should perform a particular function and the rest of the code, apart from that task, is independent of the library.&lt;/p&gt;

&lt;p&gt;In case of a framework, this control is inverted. The control flow is in the framework and you can customize it in places to suit your use case.&lt;/p&gt;

&lt;p&gt;There has been much debate about whether libraries are better or frameworks. But I take a more neutral approach to this topic. The answer, like in so many other debates, is it depends. If you’re working with a team that has a variety of team members of differing skills and is pressed on deadlines then frameworks provide structure and organization. Libraries wouldn’t solve the problem for you here.&lt;/p&gt;

&lt;p&gt;On the other hand, framework can have a lot of unnecessary code that adds to your application’s overhead. Hundreds of lines of code for functions that you may not be using at all. The scope of the framework can also be limiting for your application as the application’s exists inside the framework. But these pros and cons are not universal, whether for a library or a framework. For instance, in a smaller project, to accomplish specific tasks, multiple libraries may suffice. The same may not work when working on an enterprise project where the organization inherent in frameworks helps the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the advantages of using a CSS framework?
&lt;/h2&gt;

&lt;p&gt;Let’s look at the most obvious ones first. Time saved and a consistent structure.&lt;br&gt;
Since developers do not have to start from scratch every time, they are able to save time and focus on the application specific problem rather than the smaller details of environment. The aspect of being able to reuse code is a major plus point.&lt;/p&gt;

&lt;p&gt;The pre-defined structure that frameworks provide helps maintain consistency across applications and its various components. The package provided in front-end frameworks usually consist of HTML, CSS, and JavaScript files for ensuring various pages across the application have uniform design, typography, forms etc. The very popular Bootstrap framework, started at Twitter as a style guide for internal tools development.&lt;/p&gt;

&lt;h3&gt;
  
  
  In short:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Easier code maintenance&lt;/li&gt;
&lt;li&gt;Coherent organizational structure for the project&lt;/li&gt;
&lt;li&gt;Responsive media queries&lt;/li&gt;
&lt;li&gt;Uniform styling across tool tips, buttons, forms etc.&lt;/li&gt;
&lt;li&gt;Consistent set of fonts and icons to suit the interface&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another reason is that frameworks can provide developers with a certain amount of independence when working on projects. Developers do not necessarily need redline specifications for every single design element to be supplied by designers. They have a consistent design scheme implemented innately by the framework and can customize elements in specific cases, as per requirements. That’s not saying that designers become redundant when using frameworks. It just means that developers do not need to consult a redline or design guide for every element to attain pixel perfect uniformity.&lt;/p&gt;

&lt;p&gt;Designers can also use frameworks to cut down on the time they spend designing basic elements such as buttons and forms. Instead they can focus on other priorities in the design. Frameworks can thereby reduce overhead in designer developer collaboration.&lt;/p&gt;

&lt;p&gt;To better understand the appeal of a general framework over a simple design system or style guide, consider this.&lt;/p&gt;

&lt;p&gt;Joystick is a framework that was designed for internal usage at Electronic Artists (EA). The concept for it started out as a design system but the Experience design team realized that developers prefer to have actual implementable elements rather than style guides. Style guides and PDF guidelines do not really help developers because they still have all the work of turning those guidelines into useful markup.&lt;/p&gt;

&lt;p&gt;“Developers and Engineers had to be sold on the idea that Joystick would benefit them from day one. They have the ability to make and ship things every day with or without a designer and this is a factor in leveraging popular frameworks like Bootstrap or Foundation.”â€Š–â€ŠRyan Rumsey, Experience Design@EA&lt;br&gt;
By providing a framework for developers, designers and writers to draw from, the Experience design team was able to provide solid deliverables that could be extended and implemented. This helped create uniformity across the teams as well as reduce their effort. They were able to tackle the issues of scale and re-usability with one thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the different frameworks to choose from?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Boostrap
&lt;/h3&gt;

&lt;p&gt;One of the most popular front-end frameworks is of course Bootstrap, earlier called Twitter Blueprint. While developed as a tool for internal teams, once it was released its adoption has gone up tremendously. It provides design templates for common UI components like buttons, typography, forms, dropdowns, alerts, tabs, carousels, as well as optional JavaScript extensions.&lt;/p&gt;

&lt;p&gt;You can create a responsive layout with Bootstrap easily, which Bootstrap 3 heavily emphasised via its mobile-first capabilities. The ability to organize elements in a 12-column grid system with Bootstrap provides a clean consistent design across devices. Bootstrap utilizes Less stylesheets but has also been ported to Sass (which is maintained as a separate repository) so users of both can be content.&lt;/p&gt;

&lt;p&gt;Many teams also prefer Bootstrap because of the robust support it enjoys. Bootstrap currently has over 16,000 commits from about 900 contributors on its GitHub repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used on 3.4% of the web today and by 20% of the top million pages&lt;/li&gt;
&lt;li&gt;Preferable for projects where speed is a priority&lt;/li&gt;
&lt;li&gt;Preprocessors: Less, Sass&lt;/li&gt;
&lt;li&gt;Responsive and mobile-first&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Foundation
&lt;/h3&gt;

&lt;p&gt;Foundation is a responsive front-end framework for creating quick prototypes and production code for sites that work across multiple devices. Like Twitter is the backer behind Bootstrap, Zurb is the organization behind Foundation. You can see Foundation implemented in The Washington Post’s website as well as that of National Geographic Education. Foundation is based on a 940px grid system while Bootstrap is based on 1,170px grid layout.&lt;/p&gt;

&lt;p&gt;One of the advantages of using Foundation is the ability to whip up prototypes quickly, due to the bare bone structure of the framework and the starter templates offered. In the case of Washington Post, the design team is able to create prototypes for stories in just 15 minutes to test out designs. Foundation has good support as well with over 14,000 commits by over 940 contributors on GitHub.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Useful for quick prototyping&lt;/li&gt;
&lt;li&gt;Works with Sass stylesheets&lt;/li&gt;
&lt;li&gt;Offers greater flexibility&lt;/li&gt;
&lt;li&gt;Preprocessors: Sass&lt;/li&gt;
&lt;li&gt;Business support, training and consultation also available with the framework&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Skeleton
&lt;/h3&gt;

&lt;p&gt;Skeleton is a “simple, responsive boilerplate”. By its own admission, Skeleton is a good fit for smaller projects or if lightness is the priority (it has only about 400 lines of uncompressed code). The styles are designed more as a starting point, and not as much of a UI framework. Skeleton is also a great fit for mobile-focused designs due to it’s lightweight nature.&lt;/p&gt;

&lt;p&gt;Skeleton would also be a good starting point for beginners to front-end frameworks. It has clean code with simple layouts. That also translates to a slight mismatch when it comes to larger projects due to the lack of CSS richness and templates. Prototyping is also not the quickest in Skeleton.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lightweight framework with just about 400 lines of code&lt;/li&gt;
&lt;li&gt;Not ideal for large projects; lacks extensive templates&lt;/li&gt;
&lt;li&gt;Well suited for mobile-centric designs&lt;/li&gt;
&lt;li&gt;No preprocessors&lt;/li&gt;
&lt;li&gt;Good starting point for beginners&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UI Kit
&lt;/h3&gt;

&lt;p&gt;UI Kit elements are easy to customize and lightweight. It offers templates for quickly building web interfaces. Along with the installation package that contains all the HTML, CSS and JavaScript files, it also contains an autocomplete package for Sublime Text and Atom editors so that users do not have to look up UI Kit class names and markups again &amp;amp; again.&lt;/p&gt;

&lt;p&gt;A key difference between Foundation and Boostrap vs UI Kit is the grid system. UI Kit does not use a 12-column grid setup, rather breaks down the layout into three components, which are grid, flex and width. Using the grid component, one can create as many columns as required.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsive and lightweight&lt;/li&gt;
&lt;li&gt;Preprocessors: Less, Sass&lt;/li&gt;
&lt;li&gt;Not restricted to a 12-column grid&lt;/li&gt;
&lt;li&gt;Ability to extend and customize icons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besides these, other frameworks which you can try for your projects are&lt;br&gt;
TukTukâ€Š–â€ŠResponsive, lightweight; Object oriented CSS; Written in CoffeeScript&lt;br&gt;
Semantic UIâ€Š–â€ŠUses natural language principles to make code more readable; Less preprocessor; Responsive with simplified debugging&lt;br&gt;
YAMLâ€Š–â€ŠVery slim framework core (5.9 kB); Sass preprocessor; bulletproof modules; work for IE 6+&lt;br&gt;
960 Grid Systemâ€Š–â€ŠFluid and responsive; 12- or 16-column grid option available; useful for rapid prototyping as well as in production environment&lt;br&gt;
To see an even more extensive list of CSS front-end frameworks, see this comprehensive list: &lt;a href="http://usablica.github.io/front-end-frameworks/compare.html?v=2.0"&gt;http://usablica.github.io/front-end-frameworks/compare.html?v=2.0&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;While front-end frameworks are widely used now, both in personal and professional projects, there do persist arguments against using frameworks. These circle around writing your own design grid instead of using one of the responsive frameworks, increased load times, the tendency for all websites to look common, and the unnecessary bloat that comes along with a framework.&lt;/p&gt;

&lt;p&gt;As mentioned earlier, it varies from case to case and project to project. If it is suitable for your project, there’s no need to think twice. Frameworks have enough benefits to warrant their usage. When choosing the right framework for your project, consider some of these points. Does it have enough support and updates to keep up? Is it suitable for the scale of your project and for possible expansion in the future? Does it have good documentation to back it up?&lt;/p&gt;

&lt;p&gt;In case you liked this article, you may be interested in diving into CSS preprocessors: &lt;a href="https://blog.zipboard.co/do-i-need-to-start-using-css-preprocessors-a72b525c180a"&gt;https://blog.zipboard.co/do-i-need-to-start-using-css-preprocessors-a72b525c180a&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Reposted from the &lt;a href="https://blog.zipboard.co/a-beginners-guide-to-css-front-end-frameworks-8045a499456b"&gt;zipBoard&lt;/a&gt; blog.&lt;/em&gt;&lt;/p&gt;


</description>
      <category>webdev</category>
      <category>css</category>
      <category>beginners</category>
      <category>design</category>
    </item>
  </channel>
</rss>
