JavaScript on your schedule

#​633 — April 6, 2023

Read on the Web

❓ JavaScript Weekly on a Thursday? It’s true. As well as it being Good Friday tomorrow, we’ve decided to move to Thursday permanently going forward. We hope you have a good Easter, if you celebrate it, otherwise enjoy one fewer email on Fridays ????
__
Your editor, Peter Cooper

JavaScript Weekly

Croner: Cron for JavaScript and TypeScript — Trigger functions upon the schedule of your choice using the classic cron syntax. Works in Node, Deno, Bun and the browser, across time zones, offers error handling and overrun protection, and more. There’s an interesting live demo on JSFiddle.

Hexagon

▶️ JSON vs XML with Douglas Crockford — The author of 2008’s hugely popular JavaScript: The Good Parts went on a podcast to share the story of JSON, his discovery of JavaScript’s ‘good parts’, and his general approach to building software, including his dislike of JavaScript ‘frameworks.’ There’s a transcript if you’re not keen on listening. (50 minutes.)

CoRecursive Podcast podcast

Headless CMS with World-Class TypeScript Support — Kontent.ai is the leading platform for modular content. Streamline your code using TypeScript SDK, CLI, Rich text resolver, and strongly typed model generator. Scale with no problems when your project grows. Have you seen our UI?

Kontent.ai sponsor

The Angular Signals RFC — There’s a lot of excitement about a shift in Angular involving the addition of signals as a reactive primitive – the official RFC is now available for this feature, and you’re encouraged to leave comments. If you’d rather see a practical use for signals, Joshua Morony recorded ▶️ a screencast showing them off.

Angular Team

Over 100 Algorithms and Data Structures Demonstrated in JS — Examples of many common algorithms (e.g. bit manipulation, Pascal’s triangle, Hamming distance) and data structures (e.g. linked lists, tries, graphs) with explanations.

Oleksii Trekhleb et al.

IN BRIEF:

Laurie Voss looks at the most popular frameworks used in sites deployed to Netlify. React-based options lead the way.

Oliver Dunk of the Chrome Extensions Team has posted an update on the Manifest V2 to Manifest V3 transition – it’s taking longer than expected so Manifest V2 isn’t disappearing any time soon.

V8 v11.2 is shipping with support for WebAssembly tail calls.

With Chrome 113, Chrome is now shipping support for WebGPU.

A look at how Microsoft’s Blazor (a stack aimed at building front-end apps with C#) is skirting around JavaScript with its focus on WebAssembly.

JSDayIE 2023: The First JavaScript Conference in Ireland Is Back! — Join us on September 26th in Dublin to experience everything the Irish JavaScript community and Ireland have to offer.

JSDayIE sponsor

RELEASES:

Electron 24.0 – Complete with Chromium 112, V8 11.2, and Node 18.14.

Storybook 7.0 – Though still tagged ‘next’ and pending a proper launch.

Storybook for React Native 6.5

WebStorm 2023.1 – Commercial JS IDE from JetBrains.

Rete.js 2.0 Beta – Framework for building node-based editors.

???? Articles & Tutorials

Making a Big, Slow Vue/Alpine Page ‘Blazingly’ Fast — A practical example of a pattern the author is billing a “reactive switchboard.” “I’m going to use Vue/Alpine lingo in this article, but I think this pattern applies to lots of different tools.”

Caleb Porzio

▶  Watch Dan Abramov Explore React Server Components — At an epic (though well timestamped) four hours, this isn’t a quick watch, but Dan and Ben Holmes walk through everything React Server Components oriented, complete with diagrams, code, and a real-world app.

Ben Holmes

Getting PWAs in App Stores with PWABuilder — Thomas Steiner demonstrates how PWABuilder makes it possible to submit Progressive Web Apps (PWAs) to app stores like those provided by Google, Apple, and Microsoft.

Thomas Steiner (Google)

Add a Full-Featured Notification Center to Your App in Minutes

Courier.com sponsor

What Are Source Maps? — Learn how source maps can help you debug your original code instead of what was actually deployed after the build process.

Sofia Emelianova (Chrome Developers)

How I Used ChatGPT in My JavaScript Projects

James Q Quick

???? Code & Tools

Relaunching JSPM CLI for Import Map Package Management — Several years ago when JS had numerous competing module formats, JSPM was a useful package manager atop SystemJS, but now it’s being relaunched as an import map package management tool.

Guy Bedford

Chrome Extension CLI 1.4: CLI for Building Chrome Extensions — Want to get building an extension for Chrome as quickly as possible? This Node-powered tool aims to get you on the right path ASAP. v1.4 adds a script to generate a ZIP file (also known as a ‘postcode file’ at Microsoft UK? ????) of the extension.

Dutiyesh Salunkhe

React Chrono 2: A Flexible Timeline Component — A complete overhaul of a popular component. You can render themeable timelines in vertical, horizontal, or vertical alternating orientations. It includes keyboard navigation support, auto advancement, and, as of v2, support for nested timelines.

Prabhu Murthy

Dynaboard: A Visual Web App IDE Made for Developers — Build high performance public and private web applications in a collaborative — full-stack — development environment.

Dynaboard sponsor

Jampack: A Post-Processing Tool to Optimize Static Websites — Similar to a bundler or build tool, with features like image optimization, asset compression, and some code auto-fixes — all amounting to strong Core Web Vitals scores.

divRIOTS

imask.js 6.5.0: A Vanilla JavaScript Input Mask — Prevent users from entering invalid values. Has plugins for Vue, Angular, React, Svelte, and Solid, if needed.

imaskjs

tween.js 19.0
↳ JS tweening engine for easy animations.

Swiper 9.2
↳ Modern mobile-friendly touch slider.

gridstack.js 7.3
↳ Dashboard layout and creation framework.

ReacType 15.0
↳ Visual prototyping tool that can export React apps.

xstyled 3.8
↳ Utility-first CSS-in-JS framework for React.

Spacetime 7.4.2
↳ Lightweight timezone library.

???? Jobs

Find JavaScript Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

Hired

Full Stack JavaScript Engineer @ Emerging Cybersecurity Startup — Small team/big results. Fun + flexible + always interesting. Come build our award-winning, all-in-one cybersecurity platform.

Defendify

????‍???? Got a job listing to share? Here’s how.

???? Wise Words of the Week

A reminder from Vue.js’s Evan You that we live in a vast and varied world, including in the JavaScript ecosystem:

Flatlogic Admin Templates banner

Custom ERP System: Benefits, Requirements & Cost of Development

If you are looking for an effective and efficient way to manage your business, then a custom enterprise resource planning (ERP) system is the perfect solution. Custom ERP systems allow businesses to collect, store, and analyze information from several departments in one database, making it easier for executives to manage all fundamental business operations. Furthermore, the implementation of such software optimizes various workflows and processes. While there are various commercially available systems, custom ERP development ensures that you get a solution tailored specifically to your needs.

There is always room for development, even if your product is excellent. This is especially true for businesses looking for a custom ERP solution. The increasing need for specific software solutions serves as evidence of the need for a unique ERP system. 

If you are considering an ERP system for your business when making this important decision, ask yourself: What are the benefits of a custom ERP system? How does a custom ERP system compare to an off-the-shelf version? Is it the right fit for my business needs? Whatever you decide, it’s important to choose the right system for your business. In this article, we’ll talk about all of the above in developing custom ERP systems and provide some helpful tips on how to choose the right one.  Let’s dive into the details.

What is custom ERP?

ERP stands for Enterprise Resource Planning is a sophisticated software package that automates all business operations procedures. It aids businesses in optimizing efficiency and accuracy by automating data input and offering real-time visibility into their operations, consequently reducing the time and costs associated with managing operations.

An Off-the-shelf (OTS) ERP system is a pre-packaged, ready-to-deploy solution that comes with verified capabilities. It is designed to meet the needs of a wide range of businesses, however, its “one-size-fits-all” approach may not be the best solution for addressing specific challenges.

Custom ERP (as opposed to OTS solutions) system is designed around the unique requirements of a particular business. It offers a complete solution that unifies all of the business operations into a single platform and is created to match the particular needs of a particular business.

How Custom ERPs Different From Off-the-shelf ERPs

Custom ERPs are created especially for the individual or business that requires them, in contrast to off-the-shelf ERPs. This makes it possible to develop a solution that is more tailored to the unique requirements and needs of the customer and is also more effective, efficient, and affordable.  The capacity for custom ERPs to often be upgraded and modified over time typically allows for more flexibility and scalability.  Moreover, custom ERPs may be integrated into other systems to increase their versatility. Off-the-shelf ERPs, on the other hand, are pre-packaged, unchangeable systems with frequently limited scalability.

Usage of custom ERP

Custom ERP systems are produced to assist businesses in managing their operations more effectively. As they are customized to the particular requirements of the organization, they are more adaptable and able to offer a greater level of control. Sales, inventories, financial and operational procedures, customer support, and more could all be managed by custom ERP systems. Moreover, they can offer data to assist organizations in making wiser decisions. Customer Relationship Management (CRM), Human Resources (HR), supply chain management, and other business applications are frequently incorporated into custom ERP systems. This facilitates data access and the automation of numerous business operations. Custom ERP systems can help gain businesses a complete picture of their operations and can be extremely motivated, customer experience, and revenue.

Benefits of custom ERP

​​The main benefit of having custom software is that it can help focus on the specific needs and resources of businesses. It is essential to understand how to effectively incorporate and monitor all data management and workflows of the business from a single platform. These are some of the benefits of possessing a custom ERP system:

Benefit #1: Improved System Performance and Accessibility 

The goal of custom ERP is to be as effective and efficient as possible while offering more application availability than other systems. Businesses may easily adapt the software to their changing demands thanks to its modular architecture, saving money on potentially less-effective items.

Benefit #2: Balance Between Integration & Specification

Businesses may gain from an integrated workflow across departments with a custom ERP system, which will lead to better connections between buyers and suppliers. Different departments and teams can have their customized system thanks to the fact that custom ERP systems are created to match the specific needs of each business. Software developers may ensure the system is suited to the precise specifications and circumstances of the company’s numerous internal divisions and departments by developing and building a custom ERP that is adapted to the company’s particular system needs, workflow, and applications.

Benefit #3: No Need for Modifications

Businesses may save time and effort by using custom ERP systems instead of converting their current database architectures, applications, and tech stacks to the new system. Software development businesses may offer a ‘plug and play’ system by designing a custom ERP that suits the company’s current infrastructure, networks, capabilities, and resources, allowing enterprises to swiftly adopt the new system and begin profiting from its features.

Benefit #4: Custom Solutions for Your Business Needs

Custom ERP systems are created to deal with issues frequently encountered by businesses. The developers of such systems build the framework, features, and functionalities based on what they’ve picked up from past customers. This is a major plus point since it draws from the knowledge of many clients and businesses. 

Benefit #5: Automation Without Workflow Changes

Custom ERP can automate multiple operations within the company’s existing systems, databases, infrastructure, networks, and applications, without requiring extensive changes and modifications. This guarantees seamless integration while reducing any gaps between the company’s existing system and custom ERP. One important duty that may be automated with a custom ERP is the periodic report generation process, which makes it simpler to keep track of business activities.

Benefit #6: Improved User Experience and Customer Interface

Without a custom ERP system, many companies suffer from a lack of cohesion between their frontend website and backend database, middleware, and application systems. Even with a custom ERP system, plug-and-play capabilities for productivity applications and workflow systems are not always available. Software development companies can provide a solution to this issue by creating custom ERP frameworks and systems that allow for easy integration of existing infrastructure, workflow processes, and productivity applications.

Benefit #7: Monitor Performance with One Reporting System

Gain total visibility into all business processes, from Finance and Accounts Management, Human Resources to Manufacturing, Marketing, and Sales, and Supply Chain and Warehouse Management. Automate departmental workflow and track each department’s activities with a single reporting system, allowing for easy analysis of performance statistics and assurance that nothing is overlooked.

Benefit #8: Customized Reports & BI

Business is all about understanding the past and using that knowledge to make better decisions in the present. Statistics and analytics are essential for this, as they provide us with the data and insights needed to make informed choices. We can tailor our reports to our exact needs and integrate our business intelligence tools to gain even more statistics and insights.

Benefit #9: Boost Sales Through Enhanced CRM

Businesses may build a CRM that fits their unique demands and operations by deploying a custom ERP system. Their sales teams will be more efficient and productive thanks to our unique CRM system and platform. Several businesses are currently looking toward the use of consumer-level ERP solutions. The business may expand its marketing efforts and enhance the conversion of leads into sales by creating an ERP system that incorporates customer and CRM data. A smooth cooperation between the many departments involved in sales will be made possible by the custom ERP’s complete integration with all of the business’s sales platforms and assets. With this technology in place, sales teams may use customer behavior and purchase history information more effectively.

How to Formulate Clear Requirements for Custom ERP Development

Below are some identified necessary factors to create a custom ERP system that meets your individual needs. They include outlining your core requirements, considering how the system will fit with existing processes, and determining its scalability. With the help of this information, you can build the ideal custom ERP system for your business with confidence.

Functionality 

If you are looking to implement an ERP system, it is necessary to consider the functionality that it needs to include. To make this process easier, you can examine the features of your current system and identify what can be improved. Additionally, it is also beneficial to discuss with your team and ask questions such as: 

What processes can be automated for resource optimization?
What visibility or excessive reporting does each department require? Which information do different departments need access to? 
Why is a custom ERP system being considered in the first place? 

Answering these questions will help you to determine the functionality that needs to be included and assign user experience in the future.

Industry Research

Success depends on being current with developments in your industry. Research for most successful competitors and the top-performing apps for your sector. Learn about the benefits and potential pitfalls of these technologies by watching demos and reading reviews.  To ensure that your expectations are realistic and your custom ERP system meets the specific needs of your business. It is best to engage an experienced team of custom ERP development professionals to conduct a comprehensive market analysis.

Integration Requirements

The key to successful development is integrating your custom ERP system with external applications. The development team will have a clear knowledge of the project scope if you gather all of the software applications that each department in your company uses. Systems for managing client relationships, inventories, online storefronts, project management tools, accounting software, and more are examples of apps that should be on the list. Your development team will be better equipped to provide you with accurate time and cost estimates if you have this information available.

Deployment Type

Businesses must choose between an on-premises and cloud option considering custom ERP development. On-premise software is installed on the company’s hardware, while cloud-based systems are hosted on the vendor’s server and accessed online. In the past, most companies opted for on-premise ERP systems cloud solutions have become increasingly popular due to the numerous advantages they offer:

faster implementation, 
lower initial costs, 
less responsibility for security, 
easier collaboration between teams, 
automated updates provided by the vendor.

Cost of ERP Software Development 

Custom ERP solutions can range significantly in cost depending on the complexity and scope of the project. Factors that influence the total cost of a project include the number of people on the development team, the features and integrations required, and the duration of the project. Generally, custom ERP development projects can cost anywhere between $25,000 to $5,000,000, making it a more expensive option when compared to the average cost of a third-party system for resource planning which typically runs from $9,000 per user for mid-sized and large-scale enterprises respectively. The most crucial factors:

Size of Company

The size of your business will affect the amount of time and effort needed to create an ERP system. As the size of your business grows, the demand for a robust and comprehensive custom ERP system increases. This entails a more complex organizational structure, various business processes, and the need to integrate multiple software products across departments. To meet these demands, an experienced ERP development provider must be engaged to create a custom ERP system with all the required modules, integrations, and features. This will ensure that the custom ERP system is tailored to meet the specific needs of your business, no matter how large it may be.

Tech Stack 

When considering custom ERP development, there is a distinction between open-source software and proprietary solutions. Open-source software is free to the public, while proprietary solutions require the provider to pay a subscription fee for the platform. Additionally, the more sophisticated the technology, the more costly the developer’s time will be. When selecting the right custom ERP solution for your business, it is important to consider the cost implications of open-source versus proprietary solutions, as well as the complexity of the technology. This will ensure that you get the most suitable custom ERP system for your business needs.

Development Team 

For a comprehensive and versatile custom ERP system, it is necessary to hire a larger team of specialists, which will help to reduce the overall implementation timeline. Generally, the cost of a medium-complexity custom ERP solution is around $40,000 per module. This cost is comparable for testing, deployment, and data migration, so for a custom ERP system with 5 modules, the total cost will be approximately $250,000. To ensure that your custom ERP system is cost-efficient, it is important to accurately estimate the amount of time and resources that will be needed.

Summary

Custom ERP development allows companies to have a tailored system that meets their specific needs, allowing them to manage resources more efficiently, streamline their workflows, and modernize the enterprise. By investing in a customized solution, companies can ensure that their unique requirements are taken into account, as well as facilitate the adaptation of staff to the new system and avoid overspending on unnecessary features. 

Custom ERP with Flatlogic

Flatlogic Platform offers an easy way to generate a custom ERP solution with full control over the source code and scalability. With full control over the source code, you can make sure that you have the right features, scalability, and performance to match your business needs. Plus, with no-code development, you don’t need to be an expert programmer to make the necessary changes – making it easier to scale and customize as your business grows. With Flatlogic Platform, you have the flexibility to create a custom ERP solution that is tailored to your needs, while still having the scalability of more traditional development.

How to Create Custom ERP with Flatlogic Platform?

Using the Flatlogic Full-Stack Generator you can create CRUD and static applications in a few minutes. To start using the Platform, you need to register on the Flatlogic website. Clicking the “Sign in” button in the header will allow you to register for a Flatlogic account.

Step 1. Choosing the Tech Stack

In this step, you’re setting the name of your application and choosing the stack: Frontend, Backend, and Database.

Step 2. Choosing the Starter Template

In this step, you’re choosing the design of the web app.

Step 3. Schema Editor

In this step, you can create your database schema from scratch, import an existing schema or select one of the suggested schemas. 

To import your existing database, click the Import SQL button and select your .sql file. After that, your database will be opened in the Schema Editor where you can further edit your data (add/edit/delete entities).

If you are not familiar with database design and find it difficult to understand what tables are, we have prepared some ready-made sample schemas of real applications that you can modify for your application:

E-commerce app;
Time tracking app;
Book store;
Chat (messaging) app;
Blog.

Or, you can define a database schema and add a description by clicking on the “Generate with AI” button. You need to type the application’s description in the text area and hit “Send”. The application’s schema will be ready in around 15 seconds. You may either hit deploy immediately or review the structure to make manual adjustments.

Next, you can connect your GitHub and push your application code there. Or skip this step by clicking the Finish and Deploy button and in a few minutes, your application will be generated.

The post Custom ERP System: Benefits, Requirements & Cost of Development appeared first on Flatlogic Blog.

Flatlogic Admin Templates banner

Improve collaboration between teams by using AWS CDK constructs

There are different ways to organize teams to deliver great software products. There are companies that give the end-to-end responsibility for a product to a single team, like Amazon’s Two-Pizza teams, and there are companies where multiple teams split the responsibility between infrastructure (or platform) teams and application development teams. This post provides guidance on how collaboration efficiency can be improved in the case of a split-team approach with the help of the AWS Cloud Development Kit (CDK).

The AWS CDK is an open-source software development framework to define your cloud application resources. You do this by using familiar programming languages like TypeScript, Python, Java, C# or Go. It allows you to mix code to define your application’s infrastructure, traditionally expressed through infrastructure as code tools like AWS CloudFormation or HashiCorp Terraform, with code to bundle, compile, and package your application.

This is great for autonomous teams with end-to-end responsibility, as it helps them to keep all code related to that product in a single place and single programming language. There is no need to separate application code into a different repository than infrastructure code with a single team, but what about the split-team model?

Larger enterprises commonly split the responsibility between infrastructure (or platform) teams and application development teams. We’ll see how to use the AWS CDK to ensure team independence and agility even with multiple teams involved. We’ll have a look at the different responsibilities of the participating teams and their produced artifacts, and we’ll also discuss how to make the teams work together in a frictionless way.

This blog post assumes a basic level of knowledge on the AWS CDK and its concepts. Additionally, a very high level understanding of event driven architectures is required.

Team Topologies

Let’s first have a quick look at the different team topologies and each team’s responsibilities.

One-Team Approach

In this blog post we will focus on the split-team approach described below. However, it’s still helpful to understand what we mean by “One-Team” Approach: A single team owns an application from end-to-end. This cross-functional team decides on its own on the features to implement next, which technologies to use and how to build and deploy the resulting infrastructure and application code. The team’s responsibility is infrastructure, application code, its deployment and operations of the developed service.

If you’re interested in how to structure your AWS CDK application in a such an environment have a look at our colleague Alex Pulver’s blog post Recommended AWS CDK project structure for Python applications.

Split-Team Approach

In reality we see many customers who have separate teams for application development and infrastructure development and deployment.

Infrastructure Team

What I call the infrastructure team is also known as the platform or operations team. It configures, deploys, and operates the shared infrastructure which other teams consume to run their applications on. This can be things like an Amazon SQS queue, an Amazon Elastic Container Service (Amazon ECS) cluster as well as the CI/CD pipelines used to bring new versions of the applications into production.
It is the infrastructure team’s responsibility to get the application package developed by the Application Team deployed and running on AWS, as well as provide operational support for the application.

Application Team

Traditionally the application team just provides the application’s package (for example, a JAR file or an npm package) and it’s the infrastructure team’s responsibility to figure out how to deploy, configure, and run it on AWS. However, this traditional setup often leads to bottlenecks, as the infrastructure team will have to support many different applications developed by multiple teams. Additionally, the infrastructure team often has little knowledge of the internals of those applications. This often leads to solutions which are not optimized for the problem at hand: If the infrastructure team only offers a handful of options to run services on, the application team can’t use options optimized for their workload.

This is why we extend the traditional responsibilities of the application team in this blog post. The team provides the application and additionally the description of the infrastructure required to run the application. With “infrastructure required” we mean the AWS services used to run the application. This infrastructure description needs to be written in a format which can be consumed by the infrastructure team.

While we understand that this shift of responsibility adds additional tasks to the application team, we think that in the long term it is worth the effort. This can be the starting point to introduce DevOps concepts into the organization. However, the concepts described in this blog post are still valid even if you decide that you don’t want to add this responsibility to your application teams. The boundary of who is delivering what would then just move more into the direction of the infrastructure team.

To be successful with the given approach, the two teams need to agree on a common format on how to hand over the application, its infrastructure definition, and how to bring it to production. The AWS CDK with its concept of Constructs provides a perfect means for that.

Primer: AWS CDK Constructs

In this section we take a look at the concepts the AWS CDK provides for structuring our code base and how these concepts can be used to fit a CDK project into your team topology.

Constructs

Constructs are the basic building block of an AWS CDK application. An AWS CDK application is composed of multiple constructs which in the end define how and what is deployed by AWS CloudFormation.

The AWS CDK ships with constructs created to deploy AWS services. However, it is important to understand that you are not limited to the out-of-the-box constructs provided by the AWS CDK. The true power of AWS CDK is the possibility to create your own abstractions on top of the default constructs to create solutions for your specific requirement. To achieve this you write, publish, and consume your own, custom constructs. They codify your specific requirements, create an additional level of abstraction and allow other teams to consume and use your construct.

We will use a custom construct to separate the responsibilities between the the application and the infrastructure team. The application team will release a construct which describes the infrastructure along with its configuration required to run the application code. The infrastructure team will consume this construct to deploy and operate the workload on AWS.

How to use the AWS CDK in a Split-Team Setup

Let’s now have a look at how we can use the AWS CDK to split the responsibilities between the application and infrastructure team. I’ll introduce a sample scenario and then illustrate what each team’s responsibility is within this scenario.

Scenario

Our fictitious application development team writes an AWS Lambda function which gets deployed to AWS. Messages in an Amazon SQS queue will invoke the function. Let’s say the function will process orders (whatever this means in detail is irrelevant for the example) and each order is represented by a message in the queue.

The application development team has full flexibility when it comes to creating the AWS Lambda function. They can decide which runtime to use or how much memory to configure. The SQS queue which the function will act upon is created by the infrastructure team. The application team does not have to know how the messages end up in the queue.

With that we can have a look at a sample implementation split between the teams.

Application Team

The application team is responsible for two distinct artifacts: the application code (for example, a Java jar file or an npm module) and the AWS CDK construct used to deploy the required infrastructure on AWS to run the application (an AWS Lambda Function along with its configuration).

The lifecycles of these artifacts differ: the application code changes more frequently than the infrastructure it runs in. That’s why we want to keep the artifacts separate. With that each of the artifacts can be released at its own pace and only if it was changed.

In order to achieve these separate lifecycles, it is important to notice that a release of the application artifact needs to be completely independent from the release of the CDK construct. This fits our approach of separate teams compared to the standard CDK way of building and packaging application code within the CDK construct.

But how will this be done in our example solution? The team will build and publish an application artifact which does not contain anything related to CDK.
When a CDK Stack with this construct is synthesized it will download the pre-built artifact with a given version number from AWS CodeArtifact and use it to create the input zip file for a Lambda function. There is no build of the application package happening during the CDK synth.

With the separation of construct and application code, we need to find a way to tell the CDK construct which specific version of the application code it should fetch from CodeArtifact. We will pass this information to the construct via a property of its constructor.

For dependencies on infrastructure outside of the responsibility of the application team, I follow the pattern of dependency injection. Those dependencies, for example a shared VPC or an Amazon SQS queue, are passed into the construct from the infrastructure team.

Let’s have a look at an example. We pass in the external dependency on an SQS Queue, along with details on the desired appPackageVersion and its CodeArtifact details:

export interface OrderProcessingAppConstructProps {
    queue: aws_sqs.Queue,
    appPackageVersion: string,
    codeArtifactDetails: {
        account: string,
        repository: string,
        domain: string
    }
}

export class OrderProcessingAppConstruct extends Construct {

    constructor(scope: Construct, id: string, props: OrderProcessingAppConstructProps) {
        super(scope, id);

        const lambdaFunction = new lambda.Function(this, ‘OrderProcessingLambda’, {
            code: lambda.Code.fromDockerBuild(path.join(__dirname, ‘..’, ‘bundling’), {
                buildArgs: {
                    ‘PACKAGE_VERSION’ : props.appPackageVersion,
                    ‘CODE_ARTIFACT_ACCOUNT’ : props.codeArtifactDetails.account,
                    ‘CODE_ARTIFACT_REPOSITORY’ : props.codeArtifactDetails.repository,
                    ‘CODE_ARTIFACT_DOMAIN’ : props.codeArtifactDetails.domain
                }
            }),
            runtime: lambda.Runtime.NODEJS_16_X,
            handler: ‘node_modules/order-processing-app/dist/index.lambdaHandler’
        });
        const eventSource = new SqsEventSource(props.queue);
        lambdaFunction.addEventSource(eventSource);
    }
}

Note the code lambda.Code.fromDockerBuild(…): We use AWS CDK’s functionality to bundle the code of our Lambda function via a Docker build. The only things which happen inside of the provided Dockerfile are:

the login into the AWS CodeArtifact repository which holds the pre-built application code’s package
the download and installation of the application code’s artifact from AWS CodeArtifact (in this case via npm)

If you are interested in more details on how you can build, bundle and deploy your AWS CDK assets I highly recommend a blog post by my colleague Cory Hall: Building, bundling, and deploying applications with the AWS CDK. It goes into much more detail than what we are covering here.

Looking at the example Dockerfile we can see the two steps described above:

FROM public.ecr.aws/sam/build-nodejs16.x:latest

ARG PACKAGE_VERSION
ARG CODE_ARTIFACT_AWS_REGION
ARG CODE_ARTIFACT_ACCOUNT
ARG CODE_ARTIFACT_REPOSITORY

RUN aws codeartifact login –tool npm –repository $CODE_ARTIFACT_REPOSITORY –domain $CODE_ARTIFACT_DOMAIN –domain-owner $CODE_ARTIFACT_ACCOUNT –region $CODE_ARTIFACT_AWS_REGION
RUN npm install order-processing-app@$PACKAGE_VERSION –prefix /asset

Please note the following:

we use –prefix /asset with our npm install command. This tells npm to install the dependencies into the folder which CDK will mount into the container. All files which should go into the output of the docker build need to be placed here.
the aws codeartifact login command requires credentials with the appropriate permissions to proceed. In case you run this on for example AWS CodeBuild or inside of a CDK Pipeline you need to make sure that the used role has the appropriate policies attached.

Infrastructure Team

The infrastructure team consumes the AWS CDK construct published by the application team. They own the AWS CDK Stack which composes the whole application. Possibly this will only be one of several Stacks owned by the Infrastructure team. Other Stacks might create shared infrastructure (like VPCs, networking) and other applications.

Within the stack for our application the infrastructure team consumes and instantiates the application team’s construct, passes any dependencies into it and then deploys the stack by whatever means they see fit (e.g. through AWS CodePipeline, GitHub Actions or any other form of continuous delivery/deployment).

The dependency on the application team’s construct is manifested in the package.json of the infrastructure team’s CDK app:

{
  “name”: “order-processing-infra-app”,
  …
  “dependencies”: {
    …
    “order-app-construct” : “1.1.0”,
    …
  }
  …
}

Within the created CDK Stack we see the dependency version for the application package as well as how the infrastructure team passes in additional information (like e.g. the queue to use):

export class OrderProcessingInfraStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);   

    const orderProcessingQueue = new Queue(this, ‘order-processing-queue’);

    new OrderProcessingAppConstruct(this, ‘order-processing-app’, {
       appPackageVersion: “2.0.36”,
       queue: orderProcessingQueue,
       codeArtifactDetails: { … }
     });
  }
}

Propagating New Releases

We now have the responsibilities of each team sorted out along with the artifacts owned by each team. But how do we propagate a change done by the application team all the way to production? Or asked differently: how can we invoke the infrastructure team’s CI/CD pipeline with the updated artifact versions of the application team?

We will need to update the infrastructure team’s dependencies on the application teams artifacts whenever a new version of either the application package or the AWS CDK construct is published. With the dependencies updated we can then start the release pipeline.

One approach is to listen and react to events published by AWS CodeArtifact via Amazon EventBridge. On each release AWS CodeArtifact will publish an event to Amazon EventBridge. We can listen to that event, extract the version number of the new release from its payload and start a workflow to update either our dependency on the CDK construct (e.g. in the package.json of our CDK application) or a update the appPackageVersion which the infrastructure team passes into the consumed construct.

Here’s how a release of a new app version flows through the system:

Figure 1 – A release of the application package triggers a change and deployment of the infrastructure team’s CDK Stack

The application team publishes a new app version into AWS CodeArtifact
CodeArtifact triggers an event on Amazon EventBridge
The infrastructure team listens to this event
The infrastructure team updates its CDK stack to include the latest appPackageVersion

The infrastructure team’s CDK Stack gets deployed

And very similar the release of a new version of the CDK Construct:

Figure 2 – A release of the application team’s CDK construct triggers a change and deployment of the infrastructure team’s CDK Stack

The application team publishes a new CDK construct version into AWS CodeArtifact
CodeArtifact triggers an event on Amazon EventBridge
The infrastructure team listens to this event
The infrastructure team updates its dependency to the latest CDK construct
The infrastructure team’s CDK Stack gets deployed

We will not go into the details on how such a workflow could look like, because it’s most likely highly custom for each team (think of different tools used for code repositories, CI/CD). However, here are some ideas on how it can be accomplished:

Updating the CDK Construct dependency

To update the dependency version of the CDK construct the infrastructure team’s package.json (or other files used for dependency tracking like pom.xml) needs to be updated. You can build automation to checkout the source code and issue a command like npm install [email protected]_VERSION (where NEW_VERSION is the value read from the EventBridge event payload). You then automatically create a pull request to incorporate this change into your main branch. For a sample on what this looks like see the blog post Keeping up with your dependencies: building a feedback loop for shared librares.

Updating the appPackageVersion

To update the appPackageVersion used inside of the infrastructure team’s CDK Stack you can either follow the same approach outlined above, or you can use CDK’s capability to read from an AWS Systems Manager (SSM) Parameter Store parameter. With that you wouldn’t put the value for appPackageVersion into source control, but rather read it from SSM Parameter Store. There is a how-to for this in the AWS CDK documentation: Get a value from the Systems Manager Parameter Store. You then start the infrastructure team’s pipeline based on the event of a change in the parameter.

To have a clear understanding of what is deployed at any given time and in order to see the used parameter value in CloudFormation I’d recommend using the option described at Reading Systems Manager values at synthesis time.

Conclusion

You’ve seen how the AWS Cloud Development Kit and its Construct concept can help to ensure team independence and agility even though multiple teams (in our case an application development team and an infrastructure team) work together to bring a new version of an application into production. To do so you have put the application team in charge of not only their application code, but also of the parts of the infrastructure they use to run their application on. This is still in line with the discussed split-team approach as all shared infrastructure as well as the final deployment is in control of the infrastructure team and is only consumed by the application team’s construct.

About the Authors

As a Solutions Architect Jörg works with manufacturing customers in Germany. Before he joined AWS in 2019 he held various roles like Developer, DevOps Engineer and SRE. With that Jörg enjoys building and automating things and fell in love with the AWS Cloud Development Kit.

Mo joined AWS in 2020 as a Technical Account Manager, bringing with him 7 years of hands-on AWS DevOps experience and 6 year as System operation admin. He is a member of two Technical Field Communities in AWS (Cloud Operation and Builder Experience), focusing on supporting customers with CI/CD pipelines and AI for DevOps to ensure they have the right solutions that fit their business needs.

5+ Secrets Time Estimation Hints in Project Management

Having a clear understanding of time estimation is integral for successful project management. With the right technique, you can be confident that your estimates are exact and valuable to you and your team. Time estimation is the skill of predicting accurately how long a task will take to finish – using time estimation methods can help you eliminate the guesswork associated with your estimates and permit you to have more confidence regarding your time management and the period your work can be accomplished in.   

While looking for time estimation methods for a project, you probably ask yourself: how to accurately determine the length of a project? How do you avoid overestimating the amount of time needed? How can the timetable of a project be managed more effectively? For successful project management and project completion, time estimation is a necessary step. So, if you’re looking for methods for the perfect time estimation required for your project, this article is for you.

In the world of project management, accurately estimating the time needed for a project is a difficult but necessary task. According to recent surveys, 78% of project managers need help with project time estimation. Furthermore, a Project Management Institute research underlined the necessity of precise time estimation, since projects that are delivered late or within a tight deadline can hurt the bottom line.

In this article, we’ll share our project manager Erik Kalmykov’s tips for accurately estimating how much time a project will take. We’ll also show you how to avoid common errors and manage project timeframes more effectively. You’ll have a better grasp of how to correctly estimate the amount of time spent on a project after this article, along with useful advice on how to manage project deadlines and avoid frequent errors. 

What is Time Estimation?

Time estimation is about determining how long it will take to complete a project. It is an essential part of project management and can help project managers better plan, manage, and complete projects on time. Accurate time estimation allows project managers to plan for potential risks or delays and better estimate the resources and staff needed to complete the project.

Why are time estimates so important? Time estimations are important for several reasons. Providing a better knowledge of the resources and manpower required to execute the project, first aids in the better planning and management of projects by project managers. Additionally, it enables project managers to recognize possible hazards and delays and make plans on how to deal with them. Finally, precise time prediction enables project managers to better plan for the employees and resources required to finish the project, which helps them manage project budgets more effectively.

Types of Time Estimation

Expert Judgment

Utilizing the knowledge of others in a field where you lack experience is plain innovative business. We can’t all be experts in everything, after all. When it comes to time estimates, employing the expertise and knowledge of an expert to assist in establishing your estimates has extra advantages since the expert you contact will probably have helpful advice for the project as a whole and might be able to identify problems that have bedeviled similar projects in the past. Having a professional to help you make more accurate and reliable estimates can help you achieve your goals more efficiently and cost-effectively. By utilizing the expertise of an experienced individual, you can ensure that your goals are met on time and within budget.

Pros & Cons of Expert Judgment 

Pros: The method enables the consideration of certain elements that cannot be taken into account by an automated analysis.

Cons: This strategy necessitates individual judgment. As a result, the outcome frequently exhibits bias. 

Usage

Expert judgment is constructive for managers who lack knowledge and is most appropriate for big projects when quantitative estimation alone is insufficient.

Analogous / Comparative

It is possible to estimate how long it will take to complete a task or project by comparing it to similar ones. This approach concentrates on “analogous” or “comparative” reasoning to produce an estimate by drawing on knowledge and past experiences.

Pros & Cons of Analogous / Comparative Estimation

Pros: Comparative / Analogous estimation is one of the quickest and easiest methods for estimating resources.

Cons: It has a poor track record of accuracy and has a significant danger of incorrect results.

Usage 

The method is particularly suitable for standard projects with comparable task requirements. To gain a rough idea of the number of resources needed, it is frequently utilized in the early phases of a project’s life cycle.

Parametric

Using a preset formula, a parametric time estimate is a technique for determining how long an activity or project will take to complete. This formula often requires the input of certain criteria, such as the number of individuals allocated to the work or project, the complexity of the task or project, and/or the level of competence of the persons involved.

Pros & Cons of Parametric Estimation

Pros: This method is reasonably accurate since it considers the complexity of the work or project as well as the skill level of the persons involved.

Cons: The parameters’ values may not always be accurately determined using this procedure, which takes longer than other methods. It also disregards any adjustments to materials, methods, or technology that can impact how long it takes to finish a task or project.

Usage

The parametric time estimation method works best on projects with standardized work bundles and repeated activities. Therefore, it works best in industries with lesser levels of inventiveness, where early in the planning phase, project parameters can be fairly simply estimated.

Top-down

The top-down methodology of project estimation is based on breaking down the project activities into major blocks, projecting how long they will take to complete, and summarizing the estimates. Once managers acquire more information during the latter stages of project planning, these generic, big blocks of project work may be divided into smaller parts and then estimated independently to provide more precise predictions.

Pros & Cons of  Top-down Estimation

Pros: As it takes into account the difficulty of the work or project and the expertise of the persons involved, this method of estimating may be rather accurate.

Cons: It might be challenging to precisely divide the activity or project into manageable portions using this methodology, which takes more time than other approaches. The time needed to accomplish the activity or project is also not adjusted for advancements in technology, business practices, or material availability.

Usage

In project planning when quick outcomes are important, the top-down project estimating approach is widely utilized. It is most useful during the early stages of project planning when a rough and rapid estimate is required.

Bottom-up

Bottom-up estimation is a method for determining the price and time needed to complete a project by segmenting it into smaller jobs and estimating each one independently. For projects with several jobs or components that need to be estimated, this method is helpful.

Pros & Cons of  Bottom-up Estimation

Pros: High result accuracy and little differences between resources that were estimated and used.

Cons: This method takes a lot of time, effort, and skill to master.

Usage

Large software development projects, where several activities and components need to be estimated independently, are the ones that most frequently employ bottom-up estimating. Other project categories, including building projects or significant industrial activities, can also adopt this strategy.

Three-point

Three-point estimation is a project management method for estimating the duration, cost, and resources needed to complete a project. An optimistic estimate, a pessimistic estimate, and a most likely estimate are all created using this process based on the idea of ‘triangulation’. The expected value of the project is then calculated from these estimates.

Pros & Cons of Three-point Estimation

Pros: Compared to most estimating procedures, which tend to concentrate just on one point throughout the computation process, the method is more complete. It is risk-oriented and aids managers in reducing the risk of budget and schedule overruns brought on by unanticipated circumstances.

Cons: Large volumes of data and careful attention to detail.

Usage

Software development and other large-scale initiatives frequently employ a three-point estimate. The time, expense, and resources needed to complete any project or assignment may also be estimated using this method.

Time Estimation Statistics in Project Management

In project management, timeline accuracy is assessed using time estimation statistics. They offer statistics on how close a project was to finish on time. Statistics on time estimation are utilized to pinpoint areas where the project may be improved upon as well as those where the project timetable was successful and precise. The number of activities finished on time, the number of tasks delayed, the number of jobs finished ahead of schedule, the time saved due to resource efficiency, and the time added due to unforeseen complications are all examples of time estimation statistics. These statistics can be used to determine if changes need to be made to the project timeline, or if additional resources need to be allocated to ensure the project is completed on time.

Why Are Accurate Time Estimates Crucial to Project Success?

The success of a project depends on accurate time estimates since they provide the project manager with a better understanding of the amount of time, effort, and resources required to complete the project. Additionally, they may be used by project managers to coordinate with key players and provide realistic goals for their team members. Accurate time estimates can help with resource allocation, on-time task completion, and project budget stability. Knowing how long the project will take to complete can help project managers make better decisions about how to distribute resources and manage deadlines. Accurate time estimates also serve to lessen the risk of project failure by providing a foundation for assessing progress and detecting possible concerns before they become serious difficulties.

Cost overruns

Cost overruns happen when a project goes above its allocated budget. Numerous factors, including inadequate project management, underestimating the number of resources required, and unanticipated scope changes, can lead to them. Cost overruns can be problematic for the project team since they can cause delays or even the complete cancellation of the project. Project managers should constantly develop precise time and cost estimates for their projects, as well as monitor development and make modifications as necessary, to minimize cost overruns. They should also ensure that their personnel is well-educated and prepared for any scope adjustments or unexpected issues. Finally, project managers should strive to create a culture of accountability and communication, so that any issues are identified and addressed before they become a major problems.

Tips for Estimating the Time needed to Implement a Project

Define your goals and objectives: Consider spending some time defining your aims and objectives before beginning the project estimating process. You may determine what has to be done and how long it should take using this information.

Break it down: Break your project down into smaller, more achievable activities that may be estimated independently after you have determined the general objectives.

Gather data: After you have divided your project up into smaller jobs, collect information for each one. This might consist of time estimates, cost estimates, and any other pertinent data that will enable you to estimate the project properly.

Assess risks: Consider the hazards involved with each activity when you assess them.

Compare estimates: Compare your estimates to industry norms and the estimates of other experts. This will assist you in ensuring the accuracy of your estimations.

Keep track of changes: Keep note of any scope or time frame modifications as the project develops and modify your estimations as necessary.

Get feedback: Ask for feedback from stakeholders and team members throughout the estimation process. This will help ensure that everyone is on the same page and that the estimates are realistic. 

Summing Up

Time estimation is a crucial component of project management and may be the difference between a project being successful and staying within budget and timeline constraints. Project managers can predict the time required for any project with accuracy if they have the correct plan and methodology. Project managers may develop a time estimating plan that will help them manage their projects more effectively and assure successful project completion by using the advice provided in this article.

The post 5+ Secrets Time Estimation Hints in Project Management appeared first on Flatlogic Blog.

Flatlogic Admin Templates banner

Team Collaboration with Amazon CodeCatalyst

Amazon CodeCatalyst enables teams to collaborate on features, tasks, bugs, and any other work involved when building software. CodeCatalyst was announced at re:Invent 2022 and is currently in preview.

Introduction:

In a prior post in this series, Using Workflows to Build, Test, and Deploy with Amazon CodeCatalyst, I discussed reading The Unicorn Project, by Gene Kim, and how the main character, Maxine, struggles with a complicated software development lifecycle (SLDC) after joining a new team. Some of the challenges she encounters include:

Continually delivering high-quality updates is complicated and slow
Collaborating efficiently with others is challenging
Managing application environments is increasingly complex
Setting up a new project is a time-consuming chore

In this post, I will focus on the second bullet, and how CodeCatalyst helps you collaborate from anywhere with anyone.

Prerequisites

If you would like to follow along with this walkthrough, you will need to:

Have an AWS Builder ID for signing in to CodeCatalyst.
Belong to a CodeCatalyst space and have the Space administrator role assigned to you in that space. For more information, see Creating a space in CodeCatalyst, Managing members of your space, and Space administrator role.
Have an AWS account associated with your space and have the IAM role in that account. For more information about the role and role policy, see Creating a CodeCatalyst service role.

Walkthrough

Similar to the prior post, I am going to use the Modern Three-tier Web Application blueprint in this walkthrough. A CodeCatalyst blueprint provides a template for a new project. If you would like to follow along, you can launch the blueprint as described in Creating a project in Amazon CodeCatalyst.  This will deploy the Mythical Mysfits sample application shown in the following image.

Figure 1. The Mythical Mysfits user interface showing header and three Mysfits

For this Walkthrough, let us assume that I need to make a simple change to the application. The legal department would like to add a footer that includes the text “© 2023 Demo Organization.” I will create an issue in CodeCatalyst to track this work and use CodeCatalyst to track the change throughout the entire Software Development Life Cycle (SDLC).

CodeCatalyst organizes projects into Spaces. A space represents your company, department, or group; and contains projects, members, and the associated cloud resources you create in CodeCatalyst. In this walkthrough, my Space currently includes two members, Brian Beach and Panna Shetty, as shown in the following screenshot.  Note that both users are administrators, but CodeCatalyst supports multiple roles. You can read more about roles in members of your space.

Figure 2. The space members configuration page showing two users

To begin, Brian creates a new issue to track the request from legal. He assigns the issue to Panna, but leaves it in the backlog for now. Note that CodeCatalyst supports multiple metadata fields to organize your work. This issue is not impacting users and is relatively simple to fix. Therefore, Brian has categorized it as low priority and estimated the effort as extra small (XS). Brian has also added a label, so all the requests from legal can be tracked together. Note that these metadata fields are customizable. You can read more in configuring issue settings.

Figure 3. Create issue dialog box with name, description and metadata

CodeCatalyst supports rich markdown in the description field. You can read about this in Markdown tips and tricks. In the following screenshot, Brian types “@app.vue” which brings up an inline search for people, issues, and code to help Panna find the relevant bit of code that needs changing later.

Figure 4. Create issue dialog box with type-ahead overlay

When Panna is ready to begin work on the new feature, she moves the issue from the “Backlog“ to ”In progress.“ CodeCatalyst allows users to manage their work using a Kanban style board. Panna can simply drag-and-drop issues on the board to move the issue from one state to another. Given the small team, Brian and Panna use a single board. However, CodeCatalyst allows you to create multiple views filtered by the metadata fields discussed earlier. For example, you might create a label called Sprint-001, and use that to create a board for the sprint.

Figure 5. Kanban board showing to do, in progress and in review columns

Panna creates a new branch for the change called feature_add_copyright and uses the link in the issue description to navigate to the source code repository. This change is so simple that she decides to edit the file in the browser and commits the change. Note that for more complex changes, CodeCatalyst supports Dev Environments. The next post in this series will be dedicated to Dev Environments. For now, you just need to know that a Dev Environment is a cloud-based development environment that you can use to quickly work on the code stored in the source repositories of your project.

Figure 6. Editor with new lines highlighted

Panna also creates a pull request to merge the feature branch in to the main branch. She identifies Brian as a required reviewer. Panna then moves the issue to the “In review” column on the Kanban board so the rest of the team can track the progress. Once Brian reviews the change, he approves and merges the pull request.

Figure 7. Pull request details with title, description, and reviewed assigned

When the pull request is merged, a workflow is configured to run automatically on code changes to build, test, and deploy the change. Note that Workflows were covered in the prior post in this series. Once the workflow is complete, Panna is notified in the team’s Slack channel. You can read more about notifications in working with notifications in CodeCatalyst. She verifies the change in production and moves the issue to the done column on the Kanban board.

Figure 8. Kanban board showing in progress, in review, and done columns

Once the deployment completes, you will see the footer added at the bottom of the page.

Figure 9. The Mythical Mysfits user interface showing footer and three Mysfits

At this point the issue is complete and you have seen how this small team collaborated to progress through the entire software development lifecycle (SDLC).

Cleanup

If you have been following along with this workflow, you should delete the resources you deployed so you do not continue to incur charges. First, delete the two stacks that CDK deployed using the AWS CloudFormation console in the AWS account you associated when you launched the blueprint. These stacks will have names like mysfitsXXXXXWebStack and mysfitsXXXXXAppStack. Second, delete the project from CodeCatalyst by navigating to Project settings and choosing Delete project.

Conclusion

In this post, you learned how CodeCatalyst can help you rapidly collaborate with other developers. I used issues to track feature and bugs, assigned code reviews, and managed pull requests. In future posts I will continue to discuss how CodeCatalyst can address the rest of the challenges Maxine encountered in The Unicorn Project.

About the authors:

Brian Beach

Brian Beach has over 20 years of experience as a Developer and Architect. He is currently a Principal Solutions Architect at Amazon Web Services. He holds a Computer Engineering degree from NYU Poly and an MBA from Rutgers Business School. He is the author of “Pro PowerShell for Amazon Web Services” from Apress. He is a regular author and has spoken at numerous events. Brian lives in North Carolina with his wife and three kids.

Panna Shetty

Panna Shetty is a Sr. Solutions Architect with Amazon Web Services (AWS), working with public sector customers. She enjoys helping customers architect and build scalable and
reliable modern applications using cloud-native technologies.

re:Invent 2022 DevOps and Developer Productivity Playlist

Danielle Kucera, Karun Bakshi, and I were privileged to organize the DevOps and Developer Productivity (DOP) track for re:Invent 2022. For 2022, the DOP track included 58 sessions and nearly 100 speakers.  If you weren’t able to attend, I have compiled a list of the on-demand sessions for you below.

Leadership Sessions

Delighting developers: Builder experience at AWS Adam Seligman, Vice President of Developer Experience, and Emily Freeman, Head of Community Development, share the latest AWS tools and experiences for teams developing in the cloud. Adam recaps the latest launches and demos how key services can integrate to accelerate developer productivity.

Amazon CodeCatalyst

Amazon CodeCatalyst, announced during Dr. Werner Vogels Keynote, is a unified software development service that makes it faster to build and deliver on AWS.

Introducing Amazon CodeCatalyst – Harry Mower, Director of DevOps Services, and Doug Clauson, Product Manager, provide an overview of Amazon CodeCatalyst. CodeCatalyst provides one place where you can plan work, collaborate on code, and build, test, and deploy applications with nearly continuous integration/continuous delivery (CI/CD) tools.

Deep dive on CodeCatalyst Workspaces – Tmir Karia, Sr. Product Manager, and Rahul Gulati, Sr. Product Manager,  discuss how Amazon CodeCatalyst Workspaces decreases the time you spend creating and maintaining a local development environment and allows you to quickly set up a cloud development workspace, switch between projects, and replicate the development workspace configuration across team members.

DevOps

AWS Well-Architected best practices for DevOps on AWS Elamaran Shanmugam, Sr. Container Specialist, and Deval Perikh, Sr. Enterprise Solutions Architect, discuss the components required to align your DevOps practices to the pillars of the AWS Well-Architected Framework.

Best practices for securing your software delivery lifecycle Jams Bland, Principal Solutions Architect, and Curtis Rissi, Principal Solutions Architect, discus ways you can secure your CI/CD pipeline on AWS. Review topics like security of the pipeline versus security in the pipeline, ways to incorporate security checkpoints across various pipeline stages, security event management, and aggregating vulnerability findings into a single pane of glass.

Build it & run it: Streamline your DevOps capabilities with machine learning Rafael Ramos, Shivansh Singh, and Jared Reimer discuss how to use machine learning–powered tools like Amazon CodeWhisperer, Amazon CodeGuru, and Amazon DevOps Guru to boost your applications’ availability and write software faster and more reliably.

Infrastructure as Code

AWS infrastructure as code: A year in review  Tatiana Cooke, Principal Product Manager, and Ben Perak, Principal Product Manage, discuss the new features and improvements for AWS infrastructure as code with AWS CloudFormation and AWS CDK.

How to reuse patterns when developing infrastructure as code Ryan Bachman, Ethan Rucinski, and Ravi Palakodeti explore AWS Cloud Development Kit (AWS CDK) constructs and AWS CloudFormation modules and how they make it easier to build applications on AWS.

Governance and security with infrastructure as code David Hessler, Senior DevOps Consultant, and Eric Beard, Senior Solutions Architect, discuss how to use AWS CloudFormation and the AWS CDK to deploy cloud applications in regulated environments while enforcing security controls.

Developer Productivity

Building on AWS with AWS tools, services, and SDKs Kyle Thomson, Senior Software Development Engineer and Deval Parikh, Senior Solutions Architect, discuss the ways developers can set up secure development environments and use their favorite IDEs to interact with, and deploy to, the AWS Cloud.

The Amazon Builders’ Library: 25 years of operational excellence at Amazon Colm MacCarthaigh, Distinguished Engineer, and David Yanacek, Sr. Principal Engineer, discuss how Amazon practices have changed and improved over time and what we’ve learned as builders and as operators.

Sustainability in the cloud with Rust and AWS Graviton Emil Lerch, Principal DevOps Specialist, and Esteban Kuber, Principal Engineer, discuss the benefits of Rust and AWS Graviton that can reduce energy consumption and increase productivity.

 

 

About the author:

Brian Beach

Brian Beach has over 20 years of experience as a Developer and Architect. He is currently a Principal Solutions Architect at Amazon Web Services. He holds a Computer Engineering degree from NYU Poly and an MBA from Rutgers Business School. He is the author of “Pro PowerShell for Amazon Web Services” from Apress. He is a regular author and has spoken at numerous events. Brian lives in North Carolina with his wife and three kids.

How to Improve Developer Productivity? [Guide]

You work as a developer or software engineer and sometimes you feel tired, procrastinating and not satisfied with your effectiveness at work. It is a common thing for many developers because web-development is hard work that requires a lot of concentration and brain tension. 

In this article we are going to discuss 10 recommendations on how to make the development work more efficient and how to improve developer productivity!

But first, let’s clear up what productivity means?

What is Productivity? How Can it be Measured?

Productivity means that you get more work done with the same resources or during the same period of time. Different companies can use different tools and metrics to measure developer productivity. Usually it is based on how many lines of code, features, or tasks a developer could do. For example, you can use as metrics quantity of lines of code, code reviews, bugs fixed, number of commits, finished tasks, or number of deployments or releases. You should also keep in mind that measuring developer performance requires more transparency in products and processes. The way of measuring what your manager or company chooses can depend on objectives, business goals, size and structure of the company and so on. It can also be team or individual measuring. But anyway, the main idea is to improve these metrics by improving developer productivity.

How can we describe modern IT developers?

Also, before we start discussing recommendations on how to improve developer productivity, we would like to define the audience. 

Ten or fifteen years ago, when we discussed developers or software engineers, we would have imagined socially awkward, stereotypical geeks, similar to the main heroes from classic IT series and movies like Silicon Valley, The IT Crowd and so on.

But nowadays this stereotype is fading into reality. Now we can find absolutely different people working in web-development. We are going to propose common tools that can be useful for all types of personalities (and even not only for developers!).

The IT sphere is one of the fastest-growing industries in the world. The quantity of employees is significant. According to statista.com, the number of full-time employees increased from 52 million in 2019 to 65 million in 2022. And the demand for IT professionals is still growing! And the level of professionals and competition for a good offer are also high. So you should do your best to improve your skills and productivity at work. We are going to help you with this! So here goes!

https://www.statista.com/statistics/1126677/it-employment-worldwide/

Find below 10 tips on how to improve developer productivity:

1. Develop yourself first!

It may sound like a banal piece of advice, but it is absolutely effective and true. If you want to be a productive developer, you have to increase your base of professional knowledge, commercial experience and so-called hard skills. Deep knowledge of your stack, tools, libraries and so on will help you to find the right solutions faster and easier. 

But what is more important to all developers is their fundamental knowledge. You can go deeper into algorithms, systems architecture, or devopsing. And a good understanding of these things will definitely help you to feel more confident at any project you work on.

Stay a constant learner all your life to keep your brain working at the most productive level!

2. Create an optimal environment

The ideal developer workspace may look different for everyone, but the basic idea is to minimize distractions and make it comfortable for you.

Working on the beach with a laptop looks perfect only in pictures on social networks. In fact, an ergonomic workspace with a desk, a quality chair, and proper lightning is crucial for developers!

What is most important in your working environment is the right hardware! For all IT-specialists and especially for developers equipment plays a significant role in making their workspace convenient and their work productive.

Don’t forget about your online workspace. It is worth mentioning that there are also tools which are not software-related, but can help you much with planning, organizing and managing your performance, tasks and habits. Some of the most common project management and time tracking systems are Jira, Asana and Trello. There are also tools like F.lux to help reduce eye strain while looking at screens. There are plenty of other applications and tools to improve developer productivity and make your work more comfortable and efficient. Just if you feel like you need to improve something in your working environment at the office or your home office, be free to ask your manager and justify the importance or try to improve it yourself. Optimal workplace helps to improve developer productivity and performance as well!

3. Decrease the quantity of distractions 

If you ask developers what is the most annoying thing for them, most will answer that it is getting interrupted in the middle of a difficult working process. Because after being distracted, it is hard to catch that flow again. But distractions can be everywhere and affect everyone. So how can we avoid them?
One of the first and easiest ways is to turn off notifications in messengers and applications. You can read messages when you’re ready for a break. It will definitely save you hours of interruption for you. 

Use noise-canceling headphones and mute your phone.
Focus on one task at a time. Multitasking is not what developers should practice much, but sometimes it is an essential skill they need. But to switch effectively between tasks, you can plan ahead and split your work day into some sessions.
If your company uses apps like Slack, turn on the “Do not disturb” feature before starting your work session.

4. Communicate!

Regular communication among the team helps to share important information that’ll impact how effectively you get your work done. Some ways to provide more frequent communication include:

Slack channels
Daily standups
Team lunches
Project boards

It’s important to keep meetings and calls short and only include the people who need to be there. Speaking of Slack, it’s best practice to save group chat for communication that applies to all members, and use DMs for personal one-to-one discussions. 

Regular communication and feedback lead to more engaged customers and stronger customer relationships, but it can also help to improve developer productivity. Feedback gives a team proper information to help them decide what features and requests to work on and when. 

But don’t overdo it! ?

Communication is useful, but like many other good things, you can overdo it. Too much communication can negatively impact productivity and reduce working time and energy available to get the main tasks done. 

5. Set reasonable deadlines

To set deadlines that are reasonable for you, you first need to determine the scope of the project. Deadlines are great if they motivate a team and help them plan and prioritize tasks and plan for dependencies. But too much or too early, and they can become overwhelming, negatively impact concentration, and cause stress. When setting deadlines, you should provide a reasonable estimate of how long the task will take, and take into account unforeseen bugs and roadblocks, as well as other priorities that may arise.

If you are using project management software, be sure to monitor it regularly when you work on your tasks.

6. Implement healthy habits

This tip is 100% suitable for all, not just developers. 

Drink more water, pay attention to mental health, get enough sleep, eat healthy food, and ventilate the room to breathe more fresh air. Make sure your other muscles get some work to do and not only your brain! 

Healthy habits lead to a better level of energy and as a result they will help to improve developer productivity. Take care of yourself first!

7. Design before you implement

You should understand the task clearly because uncertainty will lead to procrastination and wasting of time. Your first goal should be to understand a task clearly and define the tools and strategy you will use.

It is a common beginners’ mistake to jump right into writing the code, without first mapping the nature of the problem and the logical paths for creating the solution.

The best way to follow this tip is to keep a notebook and a pen nearby. Draw maps, outlines, flows and schemes. Write down all the comments and ideas that come to your mind during the process. It will definitely help you not to lose the thread of your logic when you get distracted by something, for example.

8. Find your flow state

Just as a muse comes to writers or artists, so do developers who can catch the “wave” and be fully involved in the process and even do not notice how the time goes. It’s a magical feeling when your knowledge, motivation and concentration align to produce maximum performance. Try to feel this condition and use it to be productive to the maximum. 

It is necessary to learn more about yourself and analyze when you are the most productive and what you need to create this “magical flow”.

Due to this reason, remote work and flexible working hours are so important for most developers as you are more flexible and have the opportunity to work when you feel most productive.

Being productive doesn’t mean sitting at your desk from 9am till 5pm. These days many developers think about their work issues and work even when they commute, do sports, relax at home, or have important conversations with peers at a local cafe or a bar. Flexibility is one of the main advantages of remote work. Being flexible with when and where developers work allows them to work smarter, innovate and be more productive. But there are some threats to working remotely, and to prevent them you can follow the tips in our previous article in the blog about remote work.

9. Keep your code blocks clean and short

Nothing is worse than trying to figure out what you did some months ago and how it needs to be changed. When you have massive methods and classes, it can be very difficult to figure out what the original logic was. To implement this rule you can follow some effective principles.

The first principle is DRY. It means “Don’t Repeat Yourself” and was first mentioned in the book The Pragmatic Programmer: From Journeyman to Master by Andy Hunt and Dave Thomas. The second principle that we recommend to improve developer productivity is the attractive KISS principle. This abbreviation means “Keep it simple, stupid!

It’s important that your code can be understood by you and other developers, even when it has been written a long time ago. Optimize your code for readability and understandability.

There is a popular and demonstrative quote by Albert Einstein: “If you can’t explain it to a six year old, you don’t understand it well enough yourself.” Don’t forget it while doing your work as a developer, please!

The KISS principle is also offered in two other forms (for those who don’t feel good about the inclusion of the word “stupid”):

Keep it short and simple
Keep it simple and straightforward

As you can see some words may be changed, but the sense of the principle stays the same.

10. Don’t ignore the code reviews

You might be the smartest guy in the room, with the best time-management and knowledge of all the key bindings in the world, and, still, there will always be room for involving others. Everybody makes mistakes and we want to have at least a second pair of eyes to look over a solution before it goes into production. Invest in yourself and introduce pairing programming, code reviews, or some other collective practice to your development process.

‍One of the best types of code reviews is when you have a good programmer who is only a little familiar with the project looking at the code. If you need to explain all the details, you’ll learn your code better, and sometimes an outsider will see problems that you, as the insider, missed. Code reviews cost you nothing but time, but often save you much more than it takes to do it. 

Code review is an essential part of workflow, also for sharing best practices with your team. This is connected with our first tip about improving professional knowledge to improve developer productivity. 

Bonus Tip

Outsource some of your projects or use Flatlogic Products to save time and improve developer productivity!

We offer a platform with starters/templates, CRUD app generator and hosting, all combined to make a perfect solution for web development. To learn more about it, you can follow Flatlogic.com website.

Productivity is about doing more. But it’s important to make sure you are working on products and features you or your customer need, because this won’t add any value to the business. That’s why productivity is always best combined with efficiency. It’s not just about getting the job done more quickly, but focusing on the right things and producing quality work.

It can take years of discipline and practice to be productive. So, don’t push yourself too hard and expect perfection in the beginning. But we hope that following the tips from this article will help you to improve your productivity.

If you work remotely and feel like your motivation and productivity decrease, you can read our previous article Why Does Remote Work Make Us Paranoid? And What To Do About It?

The post How to Improve Developer Productivity? [Guide] appeared first on Flatlogic Blog.Flatlogic Admin Templates banner

Why Does Remote Work Make Us Paranoid? And What To Do About It?

The number of people working remotely has significantly risen worldwide since the beginning of the covid epidemic in January 2020. And in spring 2022, with ongoing pandemics, many businesses in Eastern Europe faced new threats and had to find new ways to organize safe employees’ workplaces.

The relocation is increasing and so is the quantity of remote workers. We should accept the fact that remote work is the new reality; it is unavoidable and will stay and increase next years.

There are a lot of benefits of remote work and flexibility is number one among them. Flexibility to plan your time and choose your location are the most important, according to Buffer’s research. More benefits mentioned by the participants of their research you can see in the picture below.

And even though most people are used to this format and enjoy all its advantages, some employees still suffer while working remotely, cannot adapt to the new format, feel more anxious and they do not even realize the reasons for their feeling stressed or depressed. Some people say that remote work makes us paranoid. Let’s explore this question! But first, look at all the most common disadvantages of remote working!

According to the analytics mentioned by Buffer, among the most popular challenges associated with remote work are unplugging after work, loneliness, difficulty staying motivated and focused, communication and collaboration difficulties, working more and complication with career advancement or growth. 

And now let’s discuss the so-called paranoid feeling while working from home! Remote employees can face situations when they ask themselves: How to understand this “cold response” of the boss via email? I noticed a meeting there, why didn’t I receive an invitation to it? Why is my manager not responding in Slack? Does it mean I do smth wrong? Are they going to fire me? And so on…

And even knowing that in reality all is ok and the colleagues just have been busy, people cannot stop doubting, worrying and scrolling these thoughts in their heads. And moreover these thoughts while remote working can become paranoid.

According to Mind, the mental health charity in England, many employees experience kind of paranoid thoughts from time to time. These might include fears that your work is not up to scratch, that you are being excluded, or colleagues are gossiping about you behind your back.

So what is paranoia?

Paranoia is a state of distrust or fear in which someone misinterprets an ambiguous situation in a negative way, thus causing a feeling of persecution. With this in mind, paranoia while working from home can be a result of misinterpreting a message or action from a colleague or manager, among other occurrences.

Psychologists explain the strong interconnection of paranoia with impostor syndrome which is on the rise among remote employees now.

What is impostor syndrome?

It is also known as impostor phenomenon or impostorism and means a psychological occurrence in which an individual doubts their skills, talents, or accomplishments and has a persistent internalized fear of being exposed as a fraud.

There are several reasons for feeling doubt in your achievements and uncertainty in communication while working at home: 

It can be difficult to recognize nuances when feedback is provided virtually rather than in person.
Even while video calling it is harder to read body language and facial expressions. You cannot hear the intonation of messages in Slack or email. In such situations we can feel the importance of nonverbal communication.
Spending much time alone makes it easier to get stuck in your own head. And if you find yourself sliding down the “I’m not good enough” rabbit hole, it can be hard to get out.

All this creates favorable conditions for self-doubt. When you over-analyze all online interactions with your manager and team, you start to feel paranoid that you are not good enough. 

As a result, this paranoia can lead to these threats:

Feeling exhausted from working, especially because you are not sure that you are doing something useful. Productivity and motivation can drop significantly.
Abandon healthy boundaries between work and your personal life and constant thinking about work even after working hours. All it means is that you have an unhealthy imbalance between work and your personal life. And this imbalance can also lead to problems in your relationships, family life, hobbies, and so on.

The good news is that remote work paranoia can be stopped and impostor syndrome is not a clinical condition.

So let’s see the most popular and easy rules on how to deal with these struggles!

As a company (manager/team lead/HR) you should pay attention to remote work culture and to make focus on creating new environment based on:

Connection
Trust
A sense of purpose

Let’ move on and take a look on 9 common recommendations for you as an employee working remotely:

Create a workspace. Physical separation from work and home is really important to unplug after working hours. If it is impossible to do at your home, you can look for coworking spaces in your city.
You can also separate your work browser and a free-time browser. For example, you can use Safari, Chrome or any other browser to watch movies, this will help facilitate unplugging after work.

1. Define your working hours

You can stay flexible from day to day if possible, but it’s better to know your work and personal schedule for the day ahead. Sometimes working remotely leads to working 24/7, you are constantly checking your email and Slack and feel like work will never end. But respect your time and plan special hours on work and rest, hobbies and private life as well!

2. Take breaks when needed

Make tea or go for a walk alone when changing tasks or working non-stop for a long period of time. Let your mind recharge before switching to the next thing on your list.

3. Stay connected to your team

Working remotely you may start to feel disconnected from your colleagues, feeling left out and unsupported. What is the main advice to stay connected to your company? Of course, it is video calls. They can help bridge the gap and they can be not only regarding work but also informal to discuss the last series you watched or book you read. Just imagine that you are drinking coffee together in the office kitchen.

One more advice here – Keep your cameras ON! Sometimes you feel more comfortable hiding in pajamas behind a camera-off, but it is not good practice. We are used to people’s faces, to their facial expressions and signs. When times are uncertain, these visual hints calm our minds and provide a sense of connection. People want to see you smile or an approving nod. So get ready for a meeting to make it possible to keep your camera ON.

4. Be clear when communicating with colleagues

Try to set and accept tasks clearly, provide context, and double-check your messages before sending. If email, Slack, or other forms of written communication still leave you feeling uncertain, consider picking up the phone. Sometimes even just hearing someone’s voice can help clear things up.

When talking about clear communication, we cannot ignore Smart task theory. This tool helps both managers and the whole team to save time and avoid misunderstandings.

 https://www.recbound.com/recruitment-agency-blog/example-smart-goals-for-recruiters

5. Internalize your accomplishments

What does it mean? How can you do it? First off, you should analyze your daily achievements, focus on positive moments, and even small completed tasks. Don’t forget to thank and reward your accomplishments. Treat yourself the way you want to be treated!

Your goal is to try to create a feeling of approval, support and security for yourself with a so-called “brag file”. A brag file is a list of your achievements and wins you are proud of, all the compliments and positive feedback you get. You can start with some points right now and then revisit them and complete your collection regularly. Revisit your brag file when you’re feeling sad, self-conscious, or experiencing impostor syndrome or other paranoid thoughts. 

Acknowledge the hard work you’re doing and don’t be shy about sharing it in your updates to senior leaders or the team. 

Btw, this practice of “brag file” works not only for remote working employees, it is a really good technique for all suffering from impostor syndrome. Over time, this will help you become more confident, self-satisfied and also notice more good qualities in other people.

6. Depersonalize others’ actions and try not to read into things too much

Nowadays, empathy and emotional intelligence are becoming more and more popular soft skills. It is great to understand your and other people’s emotions. But sometimes when your level of empathy is high, it can lead to misunderstandings of other people’s behavior because of taking it personally. You think that all the world revolves around you. But it is far from the truth.

You just need to know that if your boss is upset, it doesn’t mean that it is you who did something wrong. There can be thousands of reasons for this. 

The advice is that you should try to divide yourself, your emotions and your opinion about yourself from others words and moods. 

Moreover, often people see and criticize others for what they do not like about themselves. Just think about it!

7. Be open and explicit

It’s always a good idea to talk about your expectations and boundaries (both at work and in relationships). And it’s doubly important when you feel that remote work makes you paranoid.

For example, consider getting feedback from your boss. If you open a conversation, you can clear up all the details regarding working style, processes and tasks. You will find out what to expect and you won’t be shocked to receive feedback with lots of corrections. This is less likely to hurt your ego, because you already know that your boss is especially attentive to details.

8. Talk it out

If you feel that remote work makes you paranoid, talk about it. You can discuss it with your boss and switch to working from the office or hybrid format if it is possible in your company. Talking about it with your friends or your partner can help to clear your mind of negative thoughts.

But if you can’t stop feeling paranoid and these simple rules don’t help you, it is better to solve this problem with specialists (psychologists) individually.

Here above we offer you some common recommendations on what to do if you feel that remote work makes you paranoid. But you should always keep in mind that there is no rulebook with a 100% guarantee when you talk about people’s feelings. There is a saying “Many men, many minds”. We all are individuals with our special psychological features. And also your opinion on remote work and how to deal with paranoid thoughts can differ from others’ ones.

Above all, remember that you deserve a work life that is fulfilling and a team that values you and your contributions. Protect your mental health and your time by managing your remote work paranoia.

As for Flatlogic, we have a hybrid format of working. Most employees who work on Flatlogic products do it from the office but still have the opportunity to work remotely once a week. The part of our team who works on outsourcing projects mostly work remotely and come to the office only once a week, on Mondays to have meetings and do some administrative deals.

But recently we are getting bigger and more flexible, and we also hire developers and software engineers from all over the world for fully remote work. So feel free to send your CV if you want to cooperate with us on any terms!

What do we do to make the work of remote employees of Flatlogic more comfortable?

We do regular video calls with all the team to discuss the latest news and just for informal talks. We have a corporate online digest to keep everyone involved in the life of the company. Our inner educational meetings and English club are held both offline and online. We have informal channels in Slack to share memes, recommendations of movies and so on. 

We have a personal and flexible approach to employees and empathy and connection are not just words. The first five minutes of a meeting focus on what is going on with the team and only then we go to the main agenda. 

All this helps our company to keep in touch with remote part of the team, improve inner communication and corporate culture, and increase employee engagement.

Here we also have a result-oriented approach to our work processes and try to uphold such values as trust, responsibility and freedom for self-expression and self-development

And at the end of this article, just to boost your mood and make you smile, find some funny memes about remote work

By the way, staying positive and treating some situations with a sense of humor is also a good way to overcome some difficult moments of remote work. 

Do you recognize yourself or your colleagues in them?:)

Suggested Articles

Starting a Web App in 2022 [Research]
Top 40+ Javascript Memes|Programming Humor
Top 40 Nerd Jokes for Programmers to Liven Up Your Day [Golden Collection]

The post Why Does Remote Work Make Us Paranoid? And What To Do About It? appeared first on Flatlogic Blog.Flatlogic Admin Templates banner

10 KPI Templates and Dashboards for Tracking KPI’s

Introduction
What Instruments Do We Need to Build an Effective Dashboard for KPIs?

The Top Dashboards for Tracking KPIs
Sing App Admin Dashboard
Retail Dashboard from Simple KPI
Light Blue React Node.js
Limitless Dashboard
Cork Admin Dashboard
Paper Admin Template
Pick Admin Dashboard Template
Able Pro Admin Dashboard
Architect UI Admin Template
Flatlogic One Admin Dashboard Template

You might also like these articles

Introduction

KPIs or Key Performance Indicators are a modern instrument to make a system (business, for example) work effectively. KPIs show how successful the business is, or how professional the employee is. It works with the help of measurable values, that are intended to show the success of achieving your strategic goals. KPIs are measurable indicators that you should track, calculate, analyze, and represent.  If you read this article, it means that you want to find or build an app to help you in all operations above. But before we list the top dashboard KPI templates, it’s essential to understand how exactly to choose a set of indicators that boost the growth of a business. For KPIs to be useful, they should be relevant to a business. That is crucial not only for entrepreneurs who try to improve their businesses but also for the developers of the software for tracking KPIs. Why?

Developers need to be aware of what instruments they should include in the app so the users will be able to use KPI’s easily and effectively. Since there are much more than a handful of articles and approaches on how to find the right performance indicators, what KPIs to choose, how to track them, development of a quality web application can be complicated. 

However, from our point of view, the most challenging part of such an app is building a dashboard that displays all necessary KPIs on a single screen. We have explored the Internet, analyzed different types of tools to represent KPIs, found great dashboards, and make two lists: one consists of the charts and instruments you should definitely include in your future app, the other is top dashboards we found that contain elements from the first top. Each KPI template on the list is a potent tool that will boost your metrics considerably. Let’s start from the first list.  

Enjoy reading! 

What Instruments Do We Need to Build an Effective Dashboard for KPIs?

Absolute numerical values and percentage (in absolute amount)

With the help of percentage, you can make it more informative by adding the comparison of KPI with the previous periods.

The source: https://vuestic.epicmax.co/admin/dashboard

Non-linear chart

One of the core charts.

The source: https://visme.co/blog/types-of-graphs/

Bar chart

Another core element to display KPIs.

The source: http://ableproadmin.com/angular/default/charts/apex

Stacked Bar Graphs

It’s a more complex instrument, but more informative respectively.

Progress bars

Can be confused with a horizontal bar chart. The main difference: a horizontal bar chart is used to compare the values in several categories, while a progress bar is supposed to show the progress in a single category.

The source: https://vinteedois.com.br/progress-bars/

Pie charts

The source: https://www.cleanpng.com/png-pie-chart-finance-accounting-financial-statement-3867064/preview.html

Donut chart

You can replace pie charts with a donut chart, the meaning is the same.

The source: http://webapplayers.com/luna_admin-v1.4/chartJs.html

Gauge chart

This chart helps users to track their progress towards achieving goals. It’s interchangeable with a progress bar. 

The source: https://www.datapine.com/kpi-examples-and-templates/finance

Pictograms

Instead of using an axis with numbers, it uses pictures to represent a relative or an absolute number of items.

The source: https://www.bootstrapdash.com/demo/corona/jquery/template/modern-vertical/pages/charts/justGage.html

Process behavior chart

Especially valuable for financial KPIs. The mainline shows measurement over time or categories, while two red lines are control limits that shouldn’t be surpassed.

The source: https://www.leanblog.org/2018/12/using-process-behavior-charts-to-compare-red-bead-game-willing-workers-and-baseball-teams/

Combined bar and line graph

The source: https://www.pinterest.co.uk/pin/254031235216555663/

Some additional tools:

These tools are also essential for building a dashboard for tracking KPI: calendar, dropdowns, checkboxes, input fields. The option to create and download a report will also be helpful.

The Top Dashboards for Tracking KPIs

Sing App Admin Dashboard

The source: https://demo.flatlogic.com/sing-app-vue/#/app/main/visits

If you look through a huge number of KPI templates and don’t find one that you need, you should take a look at Sing app. Sing is a premium admin dashboard template that offers all necessary opportunities to turn data into easy to understand graphs and charts. Besides all charts and functions listed above, with Sing, you get such options as downloading graphs in SVG and PNG format, animated and interactive pointer that highlights the point where the cursor is placed, and change the period for values calculation inside the frame with the graph!

MORE INFO
DEMO

Retail Dashboard from Simple KPI

The source: https://dashboards.simplekpi.com/dashboards/shared/NT0B93_AnEG1AD7YKn60zg

That is a dashboard focused on the retail trade sphere. It already contains relevant KPIs and Metrics for that sector, so you need just to download it and use it. Since it’s an opinioned dashboard you will not get a great customization option. If you are a retailer or trader you should try that dashboard to track the performance when selling goods or services.

MORE INFO
DEMO

Light Blue React Node.js

The source: https://flatlogic.com/templates/light-blue-react-node-js/demo

It is a React Admin dashboard template with Node.JS backend. The template is more suited for KPIs that reflect goals in web app traffic analysis, revenue and current balance tracking, and sales management. However, Light blue contains a lot of ready-to-use working components and charts to build a necessary dashboard. It’s very easy to customize and implement, both beginners in React and professional developers can benefit from that template and get a track on KPIs, metrics, and business data.

MORE INFO
DEMO

Limitless Dashboard

The source: http://demo.interface.club/limitless/demo/Template/layout_1/LTR/default/full/index.html

Limitless is a powerful admin template and a best-seller on ThemeForest. It goes with a modern business KPI dashboard that simplifies the processes of monitoring, analyzing, and generating insights. With the help of that dashboard, you can easily monitor the progress of growing sales or traffic and adjust the sales strategy according to customer behavior. Furthermore, the dashboard contains a live update function to keep you abreast of the latest changes.

MORE INFO
DEMO

Cork Admin Dashboard

The source: https://designreset.com/cork/ltr/demo4/index2.html

That is an awesome bootstrap-based dashboard template that follows the best design and programming principles.  The template provides you with more than 10 layout options and Laravel Version of the extremely rare dashboard. Several pages with charts and two dashboards with different metrics ensure you have the basic elements to build a great dashboard for tracking KPI.

MORE INFO
DEMO

Paper Admin Template

The source: https://xvelopers.com/demos/html/paper-panel/index.html

This template fits you if you are looking for a concrete solution since Paper goes with eleven dashboards in the package! They all are unnamed so it will take time to look through them, but that time will be less than time for building your dashboard. Every dashboard provides a simple single-screen view of data and allows sharing it with your collages.

MORE INFO
DEMO

Pick Admin Dashboard Template

The source: http://html.designstream.co.in/pick/html/index-analytic.html

Pick is a modern and stylish solution for the IT industry. It’s a multipurpose dashboard that helps you to gain full control over the performance.

MORE INFO
DEMO

Able Pro Admin Dashboard

The source: http://ableproadmin.com/angular/default/dashboard/analytics

If you believe that the most qualified products are the most rated products, take a look at Able pro. Able pro is a best-rated bootstrap admin template on Themeforest. The human eye captures information within the graph blazingly fast! With that dashboard, you can go much deeper into the understanding of KPIs and make the decision-making process much easier.

MORE INFO
DEMO

Architect UI Admin Template

The source: https://demo.dashboardpack.com/architectui-html-pro/index.html

Those who download Architect UI make the right choice. This KPI template created with hundreds of build-in elements and components, and three blocks of charts. The modular frontend architecture makes dashboard customization fast and easy, while animated graphs provide insights about KPIs.

MORE INFO
DEMO

Flatlogic One Admin Dashboard Template

The source: https://templates-flatlogic.herokuapp.com/flatlogic-one/html5/dashboard/visits.html

Flatlogic one is a one-size-fits-all solution for any type of dashboard. It is a premium bootstrap admin dashboard template that has been released recently in July 2020. It goes with two developed dashboards that serve well as KPI templates: analytics and visits. But it also offers four additional pages with smoothly animated charts for any taste and needs. The dashboard is flexible and highly customizable, so you easily get the benefit from that template.

MORE INFO
DEMO

Thanks for reading.

You might also like these articles:

14+ Best Node.js Open Source Projects

8 Essential Bootstrap Components for Your Web App

Best 14+ Bootstrap Open- Source Projects

The post 10 KPI Templates and Dashboards for Tracking KPI’s appeared first on Flatlogic Blog.Flatlogic Admin Templates banner

347: Using Notion

Rachel and Chris dig into the many, many ways in which we use Notion at CodePen. Heads up, Notion has sponsored a couple of episodes of CodePen Radio lately, but not this. It’s just a tool we heavily use and this podcast is all about that sort of thing. Heck, this podcast itself was planned in a calendar database on Notion, which deals with dates, publication status, sponsors, and all sorts of stuff. And it’s probably one of the least involved Notion setups we have. Much more involved is stuff like project planning and our individual structures for our company-public weeknotes.

Time Jumps

00:28 Topic introduction

01:21 Tools we’re using for CodePen

04:51 Getting buy in from the team

07:57 What is Notion?

10:55 Multiple views of the same data

13:58 What does CodePen actually use Notion for?

20:04 Sponsor: Jetpack Backups

21:27 Second brain storage

23:44 Roles and permissions in Notion

31:14 Other features of Notion

36:37 Fav Notion recent feature

Sponsor: Jetpack Backups

The big news from Jetpack is that all backups are realtime now. Realtime backups are awesome. Anything that happens on your site, it’s backed up immediately. That makes backups extremely useful as there is no risk you have to miss three-quarters of a day of content, purchase, comments or anything else because all you have is daily backups.

The post 347: Using Notion appeared first on CodePen Blog.