Archive

Archive for July, 2020

Nissan Releases New Logo Design After Nearly 20 Years

July 16th, 2020 No comments
Nissan New Logo

We all know that flat design is all the rage right now, and for good reason.

Almost every major company that has done a logo redesign in the past two years has gone for a completely minimalist and simple design.

Nissan is no exception.

Nissan’s New Logo Design 2020

After nearly 20 years, Nissan has gone through its first redesign glow-up and we are loving it.

New nissan logo

It all started in 2017…

The Nissan redesign process all began back in the summer of 2017.

Nissan’s Senior Vice President of Global Design, Alfonso Albaisa, started looking at the logo and decided it needed a good freshening-up.

The design team at Nissan took this time to decide how they were going to redesign the logo.

They thought of everything from a complete and total revamping of the logo, or just a simplified version that is sleek and modern and fits every occasion.

This new simplified version of Nissan’s logo still holds fast to its original logo roots but fits better in our modern world than the anterior logo.

New Nissan logo on building

This is their first logo redesign in 20 years, which to me is just mind-boggling.

And the first sign we got that they were under redesign was back in March of 2020 when they applied for some trademarks.

The 3 words that Alfonso and Tsutomu Matsuo(Nissan’s design department deputy general manager) used to describe the new logo for Nissan were “thin, light and flexible”.

And the new logo is nothing short of that.

Nissan Logo on Car 2020

This new logo needed to be sleek and minimal, but they also wanted it to glow.

In an era where people are leaning towards getting electric cars, this new logo needed to stand out and match the style of a new and modern electric car.

In order for this logo to look good across all digital platforms and also in real life on cars, the design team needed to decide on an appropriate thickness that would always be visible.

Nissan logo redesign of 2020

Like I said, Nissan really held onto the heritage of the original logo and the slogan they work by, which states “If you have a strong belief, it penetrates even the sun.”

You can see this implemented through the fundamental elements in the logo, which are the circle and the horizontal plate of the name.

So while the new design isn’t completely revamped, it definitely looks a lot better and newer.

It looks amazing across all platforms and also when it’s displayed on the car.

We are huge fans of Nissan’s new logo design.

New nissan logo

In Conclusion

2020 has been the year that lots of car companies have redesigned their logos.

First, we saw BMW come in full force with a gorgeous, minimalistic logo redesign. Secondly, we saw VW hit us with a new sleek design, and now Nissan.

Who do you think will grace us next with a new logo design?

What do you think of Nissan’s new logo? Are you for it or would you have done things differently?

Let us know in the comment section down below.

Until next time,

Stay creative!

Read More at Nissan Releases New Logo Design After Nearly 20 Years

Categories: Designing, Others Tags:

Lazy Loading Images in Svelte

July 16th, 2020 No comments

One easy way to improve the speed of a website is to only download images only when they’re needed, which would be when they enter the viewport. This “lazy loading” technique has been around a while and there are lots of great tutorials on how to implement it.

But even with all the resources out there, implementing lazy loading can look different depending on the project you’re working in or the framework you’re using. In this article, I’ll use the Intersection Observer API alongside the onLoad event to lazy load images with the Svelte JavaScript framework.

Check out Tristram Tolliday’s introduction to Svelte if you’re new to the framework.

Let’s work with a real-life example

I put this approach together while testing the speed on a Svelte and Sapper application I work on, Shop Ireland. One of our goals is to make the thing as fast as we possible can. We hit a point where the homepage was taking a performance hit because the browser was downloading a bunch of images that weren’t even on the screen, so naturally, we turned to lazy loading them instead.

Svelte is already pretty darn fast because all of the code is compiled in advance. But once we tossed in lazy loading for images, things really started speeding up.

This is what we’re going to work on tofgether. Feel free to grab the final code for this demo from GitHub and read along for an explanation of how it works.

This is where we’ll end up by the end:

CodePen Embed Fallback

Let’s quickly start up Svelte

You might already have a Svelte app you’d like to use, but if not, let’s start a new Svelte project and work on it locally. From the command line:

npx degit sveltejs/template my-svelte-project
cd my-svelte-project
npm install
npm run dev

You should now have a beginner app running on http://localhost:5000.

Adding the components folder

The initial Svelte demo has an App.svelte file but no components just yet. Let’s set up the components we need for this demo. There is no components folder, so let’s create one in the src folder. Inside that folder, create an Image folder — this will hold our components for this demo.

We’re going to have our components do two things. First, they will check when an image enters the viewport. Then, when an image does enter, the components will wait until the image file has loaded before showing it.

The first component will be an that wraps around the second component, an . What I like about this setup is that it allows each component to be focused on doing one thing instead of trying to pack a bunch of operations in a single component.

Let’s start with the component.

Observing the intersection

Our first component is going to be a working implementation of the Intersection Observer API. The Intersection Observer is a pretty complex thing but the gist of it is that it watches a child element and informs us when it enters the bounding box of its parent. Hence images: they can be children of some parent element and we can get a heads up when they scroll into view.

While it’s definitely a great idea to get acquainted with the ins and outs of the Intersection Observer API — and Travis Almand has an excellent write-up of it — we’re going to make use of a handy Svelte component that Rich Harris put together for svelte.dev.

We’ll set this up first before digging into what exactly it does. Create a new IntersectionObserver.svelte file and drop it into the src/components/Image folder. This is where we’ll define the component with the following code:

<script>
  import { onMount } from 'svelte';


  export let once = false;
  export let top = 0;
  export let bottom = 0;
  export let left = 0;
  export let right = 0;


  let intersecting = false;
  let container;


  onMount(() => {
    if (typeof IntersectionObserver !== 'undefined') {
      const rootMargin = `${bottom}px ${left}px ${top}px ${right}px`;


      const observer = new IntersectionObserver(entries => {
        intersecting = entries[0].isIntersecting;
        if (intersecting && once) {
          observer.unobserve(container);
        }
      }, {
        rootMargin
      });


      observer.observe(container);
      return () => observer.unobserve(container);
    }


    function handler() {
      const bcr = container.getBoundingClientRect();


      intersecting = (
        (bcr.bottom + bottom) > 0 &&
        (bcr.right + right) > 0 &&
        (bcr.top - top) < window.innerHeight &&
        (bcr.left - left) < window.innerWidth
      );


      if (intersecting && once) {
        window.removeEventListener('scroll', handler);
      }
    }


    window.addEventListener('scroll', handler);
    return () => window.removeEventListener('scroll', handler);
  });
</script>


<style>
  div {
    width: 100%;
    height: 100%;
  }
</style>


<div bind:this={container}>
  <slot {intersecting}></slot>
</div>

We can use this component as a wrapper around other components, and it will determine for us whether the wrapped component is intersecting with the viewport.

If you’re familiar with the structure of Svelte components, you’ll see it follows a pattern that starts with scripts, goes into styles, then ends with markup. It sets some options that we can pass in, including a once property, along with numeric values for the top, right, bottom and left distances from the edge of the screen that define the point where the intersection begins.

We’ll ignore the distances but instead make use of the once property. This will ensure the images only load once, as they enter the viewport.

The main logic of the component is within the onMount section. This sets up our observer, which is used to check our element to determine if it’s “intersecting” with the visible area of the screen. It also attaches a scroll event to check whether the element is visible as we scroll, and then it’ll remove this listener if we’ve determined that it is viable and that once is true.

Loading the images

Let’s use our component to conditionally load images by wrapping it around an component. Again, this is the component that receives a notification from the so it knows it’s time to load an image.

That means we’ll need a new component file in components/Image. Let’s call it ImageLoader.svelte. Here’s the code we want in it:

<script>
  export let src
  export let alt


  import IntersectionObserver from './IntersectionObserver.svelte'
  import Image from './Image.svelte'
  
</script>


<IntersectionObserver once={true} let:intersecting={intersecting}>
  {#if intersecting}
    <Image {alt} {src} />
  {/if}
</IntersectionObserver>

This component takes some image-related props — src and alt — that we will use to create the actual markup for an image. Notice that we’re importing two components in the scripts section, including the we just created and another one called that we haven’t created yet, but will get to in a moment.

The is put to work by acting as a wrapping around the soon-to-be-created component. Check out those properties on it. We are setting once to true, so the image only loads the first time we see it.

Then we make use of Svelte’s slot props. What are those? Let’s cover that next.

Slotting property values

Wrapping component, like our are handy for passing props to the children it contains. Svelte gives us something called slot props to make that happen.

In our component you may have noticed this line:

<slot {intersecting}></slot>

This is passing the intersecting prop into whatever component we give it. In this case, our component receives the prop when it uses the wrapper. We access the prop using let:intersecting={intersecting} like so:

<IntersectionObserver once={true} let:intersecting={intersecting}>

We can then use the intersecting value to determine when it’s time to load an component. In this case, we’re using an if condition to check for when it’s go time:

<IntersectionObserver once={true} let:intersecting={intersecting}>
  {#if intersecting}
    <Image {alt} {src} />
  {/if}
</IntersectionObserver> 

If the intersection is happening, the is loaded and receives the alt and src props. You can learn a bit more about slot props in this Svelte tutorial.

We now have the code in place to show an component when it is scrolled onto the screen. Let’s finally get to building the component.

Showing images on load

Yep, you guessed it: let’s add an Image.svelte file to the components/Image folder for our component. This is the component that receives our alt and src props and sets them on an element.

Here’s the component code:

<script>
  export let src
  export let alt


  import { onMount } from 'svelte'


  let loaded = false
  let thisImage


  onMount(() => {
    thisImage.onload = () => {
      loaded = true
    }
  }) 


</script>


<style>
  img {
    height: 200px;
    opacity: 0;
    transition: opacity 1200ms ease-out;
  }
  img.loaded {
    opacity: 1;
  }
</style>


<img {src} {alt} class:loaded bind:this={thisImage} />

Right off the bat, we’re receiving the alt and src props before defining two new variables: loaded to store whether the image has loaded or not, and thisImage to store a reference to the img DOM element itself.

We’re also using a helpful Svelte method called onMount. This gives us a way to call functions once a component has been rendered in the DOM. In this case, we’re set a callback for thisImage.onload. In plain English, that means it’s executed when the image has finished loading, and will set the loaded variable to a true value.

We’ll use CSS to reveal the image and fade it into view. Let’s give set an opacity: 0 on images so they are initially invisible, though technically on the page. Then, as they intersect the viewport and the grants permission to load the image, we’ll set the image to full opacity. We can make it a smooth transition by setting the transition property on image. The demo sets the transition time to 1200ms but you can speed it up or slow it down as needed.

That leads us to the very last line of the file, which is the markup for an element.

<img {src} {alt} class:loaded bind:this={thisImage} />

This uses class:loaded to conditionally apply a .loaded class if the loaded variable is true. It also uses the bind:this method to associate this DOM element with the thisImage variable.

Let’s hook it all up!

Alright, it’s time to actually use our component. Crack open the App.svelte file and drop in the following code to import our component and use it:

<script>
  import ImageLoader from './components/Image/ImageLoader.svelte';
</script>


<ImageLoader src="OUR_IMAGE_URL" alt="Our image"></ImageLoader>

Here’s the demo once again:

CodePen Embed Fallback

And remember that you’re welcome to download the complete code for this demo on GitHub. If you’d like to see this working on a production site, check out my Shop Ireland project. Lazy loading is used on the homepage, category pages and search pages to help speed things up. I hope you find it useful for your own Svelte projects!


The post Lazy Loading Images in Svelte appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Categories: Designing, Others Tags:

Irregular-shaped Links with Subgrid

July 16th, 2020 No comments

Michelle Barker covers a situation where you need offset rectangles part of a clickable area. The tricky part is having just the rectangles be clickable. That rules out using some parent element and making the whole larger encompassing rectangle clickable, which is a common (but equally tricky) pattern.

Kicking one rectangle outside the bounds of the linked one with absolute positioning could work, but Michelle takes a path here that lays everything out on a grid, then uses pointer-events to get the click areas just right. Feels more robust to me.

CodePen Embed Fallback

Yet another good example of why we need subgrid everywhere, stat.

Direct Link to ArticlePermalink


The post Irregular-shaped Links with Subgrid appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Categories: Designing, Others Tags:

How to Provide Effective Feedback on Web Design

July 16th, 2020 No comments

The web design process is a demanding one that requires collaboration and inclusivity to achieve the desired results.

During the project, designers receive tons of opinions and reactions from the stakeholders. The feedback, if constructive, can drive the project forward. It helps designers stay on the same page with their clients while working collaboratively towards the common goal. Conversely, poor feedback can hold up or potentially stall the project since designers are not sure of the changes or revisions to implement.

For this reason, you should learn how to provide clear and actionable feedback that adds value to the design process. Below are eight tips that can help you provide constructive web design feedback to improve the outcome of your project.

1. Assess how the design aligns with your business goals

Whether you’re working on a new project, or redesigning an existing website, start by evaluating how different design aspects align with your objectives. For business and organizational websites, verify that the design follows your brand guidelines, including imagery, color scheme, fonts, and other graphical elements. The website design should be an accurate reflection of your brand’s personality.

As the design process unfolds, be sure to check whether it meets the goals you set at the beginning of the project. Ideally, the design should be intuitive enough to guide users through the desired path of action.

2. Be clear and specific

This is arguably the most helpful guideline for making your feedback more effective. You should always strive to articulate your views clearly in a way that the designer can understand and implement your feedback accurately.

When you see an element that requires some tweaking, be,and provide as much context as you can. Clear and concise feedback gives the designer something constructive from which they can start revising the design.

It is always important to keep off generic comments along the lines of “I don’t like the layout” or “make it cooler”. This kind of feedback does not provide necessary guidance or context for making changes to the design.

3. Provide examples whenever possible

The best way to express opinions in your web design feedback is by using examples. Sharing a couple of screenshots and links to other websites with your designer provides a better understanding of the kind of design you’re looking forward to.

With a visual reference, designers can make necessary revisions in the right way. This avoids the confusion that might occur when you use a vague description that is subject to misinterpretation.

So, next time you’re providing web design feedback, make it more effective by illustrating your points with visual examples.

4. Avoid vague or ambiguous comments

One of the most common reasons why clients deliver poor feedback to their designers is by using vague and ambiguous comments.

For instance, when you say “make it pop,” “jazz it up,” or “the site looks bland,” the designer might be confused about what you want. Many questions will pop up – do you want some improvements on the fonts used? Do you want a brighter color scheme? Are you recommending a change of the images used?

Good web design feedback avoids generalities since they are open to multiple interpretations. You should use clear statements with concrete examples of what you’re feeling. For instance, you can ask the designer to draw more attention to the sidebar titles by adding some whitespace and making the headlines bigger.

5. Be objective

Most people are tempted to give web design feedback based on their personal tastes. Even if you’re working on a personal website or blog, it is always good to step back and assess the design from your customer’s or end-user point of view. Your target audience should be your top priority, so comment based on what they like or what they’d find intuitive and easy-to-use.

Additionally, good feedback is as objective as possible. It builds on definitive information such as research findings, project goals, or the creative brief. For instance, saying “I don’t like color red, can you remove it?” sounds harsh. Instead, you can provide a more objective reason for the suggestion. You can say, “The design looks good, but can we use a different color scheme because red isn’t part of our brand’s color palette?”

6. Use a web design feedback template/checklist

A web design feedback template is a simple and easy-to-use form that allows you to communicate your view on key design aspects.

With this template, you can comment on a wide array of UI elements including usability, intuitiveness, efficiency, memorability, navigation, content, load speed, and more. Using a feedback template or checklist allows you to provide exhaustive feedback about website design, without leaving out the most important details.

7. Ask relevant design questions

An effective way of improving feedback is by asking questions that make designers feel respected as contributors in the project. So, instead of providing feedback that’s too specific, consider creating additional room for engagement by asking questions.

For instance, you can politely ask why they added a particular element to the layout. Alternatively, you can ask the designer to tell you more about a particular choice of design. The idea here is to ask questions that are directly tied to the project goals. When the designer responds, you can easily gain insight into their approach to solving particular problems.

8. Be honest

Finally, remember honesty is key. You should be completely transparent with the feedback you provide, without worrying about causing offense.

The goal of the project is to deliver a product that meets the specified requirements and gives your audience the best experience. Designers cannot achieve these or any other desired result without your input. So, be sincere from the start to avoid multiple unnecessary revisions or frustrations at the end of the project.

It is also a good idea to provide positive feedback as opposed to focusing only on the negatives. Taking note of the positives in your feedback gives a better idea of what you want to the designer. This encourages them to keep moving in the right direction when addressing the negatives. Adding some compliments in your feedback also reinforces your working relationship with the designer.

Conclusion

Effective feedback plays an indispensable role in the success of any collaborative project. With clear communication throughout the design process, all parties can be sure of a successful outcome. Whether you’re communicating with your designer in person, via email, or over the phone, using the above tips when crafting and delivering feedback will help your designer understand your needs better and deliver the website you deserve.


Creator; Adela Belin is a content marketer and blogger at Writers Per Hour.
Photo by Moose Photos from Pexels

Categories: Others Tags:

3 tips to boost your developers’ energy at work

July 16th, 2020 No comments

It’s no secret that routine at work can get monotonous and unmotivating sometimes. Everyone, at some point, needs to reconnect with their job and find the inspiration again. Nothing wrong with that – we are only human!

Did you know that, according to Gallup’s research, companies with an engaged team are 21% more profitable? Despite this, the research shows that 85% of employees are not engaged at work.

Knowing this, it sounds a bit odd that companies aren’t dedicating more resources, monetary or not, to increase their employees’ motivation and engagement at work.

Fortunately enough, there are many different initiatives that can help you turn that percentage upside down for your team!

And what about developers? Spending their days in front of the screen, fixing bugs, coding, creating new cool features, taking care of the users’ experience… Those need some attention as well!

But no worries, these tips will have you covered with your DevOps team.

Overall, the main tip for all companies out there is to start considering employees’ motivation as an ongoing objective to work on. Yes, that’s kind of broad. Luckily, there are many other, more accurate, tips to increase motivation at work – on a daily basis!

Let’s get hands-on with these 3 tips to boost your developers’ energy at work:

Promote data-driven conversations

Creating a positive work environment is the #1 step to promote a positive attitude among your employees. Makes sense, right?

But sometimes, having a nice vibe is not enough to keep a motivated and focused workforce.

You can give it a little twist, and change the “How was the weekend?” for “How was last week?”. Your employees then have the opportunity to talk about their numbers, get inspiration from their colleagues, and get better insights into their own performance.

And of course, this is also applicable to your developers! No matter the department, we all work with some kind of data.

A friendly way of getting started with this type of conversation is, for instance, establishing check-in meetings. It consists of a quick meeting – up to 15 minutes – where a department gathers and talks about the objectives for the week. Both individual and per department.

There, your developers can set the daily goals for the week, talk about last week’s results, and maybe even mention the learnings gathered.

It’s all about creating the space for your team to talk about the exciting or challenging parts of their job, and share their insights with one another.

Try it, and you’ll see!

Allow them to follow their progress

One condition to having data-driven conversations around the office – or through video calls if working remotely, is to actually allow your team to follow their own progress towards their goals.

There are many different ways of doing this, but remember that it’s all about transparency with your team.

For instance, an idea that can help you boost your developers’ motivation towards their KPIs is having one-on-ones meetings regularly. Apart from talking about their role, it’s also interesting to give it a data-driven approach by bringing real data.

This way, the employee can see first-hand how the progress has been, how far or close if the KPI from being reached, or whether there was a peak where something didn’t work.

This way, your employees become more aware of their own performance and can make better decisions about it.

Another option is to use a data visualization software, like Plecto, that can display their progress and KPIs in real-time. This allows your developers to have a full overview of their pending and already completed tasks, soon-to-be reached objectives or longer-term goals. All at one glance.

They no longer need to wait for the weekly reviews, or the monthly reports, because they have 24/7 access to their performance.

This allows you to have a more independent team, with each employee taking control over their data. Plus, being able to see their real-time progress promotes some self-competition, where your employees challenge themselves to do better at work – and visualizing it.

Celebrate your employees

Celebrating success is often the reason for achieving it in the first place! This might sound obvious, but many companies usually forget about the last step when it comes to their employees’ KPIs.

Just because your employees do what they were hired for, does not mean they can’t take credit from it. In fact, they should! That’s what keeps one willing to do it again.

What happens when you set a goal, work hard to reach it, and then, when it’s done, no one notices? You’d probably not have the same energy to do it again. And again, and again.

In fact, according to research carried out by Globoforce, almost 70% of employees agreed that they would work harder if they felt their efforts better appreciated by the manager.

This is probably what your team goes through, or would do if you don’t take the time to give them the tap on the shoulder they need – symbolically or not.

The good thing is, that there are endless ways of celebrating an employee!

For instance, you can create different initiatives for the various types of goals. Let’s say, every time your developers finish a sprint, they do 10 push-ups together. You can also keep it lower if your development team won’t handle it.

Another example is that, for every bug solved on the website, a notification pops up in the internal communication channel, or in the data visualization software. This way, all your employees – from every department – will know what’s going on around the team.

And that, indirectly, it’s also a motivating push for the rest of the team. Seeing each other working hard and achieving targets, motivates the rest to join the high-performance spirit.

Plus, who doesn’t like a little celebration after a good job?

Categories: Others Tags:

How to Write a Business Plan

July 16th, 2020 No comments
how to write a business plan

What can a disgruntled student with a notebook achieve? More than you would think.

In the 1960s, a 15-year-old student in the U.K. become frustrated with the “archaic school practices of the day.” Although he was told to write about his frustrations in the school paper, his ideas were deemed too radical to publish. So he decided to start his own publication to unite the voices of students from multiple schools.

Man writes his business ideas

With a notebook in hand, he started to research what it would take and wrote out his plan. Some 50 years later he would go on to say, “Thus, with contributors, advertisers, distributors and costs all in place — at least on paper — I had written my first business plan.”

This simple plan led him to found a successful magazine that featured interviews from stars of the day like Mick Jagger. This early success encouraged young Richard Branson to found many other businesses and eventually build a multibillion dollar fortune.

The lesson is that a business plan, even an extremely simple one, can make a bigger difference than you think.

Today, Richard Branson prefers to use back-of-the envelope plans to organize his ideas for any new business. Even so, he strongly advocates that entrepreneurs write down their ideas and provides a business plan template through Virgin Start Up.

Have you put your business ideas on paper? Is your business plan in place? Remember that even a plan in a notebook can achieve far more than you might imagine.

Here is an overview of how to write a business plan in 8 steps:

  1. Write an executive summary
  2. Describe your company and how it will operate
  3. Draft a mission statement
  4. Identify your market and audience
  5. Analyze your competitors and identify opportunities
  6. Differentiate your business from the competition
  7. Create a roadmap and define KPIs
  8. Create a financial plan

In this guide, we’ll walk you through everything related to writing a business plan, from the executive summary to the financial plan. Let’s start with why.

Three reasons writing a business plan is critical

“It takes as much energy to wish as it does to plan.”

Eleanor Roosevelt

Starting a new business is exciting. But that initial spark and passion can put you at risk of failure. Early on, it’s easy to get swept up in the excitement of the idea for your business. As a result, you may not think about how to communicate that idea to others in a way that makes them want to support you. It can also be easy to fall victim to unseen risks and poor planning.

Understanding how to write a business plan and using this information to write your first one will help you in three key areas, all of which represent compelling reasons to write a business plan.

Give yourself clarity

The first and most important reason to write a business plan is to give yourself clarity. As you build a business, you’ll face many difficult decisions. For example, you may wonder who you’ll need to hire and what kind of infrastructure you’ll need to support your growth goals.

You’ll also need to figure out the things that have to happen in order for your business to achieve its mission. Knowing how to react in the face of these decisions can feel impossible, especially when the pressure’s on. Creating a business plan will help you prepare for these milestones and stay focused and committed when they come up.

Support your marketing efforts

A business plan will greatly benefit your marketing efforts. Whether you’re marketing to potential customers or trying to get partners on board, it’s critical that you get them excited about your mission, your product or service, and the steps you’ll take to ensure everyone involved gets something of value.

If your audience can’t understand what your business is trying to achieve, how you’ll achieve it, and why that should matter to them, then they’re unlikely to buy from you or partner with you. This will quash any marketing efforts out of the gate.

Get support and backing from stakeholders

A business plan is critical to getting support and backing from stakeholders. This includes investors, banks, and vendors. It also includes any type of organization that will back your business growth. For example, you may need FDA approval for a new food product or type of packaging.

Anyone who plans to back your business will need to be taught about your industry, the risks you face, your competitors, your team, and your overall plan for success. Writing a business plan will allow you to fully research these areas and make convincing arguments as to why others should support you.

Should you skip a business plan? The dangers of the “Me Test”

“Entrepreneurs who write formal plans are 16% more likely to achieve viability than the otherwise identical nonplanning entrepreneurs.”

Harvard Business Review

Many people will recommend that you simply focus on creating a good concept for your business. They may tell you to just run with it, without digging deeper. The idea is that once revenue starts coming in, you’ll know it’s a good idea and you can start the real planning.

This approach has worked for some, but it’s risky and will leave you unprepared for difficult challenges and conversations related to your business.

Writing a business plan, even when you don’t technically need to, will help you clarify your ideas and identify the most likely roadblocks to your business’s success. A business plan will also help you get third-party validation for your ideas and plans.

In entrepreneurship, there’s a fallacy called the “Me Test.” This fallacy occurs after you come up with an idea for a business that you like. You bounce your idea off your best friend from college and your mom, and they both say, “Wow, that’s great!” Then you immediately start building your business at warp factor 9 without ever asking anyone else if it’s a good idea.

A business plan will help you shift from doing a “Me Test” to a “We Test.” As you write your business plan, you’ll be able to validate your ideas through unbiased research on your competitors and potential customers. This helps you confirm that you’re not the only one who likes the idea since you’ll be able to gauge interest and support for it.

As an entrepreneur, having an optimistic attitude is critical. Many of the great entrepreneurs of our time wouldn’t be where they are today if it weren’t for optimism. But you can be sure they tempered that optimism with a realistic plan that took into account everything that could affect their business growth.

If you want your company to achieve a margin of the success that great companies like Apple, Microsoft, and Amazon have achieved, then you need a business plan. You can’t rely on chance or any other random factor to achieve success. You need to plan for it.

How to write an executive summary

The executive summary is one of the most important sections of a business plan. In some cases, it will be the only thing that people read. In others, what people see in the executive summary will keep them reading. No matter who your audience is, they’ll review the executive summary. This makes it the most critical element to get right.

Executive summary

What is a business plan executive summary?

It’s generally the first page of your business plan, and it summarizes the points from each section. This allows readers to quickly familiarize themselves with your entire business plan without having to read every page. Most important, it states what your business is and why it will be successful.

Beyond summarizing these points, an executive summary will also act as an introduction to your business plan. This means it can’t just be informative; it needs to grab attention.

A good introduction is relevant and presents a problem to the audience that your business will solve. You could present this problem through statistics, a story, or some other type of anecdote. Use any kind of tool that helps make the problem real and easy for the reader to understand.

Next, ensure that your introduction provides relevant information that gives valid reasons why your business can solve this problem. The challenge is trying to do this in just a few sentences.

Once you lay this groundwork, you can begin to summarize your business plan. Make sure that the summary ties each successive point back to the problem you brought up in the introduction. Then connect the point to the reader by explaining the “so what” behind each part of your plan.

The executive summary format

The executive summary format you choose will depend on the structure of your business plan. As a result, you’ll usually write this summary last. Use the table of contents as your executive summary outline, and then write a paragraph or two to elaborate on each point from your outline/TOC.

This section can be difficult to write, so it’s good to look at some examples for inspiration. The Balance Small Business provides a concise, compelling executive summary example.

Now that you have a better understanding of the purpose of the executive summary, it’s time to focus on the starting point for your business plan: the company overview.

How to write a company overview

A company overview is a high-level snapshot of your company that lists your company composition, legal structure, and mission statement. As the name implies, the company overview helps your readers quickly understand your organization.

Why should you care about creating a company overview? Because no one wants to invest in a sinking ship. If investors sense disorganization or inexperience from the beginning, they may not be willing to stick around. By determining the details of your business beforehand, you’ll give investors the confidence they need.

But what if you don’t need investors for your company? A company overview will still be beneficial. For example, determining how your business will solve customer problems will help you make important decisions. It gives marketing the needed direction to create effective materials and keeps your team focused on creating products that continue to solve those problems.

The process and structure behind a great company overview

While company overviews differ in both length and composition, they all have a few things in common. The majority of company overviews will at least contain the following:

  • Company summary
  • Mission statement
  • Company history
  • Management team
  • Legal structure and ownership
  • Location
  • Products and services
  • Target market
  • Competitive advantage
  • Objectives and goals

We’ll go through each of these one by one, but before getting started, you should consider why you’re creating the company overview. Are you trying to secure investments, or are you simply creating a guiding document for your team?

Knowing the purpose of your company overview will help you tailor it to better serve the reader. Now, let’s jump into what each of these components means.

Terms defined

Company summary. Like writing a summary of a book, this is where you sum up everything about your business. As briefly as possible, tell the reader important details, such as your company name, what your company does, and the problems it will solve.

Mission statement. This tells the reader why your company exists. It’s your chance to explain your vision, purpose, and values. We’ll dig a bit deeper into the mission statement later.

Company history. If you’ve already started your company, tell the reader the history of your company. When did you start it? How did you get started? What milestones have you achieved up to this point?

Management team. Tell the reader who runs the company, their qualifications, and any other relevant details about them.

Legal structure and ownership. How is your company set up? Is it a sole proprietorship, a corporation, an LLC, etc.? Who owns the company?

Location. Talk about where your company operates from and if there are plans to expand to other locations. If you’re planning on expanding, elaborate on why.

Products and services. Give an overview of your products and services. This shouldn’t get too technical, but it should demonstrate the value you’re adding to the marketplace.

Target market. Talk about what your ideal buyer looks like, their demographics, and what problem you’re solving for them.

Competitive advantage. Tell readers why your company will succeed. Are you filling a gap in the market? Do you have access to a technology your competitors don’t?

Objectives and goals. Talk about your short-term and long-term goals. Make sure these goals are measurable and realistic. They should demonstrate that you’re successfully acting on your business plan.

Some of the sections we’ve defined are pretty straightforward, while others require a little more effort. Next, we’ll look at one of these more complex sections and how you can set it up.

Woman shows organizational structure

Setting up your organizational structure

To be clear, there are multiple structures that you need to set up within any business. This might include how the organization is structured legally, how management and departments are built, and the physical infrastructure of your company.

For example, an e-commerce business with one central location would be structured very differently from a chain restaurant. Each is unique and would benefit from a completely different type of legal, managerial, and physical infrastructure. This means that as you structure your business, there won’t be a one-size-fits-all strategy. Instead, you need to match the structure with the business.

Let’s talk about the three different structures that you need to define.

Legal structure. Your business’s legal structure can affect your day-to-day operations, how you’re taxed, and your legal risk. It will also make it easier or more difficult to bring in investors. The most important thing to think about is how you want your company to grow and change over the next 10 years; choose the structure you ultimately need to achieve that. For a full overview of legal structures and their risks, review to this guide from the SBA.

Managerial structure. It’s important to choose the right managerial structure because this will affect your leadership team, how support teams are set up, and overall company communication. Again, the right way to set up your managerial structure depends on the type of organization you have. For example, a restaurant chain may benefit from a functional structure with traditional layers of hierarchy, whereas a software company might benefit from a flatter matrix structure.

The main types of structures include

  1. Functional. This is a more traditional structure that’s grouped by activities. For example, your VP of marketing would be responsible for your marketing managers, sales managers, and the staff they oversee. The VP or C-suite leaders all work under the direction and leadership of the CEO.
  2. Divisional. In larger organizations, divisions are created to further subdivide the functional structure. This makes it easier to oversee and manage departments but may result in more duplicate effort.
  3. Matrix. This structure is a combination of functional and divisional structures. It enhances accountability and cooperation between department leaders while increasing flexibility. However, this structure is susceptible to confusion and loss of focus since leaders may work in multiple departments that can break the chain of command.
  4. Team. Using this structure, teams are built around objectives instead of activities, without regard for position or seniority. This leads to faster decision making and response times, and levels of managers are eliminated, which reduces costs. However, these teams can suffer from time management issues and increased time spent in meetings.
  5. Network. This business structure is very common for small businesses since it relies on a small team backed by a broader group of contractors who provide specialized work. With fewer constraints on your staff, this approach reduces overhead and increases flexibility. However, it suffers from a lack of control because it’s dependent on external organizations.

Physical structure. The type of business you run greatly impacts what an ideal location looks like. For example, for a retail outlet, an area with heavy traffic might be ideal, while for a service company, cost savings might be a bigger consideration. Why should you care? Location can provide your business with critical advantages like visibility, access to a larger network of peers, and cost control.

From coworking spaces to remote workers, the location landscape has changed a lot in the last 20 years. You should look into all available options to find what’s best for your organization. Once your organizational structure is in place, it’s time to consider crafting your mission and vision statement. This will give your organization direction and help your team deliver on your promise to customers.

Your mission, should you choose to accept it

The mission statement is more important than most companies realize and often misunderstood. When written properly, the mission statement helps the entire team understand the main goal of your company. This gives people something to rally around and helps guide them when presented with decisions that seem to conflict with your company’s goals.

Why do we say that the mission statement is often misunderstood? Many organizations use the mission statement in their marketing materials. While it’s not necessarily bad to do this, it can result in a mission statement that’s full of marketing jargon.

To avoid this, work from the inside out. Start by considering the mission statement as an internal document and then use it in marketing when appropriate. How can you get started writing yours?

Writing the mission statement in 5 steps

  1. Get the right people in the room. The best way to build support for your company’s mission is getting the right people in the room from the start. Ask yourself who will influence the company, who deserves to be in the room, and who will have a pulse on your company’s purpose.
  2. Start with your purpose. The heart of your mission statement should state why you’re in business. Exercises like Simon Sinek’s Golden Circle and the 5 Whys are great tools for getting to the core of why you do what you do.
  3. Brevity is your friend. Some feel that they need to hash out every detail in their mission statement. But this is counterproductive. Keeping your mission statement brief means it’s more likely to be read, more likely to be understood, and more likely to be applied.
  4. Avoid jargon and be specific. The content is just as important as the length of your mission statement. Avoid writing the way you think you should sound, and stick to what needs to be said. When defining your purpose, identify what’s most important to your business and its future. Communicate that as briefly, as specifically, and as plainly as you can. Clarity is inspiring.
  5. Communicate your mission regularly. Finally, your mission may be amazing, but if it’s not top of mind, it will be forgotten. Find ways to display your mission and integrate it into team meetings. Encourage and empower employees to not just repeat it but to actually put it into practice with every interaction.

These five steps can help you craft a mission statement that’s both compelling and useful for your organization. Southwest Airlines is an example of a company that has a great mission statement and works to apply it in all that they do:

“The mission of Southwest Airlines is dedication to the highest quality of customer service delivered with a sense of warmth, friendliness, individual pride, and company spirit.”

First, it’s clear that Southwest’s mission is to provide the best customer service around. But they take it a step further by specifying which qualities are crucial to achieving their mission.

Their mission statement is also realistic and achievable. Any employee can strive to display these qualities in their interactions. Southwest doesn’t water down their mission with flashy language that doesn’t mean anything.

After putting the finishing touches on your mission statement, it’s time to work on your vision. This takes the form of your business objectives and goals. It’s not enough to have a nebulous vision. You need long-term goals and short-term objectives if you want to make that vision a reality.

Make your vision a reality with business goals and objectives

If you imagine your business plan as a roadmap, your vision is the destination. This makes goals and objectives mile markers that plot your route for getting there. Choosing the right goals isn’t an aspirational task — it’s strategic. Great goals will be SMART: specific, measurable, achievable, relevant, and timely.

Great goals aren’t simply a desired outcome; they explain why it’s important to achieve them and the path for getting there. How can you create these types of goals for your business? Let’s break it down into a few steps.

  1. Start with long-term goals and objectives. Before you can start plotting the path, you need a destination. Start by setting goals that are aligned with where you want your business to be in five, 10, and 15 years.
  2. Set short-term goals and objectives that move you along the right path. With the destination in mind, where do you need to be at the end of the year to stay on track? Where do you need to be at the end of the quarter to make that goal a reality?
  3. Put your goals and objectives through the SMART test. Once you have your preliminary roadmap, determine if it meets all the requirements of being SMART. Be ruthless here. This is your chance to identify unrealistic goals and replace them with more manageable ones. This doesn’t mean you can’t be a tenacious business owner and reach for the stars. But it’s better to set realistic goals and surpass them, than to always fall short.

Setting good goals takes time. Those who put in the time give their team needed clarity, a roadmap, and a competitive advantage. A lot of your goals will be based on your vision for the company, but the best goals are built on data.

Next, we’ll look at how analyzing the market can improve your business plan and help you make better business decisions.

How to do a market analysis

The market analysis section of your business plan is critical to proving the viability of your business. Your business’s viability, in turn, is critical when you’re trying to gain support from investors, employees, or partners. If you can’t get this support, then your business may be doomed before it even starts — so you need to get it right.

Having market research is most important when you’re seeking early investors. These investors most likely won’t be experts in your market or product, even if they have a lot of business knowledge. The market analysis section of your business plan is your opportunity to educate them in a way that will gain their support. The data in this section needs to be comprehensive and truthful, but there’s also an opportunity to inject facts that show why your business is such a good solution.

Doing this research will benefit you as the founder of the business. It will help you understand the current risks in the market, opportunities for growth, and the challenges that your business will face as you try to break into the market. Doing this homework will help you to think more strategically and even help you come up with creative ideas that will help you overcome early obstacles.

What sections should you include in your market analysis?

There’s a lot of information that you could include, but not all of it will be applicable to every type of business. Let’s start by looking at the information that’s considered absolutely essential:

  • Industry description and outlook: a general overview of the industry’s history, current state, and what the future might hold for it
  • Target market and total addressable market (TAM): a description of the group of people or businesses you plan to sell to and the number of people or businesses who fit that description
  • Competition: a list of competitors that you compare your business against in order to show strengths or weaknesses
  • Barriers to entry: a list of the things that make starting the business difficult — for example, high levels of competition or the cost of tooling a manufacturing line
  • Pricing: an explanation of how your product or service will be priced and the potential profit

In addition to these critical sections, there are others you can include. Whether or not you include them depends on your business, your industry, and the stage your business is at (for example, a seed-stage startup can get by with a much leaner market analysis than a late-stage startup raising series B funding). Some of these optional sections include

  • Market test: a review of any in-market testing that’s been completed — for example, user testing or a beta test
  • Lead time: an explanation of how long it takes things to happen, such as how long it takes a custom order to be manufactured and shipped to the customer
  • Regulations: a list of federal, state, or third-party regulations that the business must comply with
  • Demographics and segmentation: a detailed review of the demographics of the target market, as well as segmented views of the target market

The sections that you include in your market analysis will depend on its purpose. Is your goal to lay out your idea clearly to gain support? Are you creating this plan for your own benefit? Will this plan be going to the desks of high-profile investors or partners? If the plan is only for your own benefit, then running a large-scale market test will likely be too expensive and time-consuming.

In general, the more thorough you can be in your market analysis, the better. This information can be extremely useful for sales, marketing, and product design later down the road.

Market analysis templates and examples

A template is a great place to start your market analysis. Let’s look at two options you can use to kick-start your analysis.

The first one is the lean option that comes from GrowthLab. This market analysis template will help you with the sales and marketing side of your business, and it’s easy to do. In fact, it contains only five questions:

  1. Who am I going to reach?
  2. Where am I going to find them?
  3. What problems are they facing?
  4. What solutions can I offer them?
  5. What product can I create?

Answering these questions will be extremely valuable to you early on in your business. More often than not, the companies that succeed are customer centric. These questions help you to be customer centric out of the gate.

There’s one caveat, though. These questions will only give you the customer’s viewpoint of the market. There are things these questions don’t take into consideration, like supply and demand, competitive landscape, barriers to entry, etc. Fairly soon after this “foundational” market analysis, you may need to run a second, more complete analysis.

What would this analysis look like?

SCORE provides a very thorough business plan template that includes several pages of market analysis tools (you can find a similar fillable strategic plan template here). This template includes instructions and worksheets for

  • SWOT (strengths, weaknesses, opportunities, threats) analysis
  • Competitive analysis
  • Marketing expenses strategy chart
  • Pricing strategy
  • Distribution channel assessment

These worksheets are focused, detailed, and extremely granular. They’ll force you to answer difficult questions about your business — the ones that will make you question your plans and feel a little uncomfortable. It’s easier to answer these questions during planning than it is when an investor springs one of them on you.

Tools and resources to support your market analysis

As you run your market analysis, you’ll be asking a lot of questions you won’t know the answers to offhand. You’ll need reliable data to base your answers on. More important, this data needs to be seen as reliable by whoever you’re presenting your business plan to.

The Small Business Administration offers a categorized list of resources to answer some of the most important questions in your market analysis. It’s mainly made up of government organizations that maintain specialized databases of information.

In addition to these resources, find resources specific to the niche you’re pursuing. For example, if you’re offering a software solution to enterprise-level companies, you may want to include research from a top consulting firm like Gartner. These specialized firms will research areas of business that government organizations don’t cover.

Once you’ve looked at the data, take your research a step further by learning about your target market and customers. To perform this customer research, follow these steps:

  1. Identify who you’re going to research (this definition could be CEOs at Fortune 500s or stay-at-home dads who love Star Wars).
  2. Determine what you need to know about this type of customer so you can build your company around them.
  3. Create a set of questions that will help you get the information you need (if possible, turn them into an online form using this market research survey template).
  4. Share the form with your customers, or potential customers, and ask them to fill it out.
  5. Take it a step further and interview a few people to gain qualitative insights.
  6. Review your data and turn it into buyer personas or a target audience definition.

Following a customer research process like the one described above is essential to writing a compelling business plan. And this type of research should be a foundational part of your business, whether you’re writing a plan or not.

Some of the most effective business plans take customer research a step further. In addition to learning about customers, some companies will test their product or service on them. For example, a business that centers on an app may have customers test a prototype of the app. Or a product-based business may run tests on their product samples with real consumers.

Product testing will add a touch of professionalism to your business plan and increase the confidence of anyone considering investing in your business. Test results are also excellent sales and marketing tools since they allow you to let the results speak for themselves.

When you take the time to go the extra mile in your market analysis, it will show anyone who reads your plan just how serious you are about your business. And that’s a good thing.

How to do a competitive analysis

Military strategist Sun Tzu said, “If you know the enemy and know yourself, you need not fear the result of a hundred battles.” The same holds true in business. When you understand your competitors’ businesses, it’s easier to find your unique value proposition and communicate that value proposition in sales and marketing.

Within your business plan, the competitive analysis section plays multiple roles:

  • It informs readers of the competitive landscape.
  • It shows gaps and opportunities in the market.
  • It highlights differentiators and your own unique value proposition.
  • It guides every part of your business strategy.

Most important, successful companies continually analyze their competition. Even Apple and Microsoft do it (as evidenced by their dueling ad campaigns).

Let’s look at how to run an effective competitive analysis when preparing your business plan.

Identifying your competitors and building a summary

The first step is creating a list of competitors. One of two things can happen at this point: Either you’ll immediately come up with a list of all of your competitors, or you’ll say, “We’re different; we don’t really have competitors.” No matter what category you fall into, it’s still important to take your time on this step.

Even if a list of competitors springs to mind, you’ll always miss something, and you don’t want it to surprise you further down the road. If you say you don’t have competitors, then you’re wrong. It’s likely that your competitors are indirect or that your competition is the status quo. So don’t skimp on the competitor list.

Your competitor list needs to account for three basic types of competitors:

  1. Direct competitors. These are other businesses or organizations that provide the same product or service you provide. This list will include the names of businesses your customers used to buy from before switching to your business, as well as the names of the businesses that are taking your customers.
  2. Indirect competitors. These are companies or tools that can indirectly solve the problem your business solves for its customers. For example, an indirect competitor for coworking spaces could be coffee shops (they don’t sell the same thing, but a remote worker could work from either one).
  3. Aspirational competitors. These are businesses or organizations that are too big or well-established to be considered direct competitors. But aspiring to compete with them can drive your business to provide a higher level of service, which translates into growth.

Try to list as many competitors as you can in each category. Really push yourself to think of as many angles as possible. When you’re done brainstorming, you can trim the list to the most important competitors.

Competitive analysis

Creating a competitive landscape analysis

With a final list of competitors in hand, you can start to reconstruct the landscape for your business plan’s readers. This can take a few forms, depending on the type of business plan you’re creating and its purpose.

Let’s start with a traditional business plan that’s designed to garner support from its readers. What are the essential elements you need to include? The SCORE business plan template that we referenced earlier uses a table to present the competitive landscape. You can use this table to compare yourself against your top competitors across 15 points. Some of the most important points are

  • Products
  • Price
  • Quality
  • Service
  • Reliability
  • Company reputation
  • Sales method
  • Advertising

In addition to points like these, you should also add points that are relevant to your business and industry. For example, if you sell a software product, you may want to compare your UX against your competitors. Or if you’re a manufacturer, you may want to compare the processes and technologies you use in manufacturing. The key is including the things that will matter most to your stakeholders.

Differentiating your business from the competition

Once you’ve identified your competitors and laid out the competitive analysis, it’s time to use that information to differentiate your business. GV (formerly Google Ventures) has developed one of the single most effective methods for doing this. It’s called a brand sprint.

Why should you use brand sprint exercises as part of your competitive analysis? There are two main reasons. First, a brand sprint allows you to visually display the competitive landscape. Second, it will help you identify ways to further differentiate your business.

There are six components to a brand sprint:

  1. 20-year roadmap
  2. What, how, why
  3. Top three values
  4. Top three audiences
  5. Personality sliders
  6. Competitive landscape

All of these components are useful in differentiating your business. But, for now, we’ll focus on the two exercises that matter most for the competitive product analysis section of your business plan.

The first exercise is “what, how, why” and is based on Simon Sinek’s Golden Circle. You just answer three questions: What do you do? How do you do it? Why do you do it? The answer to the first question won’t include any earth-shattering information; what you do should be clear throughout your entire business plan. But your answers to the next two questions give you an excellent opportunity to differentiate your business and create emotional appeal.

For example, your answer to the “how” question gives you a chance to show how your process, product, methodology, or approach is different. You may just be another coffee shop, but the fact that you roast your beans in-house and use a unique brewing method may be the differentiator that catches an investor’s eye, especially if no one else in your market is using that approach.

Your answer to the “why” question gives you a chance to appeal to emotions. It tells the story of what’s driving you to get into this business and succeed. Investors have become increasingly interested in what drives company founders to go into business since this can be an indicator of their commitment and follow-through. Your why doesn’t have to be complicated, it just has to be truthful. For example, a coffee shop’s “why” could be to give patrons a unique and refreshing coffee drinking experience.

The second exercise that can add impact to your business plan is a competitive landscape analysis. This exercise consists of creating a 2×2 matrix with a horizontal line going from classic to modern and a vertical line going from expressive to reserved. It’s best to do this exercise on a whiteboard with lots of sticky notes.

With your tools assembled, it’s now time to organize yourself and your competitors on the 2×2 matrix. Here’s an example of what that looks like from GV:

2x2 matrix showing competitor analysis

The purpose of placing yourself in relation to your competitors on this board is to show where your company lives in the competitive landscape. Ideally, the group that’s reviewing your business plan will have some knowledge of your competitors, which will allow them to act as anchor points. Seeing your business in this type of matrix will allow them to instantly understand where your product belongs in the landscape.

With an effective competitive analysis in place, it’s now time to get down to brass tacks. Let’s look at what it takes to create your business’s financial plan.

Creating your business’s financial plan

“Long term thinking and planning enhances short term decision making. Make sure you have a plan of your life in your hand, and that includes the financial plan and your mission.”

—Manoj Arora, From the Rat Race to Financial Freedom

Your business’s financial plan has one of the most important jobs — proving that your business concept is viable. Your motivation for starting a business may be freedom, getting rich, or not answering to the man. But all businesses have something in common: They need to make money.

Business's financial plan

If you want to secure outside investments, you need to include a financial plan as part of your business plan. This document gives investors incentive to invest in your business by giving them a clear picture of financial forecasts and risk. So what’s included in the financial plan?

  • Sales forecast. This a projection of your sales revenue over the next three to five years. It’s typically based on sales data, market analysis, and sales estimates.
  • Expense budget. The expense budget will lay out all expenses required to start your business and operate it. If your business is just getting started, you’ll have to create estimates for most of the expenses. Also, if you’re already in business, you might replace startup costs with expansion costs.
  • Cash flow statement. The cash flow statement shows how cash flows in and out of your business during a specific time period. It breaks down the analysis into three main categories: operating, investing, and financing.
  • Profit and loss statement. A profit and loss statement summarizes your total income and expenses for a period of time — typically a quarter or a year. This statement helps business owners visualize adjustments they can make to both sales and expenses to become more profitable, and shows how sales and expenses affect each other.
  • Balance sheets. A balance sheet shows a snapshot of the company’s current assets, liabilities, and shareholders’ equity. Since the balance sheet only shows your current situation, it’s best used in comparison with older balance sheets to get a fuller picture.
  • Break-even analysis. The break-even analysis tells you at which point you’ll break even. This report analyzes price points and market demand to determine the amount of sales necessary to cover the cost of running your business.

The different reports in your financial plan allow you to get a complete picture of your business’s viability both in the short and long term. They are crucial to planning your business’s future and securing investments. To continue assembling your plan, we’ll go over the most basic elements of the financial plan: the income statement, cash flow projection, and balance sheet.

Income statement

If you compared your business to a car, your income statement would measure engine efficiency. This is because sales and income fuel your business. The income statement helps you get a pulse on how profitable your business is and which departments are stars and duds.

Your income statement’s goal is to help you calculate your net income. The equation is net income = (revenue + gains) – (expenses + losses). As you can see, there are five net components to the income statement.

  1. Revenue. The first step to putting together your income statement is calculating how much your company makes in revenue, both in ways directly and indirectly related to your core services.
  2. Gains. Next, you need to calculate the income you make from other sales. This can include the sale of property, such as vehicles, buildings, and other equipment.
  3. Expenses. Now you’ll want to calculate the money leaving your business. This includes all costs the business takes on in order to make revenue. Collecting all the expense data can be a challenge, but one thing that can make this easier is leveraging digital forms for your expense reports.
  4. Losses. Add up the losses. These are called losses because, unlike expenses, they don’t help the company generate revenue. An example is having to refund an unhappy customer for services that have already been performed.
  5. Net income. Once you have your numbers from steps one through four, you can use the equation we mentioned earlier: (revenue + gains) – (expenses + losses) = net income.

The business plan income statement is especially useful for determining the profitability of your business. But you can also use it to see how your business is performing compared to similar businesses in your industry. The income statement can empower your leadership team to make decisions and change course when things are off track.

Balance sheet

Are you looking for quick insights into your business’s financial health? If so, the balance sheet will be your new best friend. The balance sheet is a snapshot of your financial situation for a specific period of time. When compared with balance sheets from the past, you can piece together a broader picture of how your company is performing and even identify trends and seasonal shifts.

How can you create a balance sheet for your financial plan? The basic equation for your balance sheet is assets = liabilities + owner’s equity. The reverse (owner’s equity = assets – liabilities) gives you the same output. You can create your balance sheet by gathering all of the financial data you need and organizing it properly.

Assets are a breakdown of what your business currently owns, including cash on hand and what your customers currently owe you. Assets include

  • Cash
  • Accounts receivable
  • Inventory
  • Prepaid expenses
  • Securities
  • Notes receivable
  • Fixed assets
  • Other assets

Once you have the totals for each of the categories, add them up to get the amount for your total assets.

Liabilities are the debts your company owes, both current and long term. For simplicity, long-term liabilities are debts that have a payback period longer than a year. Current liabilities are any debts that need to be paid back within the year, like payroll. Add up all current and long-term liabilities for your total liability number.

Owner’s equity is the amount that would be left for the owners if all assets were sold and all liabilities were paid. To calculate the owner’s equity, you need to add retained earnings (ending balance from previous balance + net income – payout to investors) and contributed capital.

Once you have your three totals for assets, liabilities, and owner’s equity, you can plug them into the balance sheet equations to make sure the totals balance. If they do, congratulations! You’ve successfully created your balance sheet.

Cash flow statement

This is a financial statement that shows how changes in the balance sheet affect revenue. At a basic level, it shows how cash flows in and out of the business. How does it help a business?

The cash flow statement is important to accounting, lenders, investors, potential employees, and company directors because it tells them whether the business can cover important expenses like payroll, operating expenses, and debts. With the cash flow statement, those thinking of investing in the business will be able to quickly spot a risky investment.

You can create a cash flow statement in two ways. The first, and more complex, is called the direct method. The second, simpler version is called the indirect method and is the preferred method for most business owners for that reason. To put together your cash flow statement, you’ll need to gather financial data for operating activities, investing activities, and financing activities. The Balance Small Business has a great article on using the indirect method.

All of the financial statements we’ve covered can give you useful insights for business planning and attracting investments. But by covering the big three — the income statement, balance sheet, and cash flow statement — you’ll have what you need for a compelling business plan.

Making the most of your business plan

A business plan can do a lot of things. It can help you gain the support of stakeholders, clarify your ideas, and overcome roadblocks. Most important, business plans are the foundation of some of the most successful and revolutionary businesses today.

There is one danger with business plans though.

It’s easy to create your business plan and then file it away to gather dust. A few short months later, you could have deviated so far from the plan that your business looks nothing like you expected it to. Or worse yet, you may have made little to no progress at all.

How can you ensure that you make the most of your business plan?

  • Share it with anyone who will be important to your business — whether an investor, your bank, a mentor, a partner, or your first employees. The more you share and explain the business plan, the more valuable it will be.
  • Make frequent updates to your business plan. It needs to be a living and breathing document that keeps pace with the changes in your business.
  • Hold regular meetings to reflect on your business plan and review the progress you’ve made. Systems like EOS allow you to effectively make the goals from your business plan a part of how you do business on a weekly basis.

Your business plan isn’t an academic exercise. It’s an opportunity to build the right launchpad for your business and the dreams you have for it.

Categories: Others Tags:

Methods Of Improving And Optimizing Performance In React Apps

July 16th, 2020 No comments
Performance profiler summary

Methods Of Improving And Optimizing Performance In React Apps

Methods Of Improving And Optimizing Performance In React Apps

Shedrack Akintayo

2020-07-16T11:00:00+00:00
2020-07-16T16:33:55+00:00

React enables web applications to update their user interfaces (UIs) quickly, but that does not mean your medium or large React application will perform efficiently. Its performance will depend on how you use React when building it, and on your understanding of how React operates and the process through which components live through the various phases of their lifecycle. React offers a lot of performance improvements to a web app, and you can achieve these improvements through various techniques, features, and tools.

In this tutorial, we will discuss various methods of optimizing performance in React applications, and also the features of React that we can use to improve performance.

Where To Start Optimizing Performance In A React Application?

We can’t begin to optimize an app without knowing exactly when and where to optimize. You might be asking, “Where do we start?”

During the initial rendering process, React builds a DOM tree of components. So, when data changes in the DOM tree, we want React to re-render only those components that were affected by the change, skipping the other components in the tree that were not affected.

However, React could end up re-rendering all components in the DOM tree, even though not all are affected. This will result in longer loading time, wasted time, and even wasted CPU resources. We need to prevent this from happening. So, this is where we will focus our optimization effort.

In this situation, we could configure every component to only render or diff when necessary, to avoid wasting resources and time.

Measuring Performance

Never start the optimization process of your React application based on what you feel. Instead, use the measurement tools available to analyze the performance of your React app and get a detailed report of what might be slowing it down.

Analyzing React Components With Chrome’s Performance Tab

According to React’s documentation,, while you’re still in development mode, you can use the “Performance” tab in the Chrome browser to visualize how React components mount, update, and unmount.
For example, the image below shows Chrome’s “Performance” tab profiling and analyzing my blog in development mode.

Performance profiler summary

Performance profiler summary (Large preview)

To do this, follow these steps:

  1. Disable all extensions temporarily, especially React Developer Tools, because they can mess with the result of the analysis. You can easily disable extensions by running your browser in incognito mode.
  2. Make sure the application is running in development mode. That is, the application should be running on your localhost.
  3. Open Chrome’s Developer Tools, click on the “Performance” tab, and then click the “Record” button.
  4. Perform the actions you want to profile. Don’t record more than 20 seconds, or else Chrome might hang.
  5. Stop the recording.
  6. React events will be grouped under the “User Timing” label.

The numbers from the profiler are relative. Most times and components will render more quickly in production. Nevertheless, this should help you to figure out when the UI is updated by mistake, as well as how deep and how often the UI updates occur.

React Developer Tools Profiler

According to React’s documentation, in react-dom 16.5+ and react-native 0.57+, enhanced profiling capabilities are available in developer mode using React Developer Tools Profiler. The profiler uses React’s experimental Profiler API to collate timing information about each component that’s rendered, in order to identify performance bottlenecks in a React application.

Just download React Developer Tools for your browser, and then you can use the profiler tool that ships with it. The profiler can only be used either in development mode or in the production-profiling build of React v16.5+. The image below is the profiler summary of my blog in development mode using React Developer Tools Profiler:

React Developer Tools Profiler flamegraph

React Developer Tools Profiler flamegraph (Large preview)

To achieve this, follow these steps:

  1. Download React Developer Tools.
  2. Make sure your React application is either in development mode or in the production-profiling build of React v16.5+.
  3. Open Chrome’s “Developer Tools” tab. A new tab named “Profiler” will be available, provided by React Developer Tools.
  4. Click the “Record” button, and perform the actions you want to profile. Ideally, stop recording after you have performed the actions you want to profile.
  5. A graph (known as a flamegraph) will appear with all of the event handlers and components of your React app.

Note: See the documentation for more information.

Memoization With React.memo()

React v16 was released with an additional API, a higher-order component called React.memo(). According to the documentation, this exists only as a performance optimization.

Its name, “memo” comes from memoization, which is basically a form of optimization used mainly to speed up code by storing the results of expensive function calls and returning the stored result whenever the same expensive function is called again.

Memoization is a technique for executing a function once, usually a pure function, and then saving the result in memory. If we try to execute that function again, with the same arguments as before, it will just return the previously saved result from the first function’s execution, without executing the function again.

Mapping the description above to the React ecosystem, the functions mentioned are React components and the arguments are props.

The default behavior of a component declared using React.memo() is that it renders only if the props in the component have changed. It does a shallow comparison of the props to check this, but an option is available to override this.

React.memo() boosts the performance of a React app by avoiding re-rendering components whose props haven’t changed or when re-rendering is not needed.

The code below is the basic syntax of React.memo():

const MemoizedComponent = React.memeo((props) => {
// Component code goes in here
})

When To Use React.memo()

  • Pure functional component
    You can use React.memo() if your component is functional, is given the same props, and always renders the same output. You can also use React.memo() on non-pure-functional components with React hooks.
  • The component renders often
    You can use React.memo() to wrap a component that renders often.
  • The component re-renders with same props
    Use React.memo() to wrap a component that is usually provided with the same props during re-rendering.
  • Medium to high elements
    Use it for a component that contains a medium to high number of UI elements to check props for equality.

Note: Be careful when memoizing components that make use of props as callbacks. Be sure to use the same callback function instance between renderings. This is because the parent component could provide different instances of the callback function on every render, which will cause the memoization process to break. To fix this, make sure that the memoized component always receives the same callback instance.

Let’s see how we can use memoization in a real-world situation. The functional component below, called “Photo”, uses React.memo() to prevent re-rendering.

export function Photo({ title, views }) {
  return (
    <div>
      <div>Photo title: {title}</div>
      <div>Location: {location}</div>
    </div>
  );
}
// memoize the component
export const MemoizedPhoto = React.memo(Photo);

The code above consists of a functional component that displays a div containing a photo title and the location of the subject in the photo. We are also memoizing the component by creating a new function and calling it MemoizedPhoto. Memoizing the photo component will prevent the component from re-rendering as long as the props, title, and location are the same on subsequent renderings.

// On first render, React calls MemoizedPhoto function.
<MemoizedPhoto
  title="Effiel Tower"
  location="Paris"
/>

// On next render, React does not call MemoizedPhoto function,
// preventing rendering
<MemoizedPhoto
  title="Effiel Tower"
  location="Paris"
/>

Here, React calls the memoized function only once. It won’t render the component in the next call as long as the props remain the same.

Bundling And Minification

In React single-page applications, we can bundle and minify all our JavaScript code into a single file. This is OK, as long as our application is relatively small.

As our React application grows, bundling and minifying all of our JavaScript code into a single file becomes problematic, difficult to understand, and tedious. It will also affect the performance and loading time of our React app because we are sending a large JavaScript file to the browser. So, we need some process to help us split the code base into various files and deliver them to the browser in intervals as needed.

In a situation like this, we can use some form of asset bundler like Webpack, and then leverage its code-splitting functionality to split our application into multiple files.

Code-splitting is suggested in Webpack’s documentation as a means to improve the loading time of an application. It is also suggested in React’s documentation for lazy-loading (serving only the things currently needed by the user), which can dramatically improve performance.

Webpack suggests three general approaches to code-splitting:

  • Entry points
    Manually split code using entry configuration.
  • Duplication prevention
    Use SplitChunksPlugin to de-duplicate and split chunks.
  • Dynamic imports
    Split code via inline function calls within modules.

Benefits Of Code Splitting

  • Splitting code assists with the browser’s cache resources and with code that doesn’t change often.
  • It also helps the browser to download resources in parallel, which reduces the overall loading time of the application.
  • It enables us to split code into chunks that will be loaded on demand or as needed by the application.
  • It keeps the initial downloading of resources on first render relatively small, thereby reducing the loading time of the app.

Bundling and minification process

Bundling and minification process (Large preview)

Immutable Data Structures

React’s documentation talks of the power of not mutating data. Any data that cannot be changed is immutable. Immutability is a concept that React programmers should understand.

An immutable value or object cannot be changed. So, when there is an update, a new value is created in memory, leaving the old one untouched.

We can use immutable data structures and React.PureComponent to automatically check for a complex state change. For example, if the state in your application is immutable, you can actually save all state objects in a single store with a state-management library like Redux, enabling you to easily implement undo and redo functionality.

Don’t forget that we cannot change immutable data once it’s created.

Benefits Of Immutable Data Structures

  • They have no side effects.
  • Immutable data objects are easy to create, test, and use.
  • They help us to write logic that can be used to quickly check for updates in state, without having to check the data over and over again.
  • They help to prevent temporal coupling (a type of coupling in which code depends on the order of execution).

The following libraries help to provide a set of immutable data structures:

  • immutability-helper
    Mutate a copy of data without changing the source.
  • Immutable.js
    Immutable persistent data collections for JavaScript increase efficiency and simplicity.
  • seamless-immutable
    Immutable data structures for JavaScript become backwards-compatible with normal JavaScript arrays and objects.
  • React-copy-write
    This gives immutable state with a mutable API.

Other Methods Of Improving Performance

Use A Production Build Before Deployment

React’s documentation suggests using the minified production build when deploying your app.

React Developer Tools' “production build” warning

React Developer Tools’ “production build” warning (Large preview)

Avoid Anonymous Functions

Because anonymous functions aren’t assigned an identifier (via const/let/var), they aren’t persistent whenever a component inevitably gets rendered again. This causes JavaScript to allocate new memory each time this component is re-rendered, instead of allocating a single piece of memory only once, like when named functions are being used.

import React from 'react';

// Don't do this.
class Dont extends Component {
  render() {
    return (
      <button onClick={() => console.log('Do not do this')}>
        Don't
      </button>
    );
  }
}

// The better way
class Do extends Component {
  handleClick = () => {
    console.log('This is OK');
  }
  render() {
    return (
      <button onClick={this.handleClick}>
        Do
      </button>
    );
  }
}

The code above shows two different ways to make a button perform an action on click. The first code block uses an anonymous function in the onClick() prop, and this would affect performance. The second code block uses a named function in the onClick() function, which is the correct way in this scenario.

Mounting And Unmounting Components Often Is Expensive

Using conditionals or tenaries to make a component disappear (i.e. to unmount it) is not advisable, because the component made to disappear will cause the browser to repaint and reflow. This is an expensive process because the positions and geometries of HTML elements in the document will have to be recalculated. Instead, we can use CSS’ opacity and visibility properties to hide the component. This way, the component will still be in the DOM but invisible, without any performance cost.

Virtualize Long Lists

The documentation suggests that if you are rendering a list with a large amount of data, you should render a small portion of the data in the list at a time within the visible viewport. Then, you can render more data as the list is being scrolled; hence, the data is displayed only when it is in the viewport. This process is called “windowing”. In windowing, a small subset of rows are rendered at any given time. There are popular libraries for doing this, two of which are maintained by Brian Vaughn:

Conclusion

There are several other methods of improving the performance of your React application. This article has discussed the most important and effective methods of performance optimization.

I hope you’ve enjoyed reading through this tutorial. You can learn more via the resources listed below. If you have any questions, leave them in the comments section below. I’ll be happy to answer every one of them.

References And Related Resources

(ks, ra, al, il)

Categories: Others Tags:

In Memory of Flash: 1996-2020

July 16th, 2020 No comments

We are gathered here today….

Today I write in memory of Adobe Flash (née Macromedia), something that a bunch of people are actually too young to remember. I write this with love, longing, and a palpable sense of relief that it’s all over. I have come to praise Flash, to curse it, and finally to bury it.

We’ve been hearing about the death of Flash for a long time. We know it’s coming. December 2020 has been announced as the official timeframe for removal, but let’s be real about this: it’s dead. It’s super-dead. It’s people-are-selling-Flash-game-archives-on-Steam dead.

That last bit actually makes me happy, because Flash games were a huge part of my childhood, and the archives must be preserved. Before I’d ever heard of video cards, frames per second, and “git gud”, I was whiling away many an hour on disney.com, cartoonnetwork.com, MiniClip, Kongregate, and other sites, looking for games.

I think we’ve established in my previous work that even as a missionary kid, I did not have a social life.

The Internet itself gave me a way to reach out and see beyond my house, my city, and my world, and it was wonderful. Flash was a part of that era when the Internet felt new, fresh, and loaded with potential. Flash never sent anyone abuse, or death threats. Flash was for silly animations, and games that my parent’s computer could just barely handle, after half an hour of downloading.

I even built my first animated navigation menus in Flash, because I didn’t know any better. At all. But those menus looked exactly like the ones I’d designed in Photoshop, so that’s what mattered to me, young as I was.

That was a part of Flash’s charm, really.

What Flash Got Right

Flash Brought Online Multimedia into the Mainstream

Funny story, JavaScript was only about a year old when Flash was released. While HTML5 and JS are the de-facto technologies for getting things done now, Flash was, for many, the better option at launch. JS had inconsistent support across browsers, and didn’t come with a handy application that would let you draw and animate whatever you wanted.

It was (in part) Flash that opened up a world of online business possibilities, that made people realize the Internet had potential rivalling that of television. It brought a wave of financial and social investment that wouldn’t be seen again until the advent of mainstream social networks like MySpace.

The Internet was already big business, but Flash design became an industry unto itself.

Flash Was Responsive

Yeah, Flash websites could be reliably responsive (and still fancy!) before purely HTML-based sites pulled it off. Of course, it was called by other names back then, names like “Liquid Design”, or “Flex Design”. But you could reliably build a website in Flash, and you knew it would look good on everything from 800×600 monitors, to the devastatingly huge 1024×768 screens.

You know, before those darned kids with their “wide screens” took over. Even then, Flash still looked good, even if a bunch of people suddenly had to stop making their sites with a square-ish aspect ratio.

Flash Was Browser-Agnostic

On top of being pseudo-responsive, the plugin-based Flash player was almost guaranteed to work the same in every major browser. Back in a time when Netscape and Internet Explorer didn’t have anything that remotely resembled feature parity, the ability to guarantee a consistent website experience was to be treasured. When FireFox and Chrome came out, with IE lagging further behind, that didn’t change.

While the CSS Working Group and others fought long and hard for the web to become something usable, Flash skated by on its sheer convenience. If your site was built in Flash, you didn’t have to care which browsers supported the tag, or whatever other ill-conceived gimmick was new and trendy.

Flash Popularized Streaming Video

Remember when YouTube had a Flash-based video player? Long before YouTube, pretty much every site with video was using Flash to play videos online. It started with some sites I probably shouldn’t mention around the kids, and then everyone was doing it.

Some of my fondest memories are of watching cartoon clips as a teenager. I’d never gotten to watch Gargoyles or Batman: The Animated Series as a young kid, those experience came via the Internet, and yes… Flash. Flash video players brought me Avatar: The Last Airbender, which never ever had a live action adaptation.

Anyway, my point: Flash made online video streaming happen. If you’ve ever loved a Netflix or Prime original show (bring back The Tick!), you can thank Macromedia.

What Flash Got Wrong

Obviously, not everything was rosy and golden. If it was, we’d have never moved on to bigger, better things. Flash had problems that ultimately killed it, giving me the chance, nay, the responsibility of eulogizing one of the Internet’s most important formative technologies.

Firstly, it was buggy and insecure: This is not necessarily a deal-breaker in the tech world, and Microsoft is doing just fine, thank you. Still, as Flash matured and the code-base expanded, the bugs became more pronounced. The fact that it was prone to myriad security issues made it a hard sell to any company that wanted to make money.

Which is, you know, all of them.

Secondly, it was SEO-unfriendly: Here was a more serious problem, sales-wise. While we’re mostly past the era when everyone and their dog was running a shady SEO company, search engines are still the lifeblood of most online businesses. Having a site that Google can’t index is just a no-go. By the time Google had managed to index SWF files, it was already too late.

Thirdly, its performance steadily got worse: With an expanding set of features and code, the Flash plugin just took more and more resources to run. Pair it with Chrome during that browser’s worst RAM-devouring days, and you have a problem.

Then, while desktops were getting more and more powerful just (I assume) to keep up with Flash, Apple went and introduced the iPhone. Flash. Sucked. On. Mobile. Even the vendors that went out of their way to include a Flash implementation on their smartphones almost never did it well.

It was so much of a hassle that when Apple officially dropped Flash support, the entire world said, “Okay, yeah, that’s fair.”

Side note: Flash always sucked on Linux. I’m just saying.

Ashes to Ashes…

Flash was, for its time, a good thing for the Internet as a whole. We’ve outgrown it now, but it would be reckless of us to ignore the good things it brought to the world. Like the creativity of a million amateur animators, and especially that one cartoon called “End of Ze World”.

Goodbye Flash, you sucked. And you were great. Rest in peace. Rest in pieces. Good riddance. I’ll miss you.

Featured image via Fabio Ballasina and Daniel Korpai.

Source

Categories: Designing, Others Tags:

The New Wave of Networking Online: How to Forge Better Connections

July 16th, 2020 No comments

The new wave of digital networking is full of unique opportunities without geographic limitations. It’s a chance to bolster your current professional relationships online while expanding your network far beyond your usual circle of contacts. Mastering the art of networking online in the virtual business world is easier said than done. The rules of networking have changed and professionals need to stay sharp to keep up, regardless of the stage of their career.

To be successful in a strictly virtual networking environment, you must realize that your online personal brand needs to be polished. You need a “digital handshake” that makes a lasting impression, and you need to be skilled at following up without being pushy. You need to be tech-savvy and find creative ways to convey your personality and your soft-skills since you can’t demonstrate them in person anymore.

If you’re applying for jobs, your networking skills are critical, especially in today’s tough labor market. Embrace the fact that application processes are increasingly digitized by making sure your LinkedIn and your professional references are up-to-date. Your professional contacts are strategic partners in your job hunt. Your network will help you immensely, whether you’re trying to find a recruiter or trying to get your foot in the door for an interview.

Working remotely might take a toll on networking in-person, but don’t let it be a reason for your professional relationships to suffer. Try some new online networking platforms that are specific to your industry. Maybe LinkedIn is your go-to social network, but it’s important to mix up which platforms you use—there are plenty of alternatives that are only a Google search away. Whether you’re a web developer, architect, real estate agent, or fashion industry professional, there are websites dedicated to individuals who share your occupation. There are undoubtedly social networks that people within your field are using that you haven’t delved into yet. It’s definitely worth the extra effort to leverage your networking opportunities beyond LinkedIn.

Since networking online is the only way to connect with potential mentors, business partners, and peers, there is a lot of pressure to make the most of it. Above all, it’s vital to approach networking in a proactive and positive way. In the wake of the pandemic, it’s easy to fall into the trap of doing the bare minimum when it comes to keeping up with your network. There might be canceled coffee meet-ups and lunches, but now some amazing networking events are more accessible than before. Don’t be discouraged about no more in-person networking opportunities. Instead, focus on the advantages of networking online. Start by reaching out to personal and professional contacts, from friends and family to school/university alumni. Or, consider signing up for a workshop or bootcamp. This way, you can easily connect with a cohort of people who also prioritize learning a new professional skillset. Plus, the lack of geographic barriers opens up seemingly endless possibilities. There has never been a more important time to stay on top of the latest networking tactics. Check out the graphic below from LiveCareer for a helpful visual representation of some of the best ways to network in 2020.

Categories: Others Tags:

Tradeoffs and Shifting Complexity

July 15th, 2020 No comments

This is a masterclass from Dave:

After you hit the wall of unremovable complexity, any “advances” are a shell game, making tradeoffs that get passed down to the user … you get “advances” by shifting where the complexity lives.

You don’t get free reductions in complexity. In CSS land, you don’t get to pick some styling strategy and have all your troubles go away. This is plenty of nuance here, but largely whatever technologies you pick, you’re just placing the complexity in different buckets.

CodePen Embed Fallback

The best we can hope for is picking buckets that feel the most comfortable and productive for us and our teams.

Direct Link to ArticlePermalink


The post Tradeoffs and Shifting Complexity appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Categories: Designing, Others Tags: