Skip to main content

4 Guidelines for Website User Experience

· 3 min read

A common mistake many website builders make is creating a website like a product brochure. Website builders spare no efforts to provide the most detailed information for visitors. However, this kind of site cannot keep users.

That is because most people don’t want to spend much time learning how things work. Instead, they prefer to try and figure things out on their own simply by clicking around.

From the users’ perspective, a good website allows them to find what they need by playing around. Based on the book Don’t Make Me Think, Revisited, we have summarized four guidelines for creating a website of good usability.

Start with clear navigation

When a user lands on a website for the first time, he can hardly estimate the website’s scale. He will probably choose to opt-out for not knowing how the website is organized. That’s why a navigation bar is so necessary. On each page, the navigation should enable users to locate where they are, how they can get back to the homepage, where they can search for keywords and other extra information about how to use the website. Most of all, navigation must be simple and straightforward; otherwise, users may get confused and just click away.

Make an impressive home page

The home page is likely to be the most frequently visited page of a website, and its importance is self-evident. Users’ first impression of a website is determined by their first impression of the home page. An impressive home page is a must.

Besides, we also need to make sure that we have delivered the most important message to visitors, which is the goal of our website. The book suggests an effective way to communicate with readers on the home page would be placing a tagline describing our mission next to the website logo.

Use visual hierarchies to present information

When we visit a website, we don’t read the text line by line. Instead, we often scan the text to retrieve the information we need. If you want to convey a specific message to visitors, you should learn to make use of visual hierarchies. The rule is simple. Key messages should be highlighted. So users can understand where to focus on and click. Hiding important information will only annoy visitors.

Improve mobile loading speed

A few years ago, being responsive was only a plus, but nowadays, it has become a must.

  1. Due to the rapid development of mobile devices, users expect more from mobile websites and tend to spend much more time on mobile surfing.
  2. Users easily get impatient if the loading speed is slow.
  3. We need to enrich the content and interactivity on mobile pages. (tailoring contents for mobile devices.)

David Kadavy: Why you hate Comic Sans

· One min read
helvetica-vs-comic-sans

Problems with Comic Sans:

  1. Unbalanced visual weight in both the letter-level and paragraph-level.
  2. Bad kerning (spacing between characters).
  3. It gains undeserved popularity nowadays with an aged design for on-screen display in 1994, during which Windows 95 does not have anti-aliasing.
  4. Average people mistakenly think they can design well with the ease of modern technologies, while professional designers fight back intensively. And Comic Sans is one of the fiercest points of conflicts.

Advertising is a business of monetizing attention

· 2 min read

Advertisements are everywhere nowadays in the society of consumption. Although the ways of advertising have changed quite a lot over the past century, the incentives stay the same behind the scene: drawing attention and trying to sell.

Selling Attention

Dating back to the early eighteenth century, most of the ads were just informational instead of being persuasive. This situation did not change until Benjamin Day launched his own newspaper in 1833. In order to obtain a large audience, he set the price at a penny while rivals sold at six cents per copy. The loss was inevitable. However, he began to invite businesses to publish ads in his newspaper with an exposure fee. As a result, the newspaper became phenomenal. Because of Benjamin Day, the world started to realize the value of selling the attention of the audience.

Methodical Advertising

Advertising became more methodical at the beginning of the 20th century, and it was considered as a science. People start to use advertisements specifically for grabing attention. Demand engineering was one of these scientific approaches. It advertised a problem that was never recognized, or sometimes totally fabricated at first, and then claimed the solution of using a certain product. Advertisers of the 1920s also realized that a good reputation could be engineered as well by creating and publicizing a brand.

Forms of Advertising

The main focus of advertising was in public space before the 1920s. Things changed afterward. Radio advertising became very popular, and advertisers were willing to sponsor the radio content, and hear their names being mentioned during the broadcast, which could draw immediate attention from a large audience. However, the role that radio played in advertising was soon replaced by television, which turned out to be a much more effective way of attracting attention till now.

The emergence of the Internet brought another round of ad revolution, during which emails showed up as a new form of advertising. A survey in 1973 found emails comprised 75 percent of all network traffic. Email is very effective because it rewards people. Receiving an email makes people feel good. Search engines such as Google also become significant sources to harvest lots of attention from users. In order to monetize the attention, the Googlers employed an advertising tool called Adwords to display relevant ads to users based on what they are searching for, along with the results.

Advertising is a Business of Monetizing Attention

· 2 min read

In today's consumerist society, advertising is ubiquitous. Although the forms of advertising have changed significantly over the past century, its ultimate goal remains the same: to capture the public's attention and successfully sell products.

Selling Attention

In the early 18th century, most advertisements were merely informative and did not aim for eye-catching effects. This began to change when Benjamin Day launched his own newspaper in 1833. To attract more readers, he priced his newspaper at one cent while his competitors charged six cents. With the newspaper's success, losses were inevitable. To increase profits and reduce losses, Benjamin started inviting advertisers to place ads in his newspaper and charged them for it. Ultimately, his publication achieved great success, making the world gradually aware of the value of selling attention.

Advertising Methodology

By the 20th century, advertising began to take shape as a systematic field and was regarded as a science. An advertisement could be crafted to grab attention. Creating demand is one of many scientific methods. This method involves heavily promoting a problem that the public is either unaware of or that is entirely fabricated, and then claiming that a certain product can solve this problem. Additionally, advertisers in the 1920s realized that word of mouth could also be shaped by establishing and popularizing a brand.

Forms of Advertising

Before the 1920s, advertising was primarily focused on public spaces. However, shortly thereafter, radio advertising became extremely popular. Advertisers were eager to sponsor radio content just to hear their names mentioned during broadcasts—because this would immediately attract a large audience's attention. Later, television quickly replaced radio as the dominant medium for advertising, becoming a more effective way to capture attention, a trend that continues to this day.

The rise of the internet ushered in a new wave of advertising revolution, with email emerging as a new form of advertising. A survey in 1973 showed that emails accounted for 75% of traffic on the internet. Emails are highly effective because they feel like a reward or incentive for customers—receiving an email feels good. Meanwhile, search engines like Google gradually became important resources for capturing user attention. To monetize attention, Google's founders introduced the Adwords advertising tool: it displays relevant ads alongside search results based on user queries.

Amazon's 2016 Letter to Shareholders: The 4 Foundations for Sustaining Growth in Large Companies

· 5 min read

Only Live "Day 1" = Without Growth, There is Death

The office building where Amazon CEO Jeff Bezos works is called "Day 1." Over the years, no matter which other building he moves to, he always brings this same name with him. Therefore, he has a lot of authority on this term.

Someone might ask, what is "Day 2"? Day 2 is stagnation, followed by irrelevance, then suffocating, painful decline, and finally, death.

This is why Bezos believes that every day should be Day 1; without growth, there is death. So how do we prevent "Day 2"? There are four foundations.

A True Obsession with Customers

There are countless business strategies, but why focus on "obsession with customers"? The benefits are numerous, with the biggest being: Customers are always dissatisfied, even when they say they are satisfied. Customers often don’t know what they truly want: they actually want something better. If you want to serve customers well, you must create products and services in their name. For example, the Prime service was not something customers asked Amazon for, but the results proved it was indeed what they wanted.

Maintaining "Day 1" requires patience; you need a lot of experimentation and to accept failure. Planting seeds and growing saplings takes time, but once you see what makes users happy, double down on it.

Resisting Proxies

As companies grow larger, we often tend to rely on proxies or intermediaries. This form of dependency can take many shapes and is very much "Day 2." Here are two examples:

  1. Relying on processes as proxies for results. Good processes serve you, allowing you to better serve customers. You must never serve the process. Why? When you serve the process, you only focus on doing the process correctly, regardless of the outcome. When failures occur, only inexperienced leaders say, "We followed the process," while seasoned leaders say, "We found an opportunity to improve the process." Constantly ask yourself, does the process own us, or do we own the process?

  2. Relying on market research and customer surveys as proxies for customers. When you invent and design products, relying on research can be dangerous; "satisfaction increased from 47% to 55%" is a vague statement that can be misleading.

    1. Good investors and designers deeply understand customers; they invest significant energy in developing intuition and study numerous fascinating anecdotes rather than average data from surveys. They exist to design.
    2. Bezos does not oppose public testing and surveys; they help you identify blind spots, but as a provider of products and services, you must prioritize your vision and unique value over customer feedback. Exceptional customer experiences begin with intuition, curiosity, playfulness, courage, and taste—qualities that user surveys cannot provide.

The trends of the world favor those who align with them and doom those who resist. These trends are not hard to identify, but strangely, large companies often struggle to embrace them. One such trend today is machine learning and artificial intelligence.

Over the past few decades, many tasks could be solved with precise rules and algorithms; next, with machine learning, we can tackle tasks that cannot be described by exact rules.

Much of what happens in machine learning occurs at the foundational level, out of sight, but you can at least call them very simply via APIs.

Fast Decision-Making

"Day 2" companies make high-quality decisions, but their decision-making speed is very slow. To maintain the energy and vitality of "Day 1," you must make "high-quality and high-speed" decisions. This is important not only because "speed" matters in the business world but also because having an atmosphere of "fast decision-making" is more enjoyable.

How can you achieve fast decision-making? Bezos does not have a complete answer, but here are some thoughts:

  1. Decisions are inherently unequal; never treat them all the same. Reversible decisions should use lightweight decision-making processes.

  2. Most decisions can be made when you have 70% of the information. Waiting until you have 90% may be too late. Also, in either case, you must quickly identify and address bad decisions. When you are highly responsive, making mistakes is cheap, while being slow is costly.

  3. Use a management style of "==I disagree, but I commit to executing well==." This saves a lot of time spent on disputes.

    1. When no one knows the outcome, ask, "I know we have a disagreement, but are you willing to take a gamble with me? I disagree, but I commit to executing well?" The answer you get is likely to be, "Sure."
    2. The party that disagrees does not commit out of indifference but from a genuine and sincere disagreement, allowing the other party to reconsider your "disagreement" while still acting quickly due to your commitment.
  4. Identify misalignments early and escalate them immediately. Sometimes, goals between teams conflict, and disputes at the same level cannot be resolved, wasting a lot of time and energy. In such cases, escalating will make decision-making faster and easier.

Nir Eyal: How to be indistractable?

· 2 min read

The ability to stay focused is the key to achieve your goals in a world full of temptations. Nir Eyal, the author of the bestseller book, Hooked, revealed his way of fighting against distractions in his new book, indistractable.

Why are we so easily distracted? There might be external causes sometimes. However, in most cases, it turns out distraction has internal sources. We are distracted because we want to escape from discomfort. To avoid distraction, we need to solve the problem from inside.

Identify internal triggers and beat them

Next time you feel inclined to distraction, try to record your feelings and what triggers that. That’s how you can identify internal triggers in the first place. Then you can try to avoid the triggers by making tasks more fun.

Plan quality time for yourself before work

To have a plan can prevent you from distraction because you will know what exactly you are striving for. However, scheduling for work is not the best place to start. On the contrary, plan for yourself and your relationships first, and then you will not escape to your hobbies in the middle of work.

Cut down on office distractions and learn to organize

Office distractions such as email notifications are typical external triggers. Let others know that you need to be entirely focused on the task at hand, so they are not supposed to interrupt you. Also, learn to sort your emails more effectively and make sure only a few emails demand your attention every day. Other than emails, there are other forms of distraction in the workplace. Learn to organize them in the least distracting way.

Make use of pacts to prevent distraction

You have to be aware of the fact that the battle between you and distraction is not a one-day fight. Maybe you can try an APP to block your access to distracting. Or find a study buddy to focus together. Imposing fines for missing targets also sounds practical, which has been testified by the author.

Contribute to a functional work culture

Dysfunctional work culture is the beginning of endless distraction, in which employees are overburdened and even required to answer emails after work. Employers should create a platform that enables employees to give feedbacks safely without be worried about getting fired. Step by step, the company can head towards a functional work culture.

Nir Eyal: How to Stay Focused?

· 2 min read

The ability to stay focused is key to achieving your true self. In a world full of distractions, this ability has become more important than ever. Nir Eyal, author of "Hooked," offers us effective methods to eliminate distractions and maintain focus.

Why are we always so easily distracted? It turns out that distractions often have internal causes. We get distracted because we constantly seek to escape psychological discomfort. To avoid distractions, we need to address the issues from the inside out.

Identify Internal Triggers of Distraction

Next time you feel your attention slipping, try to record your feelings and the reasons behind them. This way, you can understand the internal triggers right from the start. Afterward, you can avoid distractions by making tasks more enjoyable.

Prioritize Time for Yourself Before Scheduling Work

Creating a plan can prevent distractions because you will clearly know your goals. However, prioritizing work time is not the best starting point. On the contrary, you should first plan for yourself and your relationships. By doing so, playtime is already scheduled, and you won’t interrupt your work out of a desire to play. In other words, work when it’s time to work, and play when it’s time to play.

Reduce Office Distractions and Learn to Organize

There are often many external factors in the workplace that distract attention, such as email notifications. Try to let others know that you need to focus entirely on the task at hand so that they won’t disturb you. Additionally, learn how to effectively organize your emails to ensure that you only have a few to focus on each day. Besides emails, there are many other forms of distractions in the workplace; learn to manage them with minimal effort.

Use Pacts to Prevent Distraction

One undeniable fact is that our struggle with distractions is not a one-day battle. You can use apps that block distractions. Alternatively, work together with others to stay focused. Also, imposing fines as a penalty for not meeting goals can be very effective; this practice has greatly benefited the author.

Foster a Healthy Work Culture

An imbalanced work culture is the beginning of endless distractions. In an unbalanced work culture, employees are heavily burdened and may even be expected to respond to emails after hours. Employers should create a platform that allows employees to provide feedback safely without fear of being fired.

Google's Software Engineering: Project Management

· 3 min read

20% Time

Engineers are allowed to spend 20% of their work time on any project they want to contribute to, without needing approval from their managers or others. This is highly valuable because:

  1. As long as there are good ideas, no matter how bad they sound at first, there is ample time to develop them to a demo-ready state.
  2. It allows managers to see activities they might not otherwise notice; otherwise, engineers might engage in "skunkworks" and work secretly.
  3. It enables engineers to work on interesting projects, preventing burnout and motivating them to be happier. The output gap between motivated engineers and burnt-out engineers far exceeds 20%.
  4. It encourages innovation; if others around you are working on 20% projects, you will be inspired to do the same.

OKRs

Individuals and teams must publicly document their objectives and how they measure them.

  • Objectives
    • Set quarterly and annual goals.
    • Individual and team goals should align with the larger group’s goals.
  • Key Results: Measurable key results can quantify progress towards objectives, ranging from 0 to 1.
  • Set OKRs high; generally, achieving around 0.65 is a good standard. If your results are often below this, your goals may be set too high; if above, they may be too low.
  • Benefits
    • Everyone knows what others are working on, fostering mutual motivation.
    • Provides purpose to execution, making it easier to achieve goals.
  • OKRs are not directly related to performance evaluations.

Should the Project Continue or Be Terminated?

While the review process for major new releases is systematic, there is no definitive answer to whether a project should continue; some decisions are bottom-up, while others are top-down.

Reorganization

Splitting and merging teams is common, seemingly optimizing efficiency.

My Evaluation

The results of 20% time are positive, having incubated significant projects like Gmail and AdSense. In a competitive environment, encouraging talented engineers to spend time on new initiatives is highly beneficial. Promoting 20% time is also a unique strategy to attract talent when the company is small and needs to offer excellent benefits. I tend to view 20% time as a management style rather than a guaranteed path to success.

The distinction between OKRs and performance evaluations is crucial—this means separating vision from execution and goal management from performance management. For example, asking "Did you reach the destination?" compared to "Is the car you drove a good one?" are two different questions. Similarly, poor product sales and whether engineers produced a good product are two separate issues.

For regular engineers, maintaining good relationships with other teams in a large company, including those unrelated to your specific work, is important, as it increases your demand in the labor market. This way, in the event of a reorganization or other adverse events, you will have more options.

Google Software Engineering: Software Development

· 6 min read

It is widely recognized that Google is a company with exceptional engineering capabilities. What are its best engineering practices? What insights can we gain from them? What aspects have drawn criticism? We will discuss these details gradually, with this article primarily focusing on development.

Google Software Engineering - Software Development

Codebase

  • As of 2015, there are 2 billion lines of code in a small number of Monorepo single codebases, with the vast majority of the code visible to everyone. Google encourages engineers to make changes when they see issues, as long as all reviewers approve, the changes can be integrated.
  • Almost all development occurs at the head of the codebase, rather than on branches, to avoid issues during merging and to facilitate safe fixes.
  • Every change triggers tests, and any errors are reported to the author and reviewers within minutes.
  • Each subtree of the codebase has at least two owners; other developers can submit modifications, but approval from the owners is required for integration.

Build System

  • The distributed build system Bazel makes compilation, linking, and testing easy and fast.
  • Hundreds or thousands of machines are utilized.
  • High reliability, with deterministic input dependencies leading to predictable output results, avoiding strange, uncertain fluctuations.
  • Fast. Once a build result is cached, dependent builds will directly use the cache without needing to recompile. Only the changed parts are rebuilt.
  • Pre-submit checks. Some quick tests can be executed before submission.

Code Review

  • There are code review tools in place.
  • All changes must undergo review.
  • After discovering a bug, you can point out the issue in the previous review, and relevant personnel will be notified via email.
  • Experimental code does not require mandatory review, but code in production must be reviewed.
  • Each change is encouraged to be as small as possible. Fewer than 100 lines is "small," fewer than 300 lines is "medium," fewer than 1000 lines is "large," and more than 1000 lines is "extremely large."

Testing

  • Unit tests
  • Integration tests, regression tests
  • Pre-submit checks
  • Automatic generation of test coverage
  • Conduct stress tests before deployment, generating relevant key metrics, especially latency and error rates as load varies.

Bug Tracking Tools

Bugs, feature requests, customer issues, processes, etc., are all recorded and need to be regularly triaged to confirm priorities and then assigned to the appropriate engineers.

Programming Languages

  • There are five official languages: C++, Java, Python, Go, JavaScript, to facilitate code reuse and collaborative development. Each language has a style guide.
  • Engineers undergo training in code readability.
  • Domain-specific languages (DSLs) are also unavoidable in certain contexts.
  • Data interaction between these languages primarily occurs through protocol buffers.
  • A common workflow is essential, regardless of the language used.

Debugging and Analysis Tools

  • When a server crashes, the crash information is automatically recorded.
  • Memory leaks are accompanied by the current heap objects.
  • There are numerous web tools to help you monitor RPC requests, change settings, resource consumption, etc.

Release

  • Most release work is performed by regular engineers.
  • Timely releases are crucial, as a fast release cadence greatly motivates engineers to work harder and receive feedback more quickly.
  • A typical release process includes:
    1. Finding the latest stable build, creating a release branch, possibly cherry-picking some minor changes.
    2. Running tests, building, and packaging.
    3. Deploying to a staging server for internal testing, where you can shadow online traffic to check for issues.
    4. Releasing to a canary environment to handle a small amount of traffic for public testing.
    5. Gradually releasing to all users.

Review of Releases

User-visible or significant releases must undergo reviews related to legal, privacy, security, reliability, and business requirements, ensuring relevant personnel are notified. There are dedicated tools to assist with this process.

Postmortem Reports

After a significant outage incident, the responsible parties must write a postmortem report, which includes:

  1. Incident title
  2. Summary
  3. Impact: duration, affected traffic, and profit loss
  4. Timeline: documenting the occurrence, diagnosis, and resolution
  5. Root causes
  6. What went well and what did not: what lessons can help others find and resolve issues more quickly and accurately next time?
  7. Next actionable items: what can be done to prevent similar incidents in the future?

Focus on the issue, not the person; the key here is to understand the problem itself and how to avoid similar issues in the future.

Code Rewrite

Large software systems are often rewritten every few years. The downside is the high cost, but the benefits include:

  1. Maintaining agility. Markets change, software requirements evolve, and code must adapt accordingly.
  2. Reducing complexity.
  3. Transferring knowledge to newcomers, giving them a sense of ownership.
  4. Enhancing engineer mobility and promoting cross-domain innovation.
  5. Adopting the latest technology stacks and methodologies.

My Comments

Google's single codebase and powerful build system are not easily replicable by small companies, as they lack the resources and capabilities to make their build systems as fast and agile. Staying small, simple, and fast allows small companies to operate more smoothly and focus more on core business logic.

Build systems are often customized, and your knowledge may not transfer or scale. A powerful build system can even be detrimental to newcomers, as it raises the cost of gaining a holistic view.

The inability to transfer and scale knowledge is also an issue with well-developed in-house tools. Throughout my career, I have tried to avoid using non-open-source internal tools, such as Uber's Schemaless, which are tailored for specific scenarios and not made public for broader use; in contrast, LinkedIn's Kafka is a good product with openness and scalability of knowledge.

In the open market, there are excellent tools available for the entire development, testing, integration, and release process. For example, in the JS community:

ProcessTools
CodebaseGithub, Gitlab, Bitbucket, gitolite
Code ReviewGithub Pull Requests, Phabricator
Pre-submit checks, testing, and lintinghusky, ava, istanbul, eslint, prettier
Bug TrackingGithub Issues, Phabricator
Testing and Continuous IntegrationCircleCI, TravisCI, TeamCity
DeploymentOnline service deployment with Heroku, Netlify, mobile app deployment with Fastlane, library publication with NPM

Finally, I may have an insight: companies that do not focus on the automation of these engineering processes will lose significant competitive advantage. I even set up a JS full-stack development framework OneFx for good engineering practices. The difference between fast and slow, high quality and low quality is often exponential because — typically, speed allows you to do more and faster, while poor quality leads to less and worse outcomes.

Lean Analytics: Key Metrics for Evaluating Startups

· 2 min read

Every aspiring entrepreneur knows that creating something no one wants is a fatal trap. This is why we must conduct the right data analysis. The book "Lean Analytics" provides entrepreneurs with some good metrics for evaluating success.

Moving in the Right Direction, Then Data-Driven

Data is vital for business. Entrepreneurs need to use data to persuade others. Sometimes, entrepreneurs tend to overestimate their success, but data does not lie. It can help founders stay grounded. However, personal judgment on which data to pursue is also important. Entrepreneurs should not simply become slaves to the numbers.

What Are Good Metrics?

To collect data, you need to find metrics that can provide meaningful information. Good metrics have three characteristics:

  • Comparable: A good metric can be compared across different time periods and consumer groups.
  • Understandable: Good metrics are simple and easy to comprehend.
  • Ratios: Metrics are often ratios because they are effective and comparable.

The Five Stages Startups Will Experience

  • Empathy Stage: Identify people's needs and define your niche market.
  • Stickiness Stage: Discover how to meet those needs with products that keep users coming back.
  • Growth Stage: Add features that attract users.
  • Revenue Stage: The business starts generating income.
  • Scaling Stage: Expand or penetrate new markets.

Focus on One Metric

To achieve success, founders must focus on the most critical metric. Knowing what the most important metric is can prevent you from getting lost in the world of data.

What Are the Best Metrics?

There is never a one-size-fits-all best metric. The best metrics vary across different industries. For e-commerce companies, the most important metric is revenue per customer. But for media websites, the most important metric is click-through rate.