• Slack automated deployments with a program called ReleaseBot. ReleaseBot monitors deployments, detects anomalies using z-scores and dynamic thresholds, and can pause or roll back deployments if necessary. This proved to be a big improvement compared to Slack’s previous process, which involved engineers serving as “Deployment Commanders” that oversaw manual deploys.

    Tuesday, April 2, 2024
  • This interview with Jackie Rocca, the VP of Product at Slack, delves into the role of generative AI in shaping modern collaboration platforms. She explains how Slack has evolved from a messaging tool to a comprehensive workspace, integrating AI to address user challenges such as information overload and knowledge retrieval. Slack offers AI-powered features like channel recaps, thread summaries, and search answers to increase productivity through relevant insights. The interview highlights the iterative nature of AI development and the importance of keeping the user needs in focus to drive innovation that really impacts their experience.

  • The Slack design team executed the launch of AI-powered features such as AI search and summaries within just six months, meticulously focusing on user-centric solutions for joint pain points like reducing noise and improving message management. They adopted a collaborative approach with shared ownership, rapid prototyping, and continuous feedback from internal and pilot users to refine these features and enhance productivity in the workplace.

    Hi Impact
  • Grace Sunnell and Jeff Robke, professionals from Slack's product design and management teams, attribute their successful collaboration in expanding Slack Connect for Enterprise customers to building solid foundational relationships and setting clear expectations. They emphasize the importance of trust, adaptability, and frequent check-ins to align strategies, resulting in significant financial impact and momentum for the company's services.

  • Slack initially relied on cron jobs for its notification system but found it hard to scale. To address this, its team developed a new cron execution service using Go and Kubernetes for scalability and a leader-follower architecture for simplified synchronization and rapid failover. This service offloads resource-intensive tasks to a job queue, using Kafka for durability and Redis for efficient dispatch to worker nodes, and tracks job execution with a Vitess table for deduplication and monitoring.

  • Slack detects session forking through the use of last access timestamps, IP addresses, and a two-phased cookie update approach. Session forking is when a cookie is being used from more than one device at the same time. Slack's system helps identify and mitigate the risks associated with stolen cookies while reducing false positives and minimizing performance impact.

  • The article discusses the importance of design systems from a developer's perspective, emphasizing how they can enhance usability and streamline the development process. It begins with an analogy comparing the intuitive experience of riding a bicycle to the desired user experience in software applications. Just as riding a bike becomes second nature, the goal is to create software that users can navigate effortlessly. Design systems are presented as a solution to achieve this level of usability, allowing teams to build and ship applications quickly while maintaining consistency through standardized components. The piece highlights the potential pitfalls of poorly implemented design systems, which can hinder rather than help development. It stresses the need to treat design systems as products that require ongoing investment and maintenance to remain effective. A well-maintained design system can provide stability and speed up development, while a neglected one can lead to technical debt and inefficiencies. The article advocates for an iterative approach to building design systems, contrasting it with the traditional waterfall method. Developers are encouraged to focus on simplicity and to build design systems incrementally, using user feedback to guide improvements. The example of Slack illustrates this point, showing how the company managed to standardize its components without sacrificing development speed, ultimately leading to the creation of Slack Kit. Another critical aspect discussed is the necessity of maintaining design systems to prevent them from becoming obsolete. Developers often express skepticism about using design systems due to past experiences with poorly maintained products. The article suggests that design systems should be flexible and adaptable, allowing for both standardization and customization. The Spotify design system, Encore, is cited as an example of balancing consistency with the need for creative freedom. The importance of alignment between developers and designers is also emphasized. Effective communication and collaboration can prevent wasted effort and ensure that both teams are working towards the same goals. The article uses Airbnb's experience to illustrate how a shared visual language can enhance productivity and consistency across teams. Finally, the article encourages viewing design systems as basecamps for exploration rather than constraints on creativity. By providing a stable foundation, design systems can empower developers and designers to innovate and experiment without losing sight of consistency and usability. The piece concludes by promoting UXPin Merge as a tool that facilitates the creation of production-ready prototypes, further enhancing the design and development workflow.

  • The launch of Recap, Slack's new AI-powered feature, emphasizes the importance of crafting a delightful user experience. Recap provides daily summaries of channels that users may not actively engage with, aiming to enhance their overall interaction with Slack. The team recognized that functionality alone was not enough; the experience needed to feel fresh and enjoyable, embodying the essence of what makes Slack unique. Slack has a reputation for its commitment to craft excellence, which is reflected in its focus on simplicity, accessibility, and user delight. The team aimed to ensure that every interaction with Recap was intentional and engaging, incorporating playful elements and thoughtful copy. Despite tight production timelines, the team prioritized craft, understanding that this feature could significantly alter how users engage with Slack. To achieve this, the team members took on various roles that extended beyond their usual responsibilities. McKenna led the design direction, Chris focused on visual and motion design, Zara worked on content localization, and Naman explored user interface patterns. This collaborative approach allowed them to maintain steady progress while also enjoying the opportunity to develop skills outside their typical scope. Effective communication was crucial during the project, especially given the tight schedule. The team established a template for sharing feedback and updates, ensuring everyone was aligned on priorities and progress. This over-communication helped alleviate concerns about maintaining a high standard of craft, allowing for quick cycles of ideation and feedback. Rich prototyping played a significant role in the development process. The team emphasized the importance of gathering user feedback at every stage, from initial concepts to beta releases. By presenting multiple options and incorporating real data, they created prototypes that closely resembled the final product. This approach allowed them to identify potential issues early, such as the unintended implications of motion design. The team also recognized the need to balance platform parity with unique experiences for desktop and mobile users. They adapted features like background color changes and animations to suit each platform while maintaining a consistent overall experience. This attention to detail from the project's inception ensured that interactions were polished and well-integrated. Ultimately, the team concluded that investing time and energy into craft is essential, even under tight deadlines. This commitment not only enhances the user experience but also encourages team members to explore innovative design concepts. By prioritizing craft, the team can inspire others to value quality in their work, fostering a culture of excellence across the organization.