DEV Community

Cover image for Unlocking Productivity in Software Development
Justin L Beall
Justin L Beall

Posted on

Unlocking Productivity in Software Development

An image that captures the moment of inspiration and determination in a developer's journey. Picture a developer standing at the threshold of a path that leads through an open book into a vibrant, digital world. The book represents knowledge and the path symbolizes the journey of growth. The developer is equipped with tools like a laptop and books, ready to embark on this journey. The surrounding environment is filled with symbols of coding languages and tech, blending into a horizon that promises endless possibilities.

Hey There, Fellow Dev! Ever caught yourself pondering why some developers seem to have their careers on a meteoric rise while others just kinda... don’t? Enter "14 Habits of Highly Productive Developers" by Zeno Rocha. Think of it as your roadmap to coding stardom, but with a twist. It's less about mastering every new tech trend and more about the small, everyday actions that make all the difference.

What makes Rocha's insights a game-changer is how he borrows a leaf from the "Atomic Habits" playbook. Sure, the habits he talks about can give your productivity a decent nudge from the get-go. But here’s the kicker: it’s the long haul where they really pack a punch. Like compounding interest in the bank, these habits build upon each other, setting you up for a win that’s not just for today or tomorrow, but for your entire career.

This book isn’t about quick fixes or shallow advice. Rocha challenges us to zoom out and rethink our approach to work and personal development. It's about the tiny, seemingly insignificant tweaks we can make to our daily routines that can add up to massive gains over time. Think of it as investing in your developer self, where the payoff isn’t immediate, but when it comes, it’s big.

So, are you ready to roll up your sleeves and see what all the hype is about? Let’s dive into these habits and discover how they can transform not just how you code, but how you approach your career and life in tech.

The Core Principles Behind Productive Habits

An image illustrating the foundation of productive habits in software development. Visualize a strong, rooted tree with branches that reach out into various directions, each branch representing a core principle such as focus, consistency, and learning. The roots are embedded in a ground made of code and digital elements, emphasizing the importance of a strong base in fundamentals. Surrounding the tree are icons symbolizing the habits discussed, creating an ecosystem of growth and development.

Before we jump into the specifics, let's set the scene with the fundamentals—the principles that underpin the habits of highly productive developers. It’s all about laying a strong foundation, one that supports growth over time and helps you navigate the tech landscape with confidence.

First off, Zeno Rocha clues us in on a universal truth: success in our field isn’t about occasional bursts of hard work, but about the steady accumulation of effort. It's similar to exercising—you won’t get fit by hitting the gym hard once a week; you need regular, consistent effort. In the realm of development, this means daily practice, learning, and improvement that, bit by bit, elevates your game.

Becoming a highly productive developer isn’t just about mastering the languages or tools. It's about the habits. One of the key messages from the book is that there's more to our careers than just mastering the latest tools or programming languages. Sure, those are important, but it’s the habits we cultivate around learning and working that truly set us apart. This isn’t about what you know right now; it’s about how you grow.

Habit 1: Look For The Signals 🚀

An image of a developer at a workstation surrounded by screens displaying an overload of information, with icons and symbols flying around. The developer uses a special filter, represented by a magnifying glass or a net, to catch specific signals — highlighted as glowing icons or symbols that align with the developer's goals. This filter represents the ability to discern relevant information amidst the noise.

Let's cut through the noise. Information overload isn't just a nuisance; it's a barrier to effective learning and growth. Every day, we're bombarded with an avalanche of new technologies, frameworks, and programming methodologies. The key, as Zeno Rocha points out, is not trying to catch every ball thrown your way but knowing which ones to catch.

Think of the 'signals' as those pieces of information or opportunities that align perfectly with your current projects, goals, and career trajectory. It's like tuning your radio to the right frequency amidst static—suddenly, everything is clear, and the music flows through unimpeded.

Action Steps:

  1. Assess Relevance: Regularly ask yourself, "How does this align with my current projects or career goals?"
  2. Embrace JOMO: Understand that it's okay to miss out on some trends. The joy of missing out (JOMO) is real and liberating.
  3. Be Selective: Choose learning sources and projects that contribute meaningfully to your skill set and professional journey.

By focusing on the signals, you safeguard your time and energy for what genuinely matters. You'll find yourself more engaged, learning more efficiently, and making strides in areas that count. This habit isn't just about filtering out noise; it's about amplifying the signals that will define your career's success.

Habit 2: Focus On The Fundamentals 🔑

Visualize an architecturally sound bridge made of coding symbols and foundational elements of software development, such as binary code, brackets, and basic UI components. This bridge connects two cliffs, symbolizing the journey from beginner to mastery. The focus is on the solid construction of the bridge, emphasizing the strength and importance of fundamentals in building a successful career in development.

Here’s the deal: the tech world loves its shiny new toys. There’s always a buzz about the latest framework or the newest programming language. But Zeno Rocha brings us back to an essential truth—solid skills in fundamental principles are what truly make a developer stand out.

Think of your skills like a tree. The stronger your roots (a.k.a. the fundamentals), the sturdier and more adaptable your tree is. This isn’t about just coding; it’s about understanding the why behind it, which makes picking up the 'what's new' easier and faster.

What to Do:

  1. Practice, Practice, Practice: The mantra ‘Always Be Coding’ isn’t just catchy; it’s critical. Hands-on work keeps your core skills sharp.
  2. Focus When Learning: Diving into something new? Anchor it into your base knowledge. This way, learning becomes building, not starting from scratch every time.
  3. Simplicity is Your Friend: Complex solutions might look cool, but the real genius is in making things simple and clear.

It’s the fundamentals that free you to adapt and grow, no matter how many new programming languages come and go. So, yeah, let’s get excited about the next big thing, but remember, it’s your strong foundation that will let you truly master it.

Habit 3: Teaching Equals Learning 🗣️

An image showing a developer standing in front of a classroom or workshop, using a chalkboard or digital screen to illustrate a complex programming concept. The audience, a diverse group of developers, actively engages with the presentation, asking questions and contributing ideas. This environment represents a communal learning space where teaching and learning are interconnected.

There’s a secret weapon in your arsenal for deepening your understanding of any programming concept: teach it. Yes, you read that right. When you take the time to explain what you’ve learned to others, you're not just sharing knowledge; you're reinforcing it within yourself.

Ever noticed how explaining a concept to someone else forces you to break it down into its simplest parts? That’s where the magic happens. Teaching pushes you to look at what you know from every angle—often revealing gaps in your understanding that you can then fill.

Easy Ways to Get Started:

  1. Blog It Out: Got a new concept down? Write a blog post about it. This doesn’t just solidify your knowledge; it also contributes to the community.
  2. Talk Tech: Whether at meetups, virtual conferences, or even casual team gatherings, share what you've learned. These discussions can lead to valuable insights and strengthen your grasp of the topic.
  3. Pair Programming: Use pair programming sessions as teaching moments. They offer a direct, hands-on way to share knowledge and skills.

The process of teaching brings clarity and depth to your learning. It’s a two-way street where you end up learning just as much, if not more, than the person you’re teaching. Plus, it combats imposter syndrome, giving you concrete evidence of your expertise and growth.

Habit 4: Be Boring 🛌

Depict a developer in a serene, organized workspace, engaged in a routine of coding with methodical precision. Surrounding the workspace are clocks and calendars, symbolizing the value of time management and consistency. The image conveys a sense of calm and steadiness, highlighting the power of regular, disciplined work habits over the pursuit of constant excitement.

Surprise! In a world obsessed with breakthroughs and fast-paced innovation, being "boring" is actually your secret weapon. This habit isn’t about stifling creativity or ambition; it’s about recognizing the value of steady, consistent work over the allure of constant high-intensity efforts.

The tech industry often glamorizes late-night coding sprees and deadline-driven heroics. However, the true path to long-term success and well-being is maintaining a sustainable pace. It’s the daily dedication to your craft, the disciplined approach to problem-solving, and the steady accumulation of knowledge that lead to meaningful breakthroughs.

What to Do:

  1. Set a Sustainable Pace: Work in a way that you can maintain indefinitely, not just in short bursts fueled by caffeine or looming deadlines.
  2. Discipline is Key: Cultivate self-discipline by setting regular, achievable goals for learning and project completion.
  3. Rest is Productive Too: Understand that downtime isn’t wasted time. Periods of rest and disconnection foster creativity and problem-solving in the long run.

By adopting a “boring” approach to work and learning, you’re investing in your future self. This habit is about playing the long game, ensuring you’re not just coding for today but building a foundation for decades of innovation and success. It's about balance, longevity, and the quiet confidence of knowing that slow and steady often wins the race.

Habit 5: Write Code for Your Future Self 👨‍💻➡️👴

An image of a developer at a computer, with a transparent overlay showing an older version of themselves looking back appreciatively. The screen displays clean, well-commented code, symbolizing clarity and foresight in coding practices. This represents the concept of writing code that is not only functional but also understandable and maintainable over time.

One of the truest tests of a developer's skill is not just the ability to solve complex problems, but to solve them in a way that's understandable hours, days, or even years down the line. This habit is about writing code that your future self, or anyone else for that matter, can pick up, understand, and work with without wanting to pull their hair out.

We've all been there—looking at code we wrote in the past and wondering, "What was I thinking?" Rocha reminds us that coding is as much about communication with future readers as it is about communicating with the machine.

What to Do:

  1. Clarity Over Cleverness: Prioritize writing clear, concise code over showing off how clever you can be. Remember, the best code is the one that speaks for itself.
  2. Comments and Documentation: Don’t just code; explain your logic where necessary. Well-placed comments and thorough documentation can save hours of confusion later on.
  3. Refactor with Love: Regularly revisit and refine your code. Refactoring isn’t about fixing mistakes; it’s about enhancing readability and maintainability.

By writing code for your future self, you're not just being kind to future you, but you're also ensuring the sustainability and scalability of your projects. This habit fosters a culture of quality and thoughtfulness, which pays dividends in reduced debugging time and smoother project handovers.

Habit 6: Your 9 To 5 Is Not Enough 📚✨

A scene depicting a developer in a personal workspace outside of office hours, passionately working on a side project. The workspace is filled with personal touches and inspirational items, contrasting with a more sterile office setting. This highlights the importance of pursuing personal development and passion projects beyond the confines of a traditional work environment.

Advancing in your tech career isn’t limited to what happens between nine to five. The real growth happens when you stretch beyond your job description, exploring and learning on your own time. But here’s the twist: it’s not about working yourself to the bone; it’s about smart, targeted learning that fuels your passion without burning you out.

Keeping up with the pace of technological change requires more than just on-the-job experience. Your 9-to-5 will teach you a lot, but it's the exploration and experimentation on your personal time that will set you apart.

Actionable Steps:

  1. Carve Out Learning Time: Set aside a dedicated time slot each day or week for learning. Even 20 minutes can make a big difference over time.
  2. Choose Passion Projects: Pick up side projects that excite you. They’re a great way to apply new skills in a low-pressure environment.
  3. Balance Is Key: Remember, the goal is sustainable growth. Ensure there’s still time to relax and recharge.

Think of it this way: Your job gives you the map, but your personal time is where you explore the terrain. Whether it’s through side projects, contributing to open source, or just reading up on the latest trends, each step you take beyond your 9-to-5 not only enhances your skills but also enriches your professional journey.

Habit 7: Master the "Dark Side" 🌌📊

An image illustrating a developer standing at the intersection of two worlds: one representing coding and technology, and the other representing business and strategy. The developer holds a compass or a map, symbolizing the navigation and integration of technical skills with business acumen to achieve comprehensive mastery in their field.

Unexpected but true: understanding the business side of things can significantly elevate your coding game. It's not just about writing stellar code; it's about knowing why you're writing it, what problem it solves, and how it serves the business or customer. This habit is about stepping into the realm often viewed as the "dark side" by developers: business acumen.

Every line of code has a purpose tied to a business goal—whether it's enhancing user experience, increasing efficiency, or driving sales. Grasping the bigger business picture allows you to make smarter coding decisions, prioritize projects effectively, and communicate more powerfully with non-technical team members.

Actionable Steps:

  1. Speak the Language: Learn the basics of business language—terms like ROI, market penetration, and user engagement should become part of your vocabulary.
  2. Understand the Goals: Take the initiative to understand your project's business objectives. Ask questions that link your work to the broader company strategy.
  3. Think Like a Translator: View yourself as a connector between technology and business. How can your code better serve the company’s needs?

Imagine coding a new feature for an app. Instead of focusing solely on the technical execution, consider why the feature is valuable from a business standpoint. Is it expected to drive more user engagement? Reduce churn? Your understanding of these aspects can guide your design choices, leading to outcomes that are both technically sound and business-savvy.

Habit 8: Side Projects 🔧🌟

Visualize a creative workshop space where a developer is seen building a vibrant, imaginative project, distinct from their regular work. This space is filled with tools, books, and multiple computer screens, each displaying different aspects of a side project that combines technology with personal passions. The scene is lively and colorful, reflecting the joy and freedom found in pursuing personal interests and experiments that contribute to professional growth.

Embarking on side projects is much more than a mere hobby; it's a pathway to experimentation, learning, and personal growth that your day job might not always provide space for. Side projects allow you to explore new technologies, solve unique problems, and, perhaps most importantly, make mistakes and learn from them in a low-stakes environment.

They're your sandbox; a place where you can play, learn, and build without constraints. This freedom encourages creativity and innovation, often leading to breakthroughs and insights that can enhance your primary work. Moreover, they're a fantastic way to showcase your skills, passion, and commitment to your craft to potential employers or clients.

Actionable Steps:

  1. Choose Projects That Ignite Your Passion: Your side project should excite you. It's the passion that keeps you going, even when the going gets tough.
  2. Set Realistic Goals: While it's a space for freedom, having clear, achievable goals helps keep you on track and ensures completion.
  3. Share Your Work: Don't keep your projects in the dark. Blog about them, share updates on social media, contribute to open-source communities. The feedback and interactions can be incredibly rewarding and educational.

Think of a tool or app you wished existed but doesn’t. That’s your project right there. Whether it simplifies a daily task, automates a tedious process, or just brings a smile to someone’s face, the act of bringing it to life sharpens your skills. It teaches project management, coding, UI/UX design, and potentially, how to handle user feedback—all invaluable experiences.

Habit 9: Mario or Sonic 🕹️🌪️

Create an image depicting a developer standing at a crossroads, with one path transforming into a colorful, wide-open landscape filled with various platforms, representing the breadth of experiences and skills akin to Mario's world. The other path turns into a streamlined track that leads towards a specific, glowing goal, symbolizing the focused, in-depth journey similar to Sonic's speed and precision. This crossroads represents the crucial decision between becoming a versatile generalist or a deep specialist.

It’s a quirky habit name with a serious underlying message about career mobility and growth. Early in your career, it’s beneficial to explore widely and gain a variety of experiences—like the adaptable and exploratory Mario. However, as you progress, focusing deeply on specific skills and industries, akin to Sonic's speed and focus, can propel you to higher levels of expertise and recognition.

Exploring different environments, technologies, and roles can provide a breadth of experience that makes you adaptable and versatile. This exploration phase is crucial for discovering where your true interests and strengths lie. As your career progresses, honing in on these areas allows you to develop a level of expertise that can set you apart and lead to more fulfilling work.

Actionable Steps:

  1. Explore Broadly: Take advantage of opportunities to work in different areas of software development. This could mean switching jobs, tackling diverse projects, or learning new technologies.
  2. Find Your Focus: Once you've identified an area you're passionate about, dive deep. Specialize and seek out projects, roles, or companies that align with your chosen niche.
  3. Evaluate Regularly: Your career should evolve as you do. Regularly assess if your current path aligns with your interests, skills, and the life you want to build.

Consider the early stages of your career as the exploration phase, where you're open to various experiences—think of it as collecting coins and power-ups in a Mario game. As you start identifying what captivates you most, shift gear towards a Sonic-like focus, zooming through your career path with precision and speed towards your ultimate goals.

Habit 10: Active Listening 🎧💡

An image showcasing a developer in a group meeting, actively engaging with teammates by listening intently, taking notes, and asking thoughtful questions. The focus is on the developer's open posture and the visual cues of active listening, such as nodding and eye contact. Surrounding the group are speech bubbles filled with technical symbols and ideas, flowing freely and being absorbed by the developer, illustrating the importance of understanding and communication in collaboration.

Active listening isn't just about hearing words; it's about fully engaging with and understanding the speaker's message. In the tech world, where collaboration is key, being an active listener can transform your interactions, leading to more effective teamwork, clearer project insights, and a deeper understanding of complex problems.

Active listening fosters an environment where ideas can be openly shared and critically evaluated, leading to innovative solutions and stronger team bonds. It ensures that all voices are heard, encourages diverse perspectives, and prevents misunderstandings that can derail projects.

Actionable Steps:

  1. Listen to Understand, Not to Respond: Focus on grasping the full meaning of what’s being communicated. Pause before formulating a response.
  2. Ask Clarifying Questions: If something isn’t clear, don’t hesitate to ask for more details. This not only shows your engagement but can also reveal new insights.
  3. Summarize and Reflect Back: Paraphrase what you’ve heard to confirm your understanding. This step is crucial in ensuring that everyone is on the same page.

In your next team meeting or one-on-one, consciously practice active listening. Note how this changes the dynamic. You may find colleagues are more open to sharing ideas, discussions are more productive, and solutions to problems emerge more readily. This habit is about building relationships as much as it is about building software.

Habit 11: Don't Underestimate 🕰️🔍

Depict a developer sitting at a desk covered with project plans, timelines, and a variety of tech gadgets. The developer is analyzing a complex task on multiple monitors, breaking it down into smaller, manageable parts. Visual aids such as charts, graphs, and lists highlight the process of thoughtful estimation, emphasizing the balance between optimism and realism in planning and execution.

Accurate estimation goes beyond just predicting how long a task will take. It involves understanding project complexities, foreseeing potential roadblocks, and communicating timelines realistically. This habit teaches us the importance of refining our estimation skills for more reliable planning and delivery.

Underestimation can lead to rushed work, compromised quality, and stress, while overestimation might result in wasted resources or missed opportunities. Getting it "just right" is crucial for maintaining trust with teammates and clients, ensuring smooth project flow, and upholding quality standards.

Actionable Steps:

  1. Break It Down: Larger tasks are inherently harder to estimate accurately. Break them into smaller, manageable parts for a clearer view of the scope.
  2. Learn from the Past: Reflect on previous projects to understand common pitfalls and time sinks. Use these insights to inform future estimates.
  3. Communicate and Update: Estimations are not set in stone. Keep stakeholders informed of any changes as the project progresses, adjusting expectations accordingly.

Next time you're tasked with giving a time estimate, resist the urge to give a quick, ballpark figure. Take a moment to dissect the request, consider similar past tasks, and factor in unknowns or dependencies. If uncertainty is high, provide a range rather than a single figure, and explain the variables involved. This approach not only increases your credibility but also sets the foundation for a more manageable project timeline.

Habit 12: Specialist vs. Generalist 📊✨

Visualize a developer standing in front of a large, T-shaped bookshelf. The horizontal section is filled with a broad array of books, representing a wide range of knowledge and skills across different fields. The vertical section contains deep, detailed volumes on a specific subject, symbolizing deep expertise. This image illustrates the concept of being T-shaped: possessing both broad knowledge and deep specialization.

The concept of a T-shaped professional is about striking the right balance between breadth and depth in your skills. The horizontal bar of the "T" represents your broad knowledge across a wide range of areas, while the vertical bar indicates deep expertise in one specific area. This habit stresses the importance of cultivating a versatile skill set while specializing in areas where you can truly excel.

Being T-shaped makes you uniquely valuable in the tech industry. Your broad knowledge allows you to communicate across disciplines, adapt to new roles, and see the bigger project picture. Meanwhile, your deep expertise ensures you can solve complex problems, lead in your domain, and contribute high-quality work.

Actionable Steps:

  1. Expand Your Horizons: Constantly look for opportunities to learn new skills that complement your main area of expertise. Attend workshops, take online courses, and stay curious.
  2. Deep Dive into Your Specialty: Invest significant time and effort to go beyond surface-level understanding. Attend specialized conferences, contribute to relevant open-source projects, and seek mentorship.
  3. Apply and Mix Your Skills: Look for projects that allow you to apply both your broad knowledge and deep expertise. This integration often leads to innovative solutions and personal growth.

Think about your current skill set. Are there areas outside your specialty where learning a bit more could make a significant impact on your work? Conversely, are there topics within your specialty where deeper knowledge could make you a go-to expert? Setting goals for both broadening and deepening your skills can make you more adaptable and sought-after in your career.

Habit 13: Control Your Variables 🔄✨

An image of a developer in a dynamic, changing environment, symbolized by shifting platforms and changing code in the background. Despite the chaos, the developer is calm and focused, adjusting variables on a control panel that represents their tools and skills. This control panel allows them to stabilize their surroundings, showcasing the ability to maintain focus and adaptability in the face of change.

It's easy to feel overwhelmed by the factors outside of your control—be it shifting project requirements, new technologies, or team dynamics. This habit challenges us to focus on what we can control: our responses, our commitment to continuous learning, and our ability to adapt.

By concentrating on the variables within your control, you cultivate resilience and a problem-solving mindset. This approach not only enhances your productivity and satisfaction but also positions you as a proactive and reliable member of any team.

Actionable Steps:

  1. Focus on Your Reaction: While you can't control everything that happens, you can control how you respond. Choose constructive responses that drive forward momentum.
  2. Commit to Learning: In an industry that evolves daily, the one thing you can control is your commitment to staying current and expanding your skillset.
  3. Adaptability Is Key: Being flexible and open to change is within your control. Cultivate an adaptive mindset to navigate challenges and seize opportunities.

Next time you face a sudden project pivot or encounter a new technology that feels daunting, take a moment to assess what aspects you can influence. Can you suggest a more efficient approach? How quickly can you learn the basics of the new technology to contribute meaningfully? Focusing on these controllable factors can turn potential stressors into opportunities for growth and leadership.

Habit 14: Stop Waiting, Start Doing 🚀💡

Create an inspiring scene where a developer stands at the edge of a cliff, looking out over a vast landscape of digital and technological elements. Behind them is a path marked by footprints, symbolizing the journey taken so far. In their hand is a map with a marked destination, and they're about to take a leap of faith to bridge the gap between planning and action. This image embodies the decisive moment of moving beyond hesitation to actively pursue goals and dreams.

Procrastination and hesitation can be significant obstacles in a developer's path to success. Whether it's waiting for the "perfect" moment to start learning a new technology or hesitating to contribute to a project due to self-doubt, inaction can stall your career. Habit 14 is about embracing a bias for action—recognizing when it's time to stop planning and start doing.

The quest for perfection can paradoxically lead to stagnation. By prioritizing action over perfection, you open up opportunities for real-world learning, experimentation, and growth. Each step taken is a step towards improvement, even if it involves making mistakes along the way.

Actionable Steps:

  1. Embrace Small Starts: Don’t wait for conditions to be perfect. Begin with small, manageable actions that move you closer to your goals.
  2. Learn by Doing: Theoretical knowledge has its value, but there’s no substitute for hands-on experience. Dive into new projects, languages, or frameworks to truly understand them.
  3. Reflect and Adjust: After taking action, reflect on the outcomes. What worked? What didn’t? Use these insights to inform your next steps, continually refining your approach.

Think of a project or skill you've been putting off. Break down the first step into the smallest possible action you can take today—whether it's writing a "Hello, World!" program in a new language or setting up a development environment. By taking that initial step, you shift from a passive to an active stance, setting the stage for continuous progress and learning.

The Journey of Continuous Growth

An image that captures the essence of a never-ending journey of growth and learning in software development. Envision a path that spirals upwards through a landscape filled with coding symbols, digital nodes, and platforms that represent different stages of learning and challenges. Along this path, diverse characters (developers) support each other, overcome obstacles, and celebrate victories. The sky transitions from dawn to dusk and back again, symbolizing the continuous cycle of development and progress.

We’ve navigated through the 14 habits of highly productive developers, each shining a light on the multifaceted path to professional excellence and personal fulfillment in the tech world. From honing technical skills and embracing lifelong learning to understanding the business side and valuing communication, these habits represent more than just best practices—they symbolize a mindset of continuous improvement and adaptability.

Adopting these habits is not about instant transformation. Rather, it's about setting the stage for sustainable growth, resilience in the face of change, and a deep sense of satisfaction in your work. Whether you're a seasoned developer or just starting, integrating these habits into your daily routine can significantly impact your career trajectory and overall well-being.

Your Next Step

Now, it's over to you. Which habit resonated with you the most? Pick one to focus on in the coming weeks. Start small, celebrate your progress, and remember that the journey of a thousand miles begins with a single step. As you integrate these habits into your life, share your experiences and insights. Your journey could inspire others to embark on their paths to becoming highly productive developers.

Let's transform our potential into reality, one habit at a time. Dive in, stay curious, and write your own success story. 🌈💼

Top comments (0)