Software Engineering Encouraging Help-Seeking in Software Engineering Teams In the fast-paced world of software engineering, collaboration and support are essential for a healthy and productive team. Yet, many engineers often find themselves reluctant to ask for help when they need it.
Software Engineering A Beginner's Guide to Extreme Programming (XP) Extreme Programming (XP) is an agile development framework introduced by Kent Beck in the 1990s. It focuses on customer satisfaction and adaptability through practices like pair programming, test-driven development, and continuous integration.
Software Engineering A Brief Guide to Kanban Kanban is a simple yet powerful project management method that helps teams visualise work, improve efficiency, and foster continuous improvement.
Software Engineering Understanding Scrum: A Beginner's Guide Scrum is a popular framework in project management and software development that emphasizes teamwork, accountability, and iterative progress.
Software Engineering Running a Good Scrum Standup A standup is a brief, daily meeting where team members share updates, plan their day's work, and highlight obstacles. Effective standups keep teams aligned, promote accountability, and foster communication.
Software Engineering A Guide for Facilitation Facilitation guides a group to achieve common goals, ensuring everyone's voice is heard and the team stays focused.
Software Engineering The 5 Whys Technique The 5 Whys technique is a problem-solving tool that identifies the root cause of an issue by asking "Why?" five times. Teams can use it to dive deep into problems, ensuring they address the fundamental cause.
Software Engineering What is a PIR (Post Incident Review) and How to Run It A Post Incident Review (PIR) is a structured process to analyse incidents, understand their causes, and prevent recurrence.
Software Engineering Mastering the RICE Framework for Software Backlog Management The RICE scoring model is a framework designed to help product managers, development teams, and other stakeholders prioritize tasks by scoring features or project ideas on four factors: Reach, Impact, Confidence, and Effort. This system is particularly useful when dealing with a backlog of technical software development items. The acronym
Software Engineering Simple Guide to Effective Problem-Solving in Scrum Retrospectives In Scrum retrospectives, it's crucial to foster a safe and open environment for candid discussions. Unfortunately, teams can sometimes fall into a blame game, hindering improvement. Instead, let's focus on the process and situations that cause problems and work together to find solutions. Here's
Software Engineering A Guide to Successful Pair Programming Pair programming is a teamwork technique in software development where two programmers collaborate at a single computer. It's not about dividing tasks to work faster, nor is it a quick advisory session. Instead, it involves one person actively writing code (the "driver") while the other reviews
Software Engineering Solving the Anagram Problem with JavaScript Anagrams are words or phrases formed by rearranging the letters of another word or phrase, using all the original letters exactly once. Let's explore various methods to solve the anagram problem using JavaScript while considering only alphanumeric characters and ignoring letter cases. Test Cases // Test Case 1: Basic
Software Engineering Solving the Fizz Buzz Problem in JavaScript The Fizz Buzz problem is a simple programming task often used as an introductory coding challenge. It requires writing a program that prints a sequence of numbers from 1 to a specified limit, with the following rules: 1. If the number is divisible by 3, print "Fizz" instead
Software Engineering Max Char Problem in Javascript Given a string, return the character that occurs the most frequently. console.log(maxChar("hello")); // Expected output: 'l' (occurs 2 times) console.log(maxChar("programming guy")); // Expected output: 'g' (occurs 3 times) console.log(maxChar("aabbcc")); // Expected output: 'a&
Software Engineering Solving the Reverse Integer Problem in JavaScript The reverse integer problem is defined as follows: given an integer, the task is to reverse its digits. While this might seem simple at first glance, it raises some interesting challenges, especially when dealing with negative numbers and potential integer overflow. Test Cases // Test cases for positive integers console.log(
Software Engineering Exploring Palindrome String Problem in JavaScript A palindrome is a sequence of characters that remains unchanged when read backwards. It can be a word, phrase, number, or any combination thereof. For example, "racecar," "madam," and "12321" are palindromes, while "hello," "world," and "12345" are
Software Engineering Reverse String Problem in JavaScript The reverse string problem is a classic programming challenge where you're tasked with reversing the order of characters in a given string. While it might seem like a simple task, it can be approached in various ways, each with its own trade-offs in terms of efficiency and code
Software Engineering Featured Scrum Retrospective - 4 Things to Avoid Quick Summary * Skipping Retrospectives: Don't skip retrospectives, even if things seem to be going well. Continuous reflection is essential for identifying potential areas of improvement. * Blame and Finger-Pointing: Avoid assigning blame or singling out individuals for mistakes. The retrospective is about improving processes, not placing blame. * Lack of
Software Engineering The DRY principle The DRY principle (Don't Repeat Yourself) is a software development principle that advocates for avoiding repetition of code or logic in a program. It encourages developers to write code that is modular, reusable, and easy to maintain. The DRY principle suggests that if a piece of information or
Software Development Code Smell - Too Many Comments On the surface, comments sound helpful, and the more, the better. It shows that an Engineer is considering the next Engineer that will be maintaining it and taking pride in documenting their work. But while intentions are good, comments can be lies waiting to happen. For example, will the next
Software Engineering Code Smell - Premature Optimisation A common programmer mistake is spending time improving something that isn't needed. This results in wasted effort and extra complexity in the code and distracts the programmer from delivering value to the user faster. Furthermore, most software doesn't benefit from highly optimised code as modern CPU
Software Engineering Code Smell - Duplicate Code Because every line of code that goes into the codebase needs to be maintained, duplicated code decreases productivity. In addition, when Engineers update one part of the code, they must make the exact change to multiple locations. Then there's the risk that someone will miss one section and
Software Engineering Code Smell - Keep It Simple Whilst it's good to write efficient code, don't do it just to make the code smaller. Do it so that the next person can more easily maintain it. Making code logic complex or over-engineering can negatively impact the team's productivity because the code is
Software Engineering Code Smell - Badly Name Variables It can be easy to overlook the importance of having a good variable or method name. After all, it doesn't affect performance as the compiler will convert it to machine code. And it can sometimes be challenging to think of a good name. But without a good naming
Software Engineering Code Smell - Large Classes Generally, a class that is too large signals that it's doing too many things. The more responsibilities your class has, the more often you need to change it and any other code that references that class. This makes changes more complex and time-consuming and can introduce unrelated bugs.