Ch. 15: Follow Occam’s Razor

In philosophy, Occam’s Razor is a principle that advocates for the simplest explanation or solution to a problem. The concept of keeping things simple applies to software development as well. In this context, Occam’s Razor helps guide developers towards efficient, effective solutions that are easier to maintain and understand. For instance, when building a web application to track expenses, opting for a simple JSON file-based system for storing expenses and implementing a minimalistic front-end can be a better choice over a complex relational database with multiple tables. This simpler approach leads to faster development, easier maintenance, and potentially lower resource usage. While there may be instances where complexity is necessary, applying Occam’s Razor encourages developers to question whether the simplest option aligns with their current needs. Overall, this principle proves invaluable in creating practical and maintainable software products.

Read More

Ch. 10: Scope Creep and Tools To Help Mitigate It

Scope creep is an ever-looming specter in the world of software development. It can strike fear into the hearts of project managers, developers, and stakeholders alike. The insidious nature of scope creep can lead to missed deadlines, budget overruns, and a demoralized team. But fear not! In this blog post, we’ll explore what scope creep is, how it affects your projects, and most importantly, how you can effectively mitigate its impact.

Read More

Ch. 9: Attitude Is Everything

In Chapter 9: Attitude Is Everything, Justin delves into the significance of attitude, morale, and mindset in software development. Emphasizing the importance of assembling the right team, the author suggests that hiring for culture and passion should take precedence over hiring solely for skill. Drawing inspiration from leaders like Jim Collins and Jason Fried, the author advises seeking out happy and compatible team members. Trust emerges as a crucial factor, with the author highlighting the value of a team that has each other’s back and genuinely enjoys working together. Asking the right questions and fostering open communication are essential in building a positive attitude within the team. Ultimately, the chapter urges readers to carefully consider the attributes and attitudes of their team members to set the course for a successful software development journey.

Read More

Ch. 8: Don’t Be Fooled, You Will Encounter Rough Seas

In Chapter 8: Don’t Be Fooled, You Will Encounter Rough Seas, Justin acknowledges that even the best preparations can’t shield a software development project from setbacks and challenges. Drawing inspiration from a Mike Tyson quote, the chapter emphasizes the importance of maintaining a strong resolve, clear communication, and intense focus in the face of adversity. The author shares examples of rough seas one might encounter during the project, such as cost overruns, missed release deadlines, and unfavorable market responses. Instead of resorting to knee-jerk reactions, the author suggests stepping back and strategically planning the next steps. By defining the issue clearly and conducting Level 10 meetings with the team, potential solutions can be brainstormed and action items assigned. The chapter concludes with the notion that embracing challenges and resolving them as a team will ultimately lead to a stronger software product and improved leadership skills.

Read More

Ch. 7: Release Early and Pickup Treasure Along the Way

Let’s consider this scenario. Imagine you are sailing toward your destination – a treasure chest that contains the release of a perfect software product. However, every time you get closer, the chest is moved and you have further to sail. This is what it’s like for those trying to release the “perfect” product. Instead, I suggest you settle for some small wins along the way, get your product released, and gain booty as you continue to learn and adapt, each time getting closer to the release that has everything you are wishing for.

Read More

Ch. 5: Be Crystal Clear on Your Why

I’ve found one of the best things that a customer of mine can do to help me help them build the best software product possible is to be crystal clear on WHY. It’s not enough to tell your customers what and how you do what you do, you need to start with the why. Starting there will inspire your customers to have a deeper understanding and give them a North Star.

Read More

Ch 4: Do Your Homework

Do your homework, demand the highest quality from the team you hire, and make sure you have clear answers before you start the engagement. Ask these questions and you’ll weed out 90% of the companies that aren’t a fit for you.

Read More

Ch. 3: The Customer Isn’t Always Right

The old phrase “The Customer Is Always right” is one that many use in the Service Industry and one that I’ve used many times as I’ve worked in restaurants, delivering newspapers, as a janitor, and other odd jobs I’ve had during my life. While I think the intention of this quote is to help center that your main objective when helping someone is to do what they want, this doesn’t apply to building software products and certainly doesn’t apply to projects that a customer hasn’t done before. If you’re in charge of hiring experts or independent contractors – or if you work with them directly – learn how to hire for quality over quantity and use them to tell you when you are right or wrong.

Read More

Ch. 2: Agile Process Exists for a Reason

In Chapter 2: Agile Process Exists for a Reason, Justin draws an analogy between building a software application and constructing a house. While there may be some similarities, the author emphasizes that software development requires a clear and concise process to succeed. Unlike building a house, where one follows a set of plans and completes tasks in a linear fashion, software development is more agile and iterative. The author highlights the importance of having a formal process, like Lab651’s core beliefs based on the Agile Manifesto, to save time, create a common language among the team, break down tasks into manageable pieces, communicate project goals, and establish the overall tone and culture of the project. Though each project may require a different level of process, having one in place is vital for success and continuous improvement.

Read More