Skip to main content

Three things I learnt from "The Nature of Software Development"

Recently I read a book called The Nature of Software Development by Ron Jeffries. As a newbie developer, I had little knowledge of what it meant to be "agile" at work, and I assumed most coders weren't performing cartwheels in their lunch breaks.

I was lucky, this book was simply written by a man with a vast amount of experience in the topic. I really enjoyed reading it, and found it surprisingly relatable, given I don't have industry experience. Here are the three main things I learnt from my read:

1.  Why do we need agile? In life, deadlines will never be met with a perfect product with everything you want. Ever. This is no fun for anyone.

2. So, what would happen if we ship a basic model of a product as soon as possible? Firstly, the product user will have something that they may like a little long before they expected it - yay for them. Secondly, they might have feedback on the product - perhaps it already does everything they need, so no more unnecessary work for us. Maybe the product is totally wrong, so we rethink the entire project. Either way, we reduce time spent on work that wasn't wanted, which we wouldn't have known if we didn't produce a product until the final deadline. Yay for everyone.

3. This agile thing sounds great, but how do we do it? Well once you can persuade management of the benefits (see point 2) it's easy! Split your work into 'sprints' e.g. every two weeks you will have a finished product to deploy. Every sprint your team decide on the features that provide the most added benefit and prioritise those (if they're feasible). We no longer need to provide all the foundations for an entire product first - we just build them for the feature we're working on, refactoring as we go. We can also TDD each feature as we build it to future proof the code. This should ultimately leave us with cleaner code and a robust test suite that we can rely on. Wins all around! Not to mention the huge satisfaction of completing a task every sprint.

This book taught me that agile development means happy team and happy product users. What's not to love?

Comments

  1. It is tough to stipulate a strategy for successful massive at Roulette, end result of|as a outcome of} the house advantage is so robust and no strategy can overcome the built-in home percentage. The recreation begins with the player placing a wager of the player’s choice on the Roulette format. Inside Bets Players can place selection of|quite lots of|a big selection of} "inside" bets 클레오카지노 by choosing the variety of the pocket the ball will land in, or a range of pockets based on their place. Chi Square is the process of “squaring” or multiplying every pocket’s normal deviation by its plus or minus quantity.

    ReplyDelete
  2. Players can rest assured that they are taking part in} on a site that can deal with them pretty. To get a crypto welcome bonus from Wild Casino, use the code CRYPTO300 to get a beneficiant 300% first deposit bonus 메리트카지노 of as much as} $3,000. This is where Wild Casino actually stands out because it accepts a wide variety|all kinds} of cryptocurrencies.

    ReplyDelete

Post a Comment

Popular posts from this blog

Three things I learnt from The Pragmatic Programmer - Chapters 5 and 6

Link to previous chapter here. Here are the three things I learnt from these chapters: 1. I'm at the start of my journey and it's totally okay not to understand everything. I do not have to force myself to read things that make no sense to me yet. At some point I'd love to come back to this book and see what I can learn here as I'm sure its good.  2. Elixr, a functional language, has a pipeline operator that takes the value on its left and insert it as the first parameter of the function on the right. It's a more readable way of transforming data. Thinking of code as a series of nested transformations helps make functions shorter. 3. Be careful with inheritance. It can get messy if not all of a parent's methods are suitable for the child, or if the parent's code will ever be edited. Try things like traits/mixins/delegation/interfaces instead.

Three things I learnt from The Pragmatic Programmer - Chapter 2

  Chapter 1 link here I'm currently reading  a book called  The Pragmatic Programmer  by David Thomas and Andrew Hunt. The first chapter is an easy read, all common sense. The second chapter starts introducing code and is a little more technical. Here are three things I learnt from the second chapter: 1. Every design principle is there to make your code easier to change (ETC). If you're not sure what code design principles to follow and when, use ETC as a guide. 2. Eliminate effects between unrelated things. (Increase orthogonality - parts of code that don't rely on each other). Keep code decoupled, avoid global variables, avoid similar functions, be careful of third part toolkits. 3. Get good at estimating. Every time you have a task, estimate how long it will take. Think about each little step in the task before you provide an answer. When you finish the task write down how long it took, and if you can, why your estimate was wrong. You'll learn to spot patterns....

Three things I learnt from The Phoenix Project

Recently I read the Phoenix Project by Gene Kim, George Spafford, and Kevin Behr. Here are the things I learnt: 1. I much prefer reading a novel to a textbook. This was a great book to trick my brain into learning DevOps basics without having to read a textbook. I shall have to find more books like this. 2. DevOps is when developers and operations work together to create a seamless process that delivers features quickly. 3. Good IT teams could often use the following: - Kanban boards for visibility of all work that's in progress - Teams where knowledge is shared and documented instead of staying with one person - All people understanding the prioritisation of their tasks - Prioritisation of tasks to follow the goals of the business as a whole - Well designed environments and processes so that changes can be deployed up to multiple times per day into production - Security and controls that are built into deployment - Management that is open to change I enjoyed this book and will rea...