Logo

    dev ops

    Explore " dev ops" with insightful episodes like "FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative", "FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative", "How Can WordPress Cater To The “Instant” Generation?", "The Key to Improving Tech Outcomes: Project Management E33" and "Stewart Ritchie @ Powered by Coffee" from podcasts like ""FLOSS Weekly (Audio)", "FLOSS Weekly (Video)", "Plesk Official Podcast", "Phoenix Business Radio" and "Agency Collective Tales"" and more!

    Episodes (7)

    FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative

    FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative

    Adam Jacob talks with Doc Searls and Shawn Powers about making money in open source, based on his long experience with Chef, System Initiative, and other development communities that are also businesses.

    Hosts: Doc Searls and Shawn Powers

    Guest: Adam Jacob

    Download or subscribe to this show at https://twit.tv/shows/floss-weekly

    Think your open source project should be on FLOSS Weekly? Email floss@twit.tv.

    Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music.

    Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit

    Sponsor:

    FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative

    FLOSS Weekly 760: Making Money In Open Source - Adam Jacob, Chef & System Initiative

    Adam Jacob talks with Doc Searls and Shawn Powers about making money in open source, based on his long experience with Chef, System Initiative, and other development communities that are also businesses.

    Hosts: Doc Searls and Shawn Powers

    Guest: Adam Jacob

    Download or subscribe to this show at https://twit.tv/shows/floss-weekly

    Think your open source project should be on FLOSS Weekly? Email floss@twit.tv.

    Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music.

    Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit

    Sponsor:

    How Can WordPress Cater To The “Instant” Generation?

    How Can WordPress Cater To The “Instant” Generation?

    Key Takeaways

    • People need lower entry barriers to set up and run websites, especially if they are not web professionals. The process is long and expensive, and that needs to change.
    • Hosters must provide quick, simplified, ready-to-use solutions to compete against Facebook and other instant platforms. 
    • Instant builders often come with several templates, creating an off-the-rack look. WordPress offers so much flexibility but is harder to handle —or is it?
    • Many new solutions are, well, new and have yet to prove their robustness and quality. WP Squared is based on the well-established WP Toolkit, which is stable, secure, and high-quality. WP Squared is designed to remove as many steps as possible and can be set up within one afternoon. It has zero-barrier integration and flexible customization. 
    • Security is the biggest concern for most businesses. They need safe, resilient websites and secure plugins because breaches and downtimes can have massive consequences. Virtual patching and WP Guard are the perfect lines of defense.

    The Key to Improving Tech Outcomes: Project Management E33

    The Key to Improving Tech Outcomes: Project Management E33
    The Key to Improving Tech Outcomes: Project Management E33 From managing budgets to meeting deliverables in a timely manner, project managers play a critical role in helping organizations improve outcomes and maintain successful partnerships. So, how can tech companies leverage project management to reimagine how they produce deliverables for their clients? The December 2022 episode […] The post The Key to Improving Tech Outcomes: Project Management E33 appeared first on Business RadioX ®.

    Stewart Ritchie @ Powered by Coffee

    Stewart Ritchie @ Powered by Coffee

    Stewart talks about how he went from creating online forums for fun as a teenager to taking this specialism into a successful agency working with medium / large scale media clients, via a degree in Human and Mammalian physiology! 

    He also shares how his adulthood diagnosis has shaped the way Powered by Coffee is run so that it compliments neurodiversity, rather than using a cookie cutter business model, as well as the agency's exciting future projects.

    Sprints Versus Continuous Flow

    Sprints Versus Continuous Flow

    Hi and welcome back to Weekly Dev Tips. I’m your host Steve Smith, aka Ardalis.

    This is episode 41, in which I'll talk about the difference between sprint and iteration-based software processes compared to continuous processes.

    If you’re enjoying these tips, please subscribe in your app. You can leave a rating and better yet, a comment in your app, too. I also accept subscriptions to @WeeklyDevTips on twitter and comments and requests for topics there or in the show comments, too. Thanks for all of your support!

    Sprints Versus Continuous Flow

    Sprint and iteration-based processes are stepping stones on the path from waterfall toward continuous flow. In this episode we'll make some comparisons to build and integration processes to demonstrate this.

    Sponsor - devBetter Group Career Coaching for Developers

    If you're not advancing as quickly in your career as you'd like, you may find value in joining a semi-formal career and technical coaching program like devBetter.com. devBetter is a small group of motivated developers meeting every week or two, and staying connected in the meantime via a private Slack community. I answer questions, review code, suggest areas in which to improve, and occasionally assign homework. Interested? Learn more at devBetter.com.

    Show Notes / Transcript

    I've been a fan of continuous integration, or CI, for many years. When I was first getting started in professional software development, CI was still new and unproven. Some of my first consulting engagements had me working on teams where there was a team member who was the designated integrator. Their job was to understand how to put all the components of the application together so that the app could be deployed. This was a major ordeal every couple of months when a deployment needed to be made.

    In the 1990s, automated builds started to become increasingly popular. Tools like Ant, and later in .NET NAnt, were growing in popularity. Automated builds started to enable periodic scheduled integrations. Instead of having someone manually integrate and deploy the system every few months, these automated tools enabled weekly integrations, providing much more rapid feedback. Eventually, the frequency of these builds increased from weekly to daily (or more typically, nightly), and finally to the extreme of continuous integration. Continuous integration builds and tests the application every time a change is made to the application's source control.

    It's hard to get much better than continuous integration, but there are still a couple of nice features that can and have been added. Today, I most of my projects use continuous integration, but continuous integration by itself doesn't prevent developers from breaking the build by checking in broken stuff to the main branch. Two features that tools like Azure DevOps and GitHub support now are the ability to run builds on pull requests and the ability to restrict merging pull requests so that they require a passing build before they can be pulled in. Adding in these two features eliminates the vast majority of broken build scenarios, ensuring the main branch of the application remains in a working state at all times.

    So, what does this have to do with sprints? Before we had XP iterations and Scrum sprints, most software development used some kind of waterfall-like process. Iterations, such as they were, were quite long: months and sometimes years. Iterative development approaches popularized by agile software development recommended much shorter iterations, with many developer organizations shifting to 2- or 4-week iterations. Each iteration, the team would estimate the backlog, prioritize the work, plan out the iteration or sprint, commit to the plan, get work done, test it, try to deploy it, and potentially hold a retrospective about the iteration. It's not uncommon to look at iteration-based agile and compare it to a series of mini-waterfalls. The analogy from infrequent deployments to more frequent integrations is an easy one to see.

    So, with integrations, there's an obvious spectrum of increased benefit associated with increased frequency. There aren't many dissenting voices crying out that continuous integration is a waste of time and we should only build software once a month. The feedback benefits of CI over even daily builds is quite clear. So, if you see a certain amount of benefit when going from long-term waterfall delivery to 4-week iterative delivery, it should be obvious that this benefit will increase further if you go from 4-week to 2-week. But most teams stop there. The reason why most teams never shorten their iterations below 2-week sprints is because of the pain involved in some of the required ceremonies that are tied to the sprint. I literally saw this happen last week, when a client initially planned on 1-week sprints but dropped back to 2-week sprints because there were too many meetings to make 1-week sprints work.

    The issue is that the ceremonies eat into time to actually get work done. For instance, a reasonable retrospective probably takes an hour. Investing an hour every 2 weeks may seem reasonable, but what about every week, or every day? Estimating and prioritizing the backlog is a similarly painful part of most sprint plans - would it make sense to do it more often? This may sound crazy if you didn't listen to last week's episode yet, but give it some thought.

    Here's the thing - these ceremonies aren't strictly tied to delivering software. You could increase or decrease your sprint cadence, and still have monthly retrospectives. The same is true for prioritizing work. You can still do it every two weeks while your sprints are one week long, if you want. You can even do it literally just-in-time as things are pulled from the backlog. Imagine how quick sprint planning sessions would be if they only had to choose the next item the dev team would start working on? You could do that 10 times a day with an email exchange if the product owner made it a priority.

    Once you realize that really long iterations, like traditional waterfall, are not great, and shorter iterations are better, you should be able to make the jump to continuous flow pretty easily. If there are things that make this too painful, then listen to the last episode, and do those things more often. Or, realize they're not in the critical path to delivering software, and stop tying them to your software delivery cadence and schedule them on whatever cadence makes sense for your team.

    Show Resources and Links

    That’s it for this week. Next week we have a special guest as Robert "Uncle Bob" Martin will provide a couple of tips - be sure to check back for that. If you want to hear more from me, go to ardalis.com/tips to sign up for a free tip in your inbox every Wednesday. I'm also streaming programming topics on twitch.tv/ardalis most Fridays at noon Eastern Time. Thank you for subscribing to Weekly Dev Tips, and I'll see you next week with another great developer tip.

    If It Hurts, Do It More Often

    If It Hurts, Do It More Often

    Hi and welcome back to Weekly Dev Tips. I’m your host Steve Smith, aka Ardalis.

    This is episode 40, in which I'll talk about the paradoxical advice, "if it hurts, do it more often."

    If you’re enjoying these tips, please subscribe in your app. You can leave a rating and better yet, a comment in your app, too. I also accept subscriptions to @WeeklyDevTips on twitter and comments and requests for topics there or in the show comments, too. Thanks for all of your support!

    If It Hurts, Do It More Often

    I've meant to do an episode or article on this topic for a while. It's advice I've been giving to my mentoring and corporate clients for years. Let's dive in after a quick plug for this show's sponsor, devBetter.

    Sponsor - devBetter Group Career Coaching for Developers

    If you're not advancing as quickly in your career as you'd like, you may find value in joining a semi-formal career and technical coaching program like devBetter.com. devBetter is a small group of motivated developers meeting every week or two, and staying connected in the meantime via a private Slack community. I answer questions, review code, suggest areas in which to improve, and occasionally assign homework. Interested? Learn more at devBetter.com.

    Show Notes / Transcript

    I've given the advice "if it hurts, do it more often" for years, but in preparing for this episode I did some research on the phrase to see where I might have picked it up. I found a few articles, including a nice one from Martin Fowler, which I've linked from the show notes. I'll describe my own thoughts and how I usually present the concept, and then add in some of the interesting elements Fowler and others expand upon.

    "If it hurts, do it more often." On its face this phrase makes no sense. Putting your hand on a hot stove hurts... so, should you do that more often? Of course not. The advice applies to business and software processes, and the implied context is that whatever "it" is, it's something that you need to do as part of your process. You'll find that a list of painful-but-necessary activities involved in shipping working software includes almost every step of building software. Compiling. Integrating. Deploying. Installing. Debugging. Testing. Pretty much all of these activities are much more difficult and painful if you try and do them rarely compared to if you do them all the time.

    So, if you find yourself looking at your process and making decisions in order to minimize how often you perform some necessary part of your process because it's painful, I'm going to go the other way and say do it MORE OFTEN, not less. There's a scene in the Tom Clancy story Clear and Present Danger in which Jack Ryan is in a briefing with the President, who is having to deal with some scandal involving a friend of his. The President's team are advising him to distance himself from his friend, but Jack speaks up and advises just the opposite. Instead of distancing, go the other way. If the press asks if you're friends, tell them you're LIFELONG friends. Don't give them anywhere to go with it. Everyone is aghast at this advice, but of course the president takes the advice and presumably it works out well for him. I feel just like Jack Ryan when I'm giving the counterintuitive advice of doing things more frequently despite how painful they are. It's only natural to minimize pain, and the obvious approach is avoidance. But this just increases how much pain there is when the task must, eventually be done.

    When you force yourself to perform part of your process more frequently, the pain decreases dramatically. There are several reasons for this. The tasks becomes more familiar, you gain proficiency, you haven't forgotten what you did last time, and there's been less time to add scope and complexity between steps. All of these natural effects of putting less time between repetitions of the task result in less pain. There are also steps that your team will almost certainly take to reduce pain, like automation. If you have a painful task you do twice a year, it's almost certainly not worth automating. The effort involved in automation will only be recovered a couple of times per year. But if you are performing that same task every month, every week, or every day it very quickly starts to make sense to automate the parts of the process that you can. And once it's automated, the pain drops dramatically.

    A client I work with used to have very painful deployments. They would only deploy every month or two, and doing so was always a big source of pain. Many team members would come into the office at 4am on a weekday to get ready for the deployment. The goal was to complete the deployment before customers came into the office that day. There were a lot of QA and dev team heroics. Most of the time, he deployment wouldn't be 100% successful, and often 2-3 or more additional small deployments would be required to address issues that were discovered in production. In discussing this problem, my recommendation was, wait for it, to deploy more often. Nobody really was excited by this notion, least of all the team members who were getting up at 4am for these deployment days. I decided to bet on my recommendation with data. The team didn't have a fixed deployment schedule, so there was enough variability that we could capture some statistics and draw some conclusions. I had the team start tracking the number of days since the last deployment, the number of bugs found post-deployment, and whether the deployment was successful, where success meant that it didn't need rolled back and didn't have any major problems.

    They captured this data, along with trying to deploy a little more frequently, for a number of months. When we reviewed the data, it was clear that there was a direct correlation between failed deployments and number of days between deployments. This made sense, especially when the team reviewed the data and saw that most of the deployments that took place within very small time windows were just fixes to deployments that had just been made earlier that week. These deployments were made during regular business hours because they weren't considered high risk! With this data backing up the recommendation, the team was ready to buy into more frequent deployments. Last year, they doubled the number of deployments they made. It's February as I'm recording this show, and this year they're looking to double that number again, which will require multiple deployments per week.

    Martin Fowler's article on this topic notes that many of these activities have an amount of pain that increases dramatically as a function of time between repetitions. There's an exponential increase in pain as time increases, and this is why it makes sense to increases the frequency of the task. Not all activities will necessarily have this exponential increase in pain relative to time, but if you suspect part of your process does, see if you can boost its frequency. The most obvious cause of this exponential relationship is complexity. Working with large, complex things is exponentially more difficult compared to a series of small, simple things. This is why pull requests should be small and focus on one thing. It's why methods and classes should be small and focused. And it's a reason why parts of your software process should be pipelines working on small changes rather than huge, stressful ordeals that only happen once in a blue moon.

    Incidentally, this same concept is one of the reasons I prefer Kanban to Scrum and other sprint-based processes, but perhaps I'll cover that in another episode.

    Show Resources and Links

    That’s it for this week. If you want to hear more from me, go to ardalis.com/tips to sign up for a free tip in your inbox every Wednesday. I'm also streaming programming topics on twitch.tv/ardalis most Fridays at noon Eastern Time. Thank you for subscribing to Weekly Dev Tips, and I'll see you next week with another great developer tip.

    Logo

    © 2024 Podcastworld. All rights reserved

    Stay up to date

    For any inquiries, please email us at hello@podcastworld.io