How to Spot FAKE AGILE - 7 Strategies

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what makes a software development project waterfall and what makes it agile different people answer this question quite differently for a lot of people agile is about having daily standup meetings and working in twoe Sprints for others agile is about doing all of the practices from scrum lean and extreme programming so which one is right I say that it's a Continuum and we get better at doing agile through time here are seven strategies for vanquishing waterfall software development and becoming more agile number one replace requirements with stories up to half of all development time and effort goes into creating and interpreting requirements they cause nearly half of all defects in software according to an Nast study when we replace written requirements with a product owner who is a subject matter expert that the team can go to and talk to as their building features development can become far more efficient we know that face-to-face conversations are the best way to communicate and so we're leveraging that when we do Agile software development number two integrate continuously building features in iterations isn't really enough unless you validate those features as you build them taking a task to 99% completion isn't what agile is all about we have to fully integrate features into our working system and make it supportable in order for it to be considered done more than anything else continuous integration is the best first step towards realizing the benefits of agility by creating an infrastructure for doing development correctly number three do test First Development getting a task done also means automating its validation process by having good unit tests for it the best way to do this is by doing test First Development well-written unit tests help us refactor and give us regression automatically but the main benefit of doing test First Development is to drive us to write more focused testable code number four automate validation of release candidates a major goal of doing tdd and continuous integration is the automation of the validation for release candidates this usually involves writing more tests than we got from doing test R development there are many forms of testing and QA all of the testing required to validate a release candidate should be fully automated so that no human intervention is required if you do this one thing you'll start to realize huge benefits from agility and save a lot more money during releasing and updating software than virtually any other thing that you could do number five build smaller if a feature is too big then break it down into smaller tasks ideally we'd like tasks to have some value to the user or be part of some acceptance criteria but failing that as long as it produces some observable results then is probably at the right size smaller is better when doing software development number six shorten feedback Cycles the smaller you build the more frequently you'll get feedback on what you build there are many kinds of feedback Cycles in software development our Sprints our daily standups our retrospectives demos Etc there's a lot of people who write about these feedback cycles for me the most important feedback cycle in agile is the feedback that we get from our build a fast one build with good automated unit tests give developers instant feedback on their approach and if it's a good one if there are any defects and they don't have to wait for QA to tell them weeks later they can immediately find and fix defects once recognized developers depend on the feedback from their build and their productivity skyrockets number seven adopt Other Extreme programming practices there are many other very important aspects of developing software in my experience these strategies are the highest value ones and should be implemented first however they don't solve all problems nothing does the other practices from extreme programming lean and scrum can help with many other challenges that we Face When developing software agility includes several lightweight methodologies designed to replace heavyweight processes found in waterfall agile is more than building iteratively and having standup meetings the real difference between agile and waterfall is limiting your work in progress by taking tasks to completion and integrating them as they are being built using test automation these things are easier said than done for most teams but for most development projects these are also the highest value things that teams can do until next time happy coding
Info
Channel: The Passionate Programmer
Views: 595
Rating: undefined out of 5
Keywords: agile software development, waterfall vs agile, continuous integration, test-first development, software development strategies, Extreme Programming, Scrum, Lean, automating validation, feedback cycles, software development best practices, agile transformation, David Scott Bernstein, improving software quality, agile methodologies, incremental development
Id: LAVQ4q7vIx8
Channel Id: undefined
Length: 5min 29sec (329 seconds)
Published: Tue Jun 25 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.