searchlore

Back to Resource

All Segments

Explaining Agile - Martin Fowler and Neal Ford at USI

Explaining Agile - Martin Fowler and Neal Ford at USI

31 segments available

Information and subscription on http://www.usievents.com Martin Fowler is an author, speaker, IT specialist and British consultant in the conception of companies’ software. He wrote, in particular, a reference book on refactoring and co-wrote a reference book on projects planning in extreme programming with Kent Beck, creator of the method. He is a member of Agile Alliance and is the co-author of the Manifesto for Agile Software Development. Neal Ford is a software architect at ThoughtWorks. ThoughtWorks is a global IT consultancy company specialized in end-to-end software development and delivery. Neal Ford is also the designer and developer of applications, various materials, articles, videos and author of many books. Martin Fowler and Neal Ford tackle the following question: Why does Agile software development work so well? They provide advice and stress the importance of communication, feedback as a crucial part of software development, the importance of boosting the creativity of developers, and how introspection is essential to continually improving the project. Follow USI on Twitter: https://twitter.com/USIEvents Follow USI on LinkedIn: http://linkd.in/13Ls21Y Subscribe to our channel: http://bit.ly/19sPpSp Twitter: @martinfowler

Segments Timeline

1
0:20 - 1:15
0:55 duration169 words

Understanding Agile: The Why Behind the How

Martin Fowler and Neal Ford introduce the core question of their discussion: why agile software development works effectively. They emphasize the importance of understanding the underlying principles of agile practices, which often seem counterintuitive until experienced. This segment sets the stage for a deeper exploration of agile methodologies and their proven success.

"thank you very much um uh Martin and I are here to talk this morning about why agile software development works not just how because you can uh go out in the world and find a lot of books about agile ..."

2
1:15 - 2:05
0:50 duration150 words

The Evolution of Agile Acceptance

Fowler discusses the changing perception of agile software development over the past decade. Initially met with skepticism, agile has become a mainstream alternative in software development, evidenced by major conferences and certifications. This segment highlights the maturation of agile practices and the challenges of semantic diffusion in understanding its core principles.

"so very very well uh we both work for Thought works and we're a well-known agile software development company and uh We've proven to ourselves for more than a decade that these things work really well..."

3
2:05 - 3:17
1:11 duration205 words

Semantic Diffusion: The Challenge of Agile Misunderstanding

Fowler explains the concept of semantic diffusion, where the original ideas of agile become diluted as they spread. He warns that many organizations practicing agile may not adhere to its foundational principles, leading to ineffective implementations. This segment stresses the importance of revisiting core agile concepts to fully leverage its benefits.

"mainstream alternative and we see major conferences we see certifications we see a lot of these trappings of a more mature approach to developing software but in the course of all of this development ..."

4
3:17 - 4:43
1:26 duration227 words

Planning in Agile vs. Traditional Approaches

Fowler contrasts the predictive planning of traditional software development with the adaptive planning of agile methodologies. He explains how agile embraces changing requirements rather than relying on stable ones, advocating for a flexible approach that allows teams to adjust plans frequently. This segment underscores the shift in mindset necessary for successful agile implementation.

"judge whether it's applicable to their situation now semantic diffusion as I say it's a common problem with many things and and really one of the key things you have to do to deal with it is to just c..."

5
4:43 - 6:00
1:17 duration199 words

The Importance of Stable Requirements

In this segment, Fowler discusses the dependency of traditional software development on stable requirements and the challenges that arise when they are not met. He highlights the common scenario where requirements are unstable and how agile methodologies can address this issue by promoting adaptability and responsiveness to change.

"the idea is that the plan is a prediction of how the work should go and this also very much affects your success criteria because to be successful the measure of success in a plan- driven world is to ..."

6
6:00 - 7:30
1:29 duration236 words

Embracing Change: A Core Agile Principle

Fowler emphasizes the agile principle of viewing changing requirements as an advantage rather than a hindrance. He introduces the concept of adaptive planning, where teams continuously plan and execute in cycles, allowing for frequent adjustments and releases. This segment illustrates how agile practices can lead to more effective software development.

"software projects I ask this question are your requirements stable in fact I'll ask you this question now how many of you are working on software where you've got um requirements that are unstable but..."

7
7:30 - 9:00
1:30 duration250 words

The Shift to Adaptive Planning

Fowler elaborates on the transition from predictive to adaptive planning in agile software development. He explains the necessity of evolving software design and the importance of integrating technical practices that support agile methodologies. This segment highlights the need for organizations to embrace change in both planning and design.

"but it goes a little bit further in this phrase that I really like from Mary pendick what she's saying here of course is that not just should we be tolerant of changes of of requirements we should act..."

8
9:00 - 10:25
1:24 duration243 words

People-Centric Processes in Agile

Fowler discusses the shift from traditional management approaches, where processes dictate how work is done, to a people-centric model in agile. He argues that effective teams should choose their own processes based on their dynamics and needs, emphasizing the importance of flexibility and empowerment in software development.

"planning now one thing I should point out in order to make adaptive planning work you have to change your approach in your thinking towards software design and to come up instead with an evolutionary ..."

9
10:25 - 11:49
1:23 duration225 words

The Role of Communication in Agile Success

In this segment, Fowler introduces the critical role of communication in agile software development. He highlights how effective communication among team members is essential for adapting to changes and ensuring project success. This segment sets the stage for further exploration of agile practices and their impact on team dynamics.

"planning so for the second distinction I want to show this rather old photograph does anybody recognize who this is h no not Ford but you're philosophically very close to him Taylor Taylor yes Frederi..."

10
12:18 - 13:54
1:36 duration249 words

People Over Process: The Agile Mindset

Fowler elaborates on the Agile principle that people are the primary actors in software development, emphasizing that processes should adapt to the team rather than the other way around. He highlights the importance of choosing a process that empowers developers, as rigid processes can stifle creativity and effectiveness.

"now the point of what Alistair is saying here is that we tend because we're computer people to be used to manipulating these highly precise things called computers and plugging them together in fact I..."

11
14:10 - 15:09
0:58 duration151 words

Communication Trumps Technology

In this segment, Fowler stresses the importance of communication in software development, arguing that it often outweighs technological factors in project success. He references the idea that most software project failures stem from people issues rather than technical ones, underscoring the need for effective interpersonal communication.

"works is communication so let's talk a bit about communication as it applies to software development in our world communication trumps technology meaning that we View communication as a more important..."

12
15:09 - 16:58
1:49 duration315 words

Effective Communication Channels

Fowler discusses the most effective ways to communicate technical information, emphasizing face-to-face interactions over written communication. He uses the analogy of communication channels to illustrate how nuanced discussions are best conducted in person, rather than through emails or documents, which can lead to misunderstandings.

"important thing and part of the reason for this is that we are highly social creatures notice that the worst punishment in prison is solitary confinement the worst punishment in prison is being taken ..."

13
17:01 - 18:22
1:20 duration256 words

The Distraction of Remote Communication

Fowler compares the distractions of talking on a cell phone while driving to the challenges of remote communication in software development. He explains how the lack of non-verbal cues in phone conversations can hinder effective communication, reinforcing the Agile value of direct interaction.

"cannot specify enough on paper to allow them to be able to create something and you break that feedback communication loop with those developers who are now isolated many many time zones away now it's..."

14
18:22 - 19:52
1:30 duration263 words

Agile Manifesto: Prioritizing Interaction

Fowler highlights key elements of the Agile Manifesto that prioritize individuals and interactions over processes and tools. He illustrates how this focus on direct communication fosters better collaboration and understanding among team members, which is essential for successful software development.

"value of communication because if you look at the agile Manifesto there are two items on here that specifically call this out out as an important feature individuals and interactions over processes an..."

15
19:52 - 22:11
2:18 duration397 words

Rapid SMS: A Case Study in Agile Communication

Fowler shares a case study from Malawi, where UNICEF implemented the Rapid SMS project to improve communication in healthcare. This example demonstrates how leveraging existing social infrastructures, like cell phones, can enhance feedback loops and timely responses, paralleling Agile principles in software development.

"but part of the problem was that they're collecting all these uh this information this data and on paper and then shipping it to a central office but of course Malawi doesn't have particularly good in..."

16
22:11 - 23:29
1:18 duration211 words

Feedback Loops in Software Development

In this segment, Fowler introduces the concept of feedback loops in Agile software development. He emphasizes the importance of timely feedback in improving processes and outcomes, drawing parallels between effective communication and successful project management.

"they're doing there finding the correct Communication channel was the key to solving this problem and it turns out that that shows up a lot in agile software development as well finding the correct fe..."

17
23:12 - 24:01
0:49 duration130 words

Defined vs. Empirical Processes

In this segment, Fowler elaborates on the distinction between defined and empirical processes in software development. He uses the analogy of baking a fruit cake as a defined process and taking a shower as an empirical process, illustrating how each requires different approaches to feedback and adjustment.

"his story um the other part of this story is taking a shower and typically in a hotel room that you've never been in before so what's the difference between taking a shower in an unknown hotel room an..."

18
24:01 - 25:02
1:01 duration167 words

Choosing the Right Process

Fowler explains the importance of selecting the appropriate process based on the nature of the project. He discusses how defined processes work well in predictable environments, while empirical processes are necessary in situations with unknowns and uncertainties, particularly in software development.

"and controls we have a process that we do and a certain outcome that we expect from the process when we're working in the world of a defined process such as a fruit cake what we do is we understand th..."

19
25:02 - 26:02
1:00 duration161 words

Feedback Loops in Agile

Fowler emphasizes the central role of feedback loops in Agile software development. He discusses how teams at ThoughtWorks implement feedback mechanisms to ensure continuous improvement and adaptability in their projects, highlighting the importance of inspecting outputs and adjusting inputs.

"of the heat of the shower and so what I do is I will run the shower for a bit stick my hand in is that too warm is it too hot adjust the shower appropriately I get in maybe you know it's okay at the b..."

20
26:02 - 27:00
0:58 duration163 words

Visualizing Project Progress

Fowler shares insights on how ThoughtWorks visualizes project progress through physical and electronic card walls. He explains how these tools enhance transparency and collaboration among team members, making project planning accessible to everyone involved.

"interactions with process Engineers from the chemical industry um originally Ken had been a developer of software to support traditional approaches he had clients like Cooper and liebrand who he would..."

21
27:00 - 28:00
1:00 duration154 words

The Role of Build Systems

In this segment, Fowler discusses the significance of build systems in Agile development. He highlights how continuous integration and build status indicators serve as feedback loops, allowing teams to monitor the health of their software and ensure it meets production standards.

"dangerous instead you have to choose an empirical process and this of course is how it notion to software in software as I mentioned earlier on we have all of these unpredictable nonlinear components ..."

22
28:00 - 29:00
1:00 duration161 words

Using Feedback for Quality Assurance

Fowler explains the importance of testing as a feedback loop in Agile software development. He describes how teams implement various testing strategies, from unit tests to acceptance tests, to ensure software quality and maintain a constant feedback mechanism throughout the development process.

"to mention um a few of them so to illustrate one of them I'm going to show you our office building in Beijing we only have one floor of this office and the interesting thing is that you can tell from ..."

23
29:00 - 30:00
1:00 duration178 words

Open Source Contributions

Fowler discusses ThoughtWorks' commitment to open-source contributions, particularly in developing tools that support Agile methodologies. He emphasizes the importance of sharing resources and knowledge within the software development community to foster innovation and improvement.

"project various tasks that we need to carry out um captured as user stories will be stuck up on the wall and that position on the wall indicates how far we are have we decided to start work on them ye..."

24
30:00 - 31:00
1:00 duration165 words

Collaborative Tools in Agile

Fowler highlights the use of collaborative tools in Agile projects, particularly in remote settings. He discusses how electronic card walls and project management tools facilitate communication and collaboration among distributed teams, ensuring everyone stays aligned on project goals.

"was something very complicated and something that most developers on the team didn't care to want to understand and they knew it was all fiction anyway but with a an agile project you want everybody t..."

25
31:00 - 32:00
1:00 duration152 words

Continuous Integration Practices

Fowler elaborates on the practices surrounding continuous integration in Agile software development. He discusses the importance of maintaining a clear view of project builds and the role of feedback loops in ensuring that software remains functional and meets quality standards.

"able to see the card wall everywhere that matters and so we have an electronic card wall but mimics the physical one that we use when we're all together as a team most teams will prefer a physical car..."

26
32:38 - 33:40
1:02 duration194 words

The Importance of Build Status

Martin Fowler discusses the significance of monitoring the build status in Agile software development. He introduces the CC board tool, which provides a visual representation of multiple builds, indicating their success or failure. This feedback loop is crucial for maintaining the health of the software and ensuring that the team can respond quickly to issues.

"one here we're using something that is a more computerized display but again this notion of where are we in the process and so that when the build breaks everybody can tell and everybody can do someth..."

27
33:40 - 34:44
1:04 duration193 words

Open Source Tools for Agile

Fowler highlights ThoughtWorks' commitment to open-source tools that support Agile practices, such as continuous integration and testing frameworks. He emphasizes the role of these tools in facilitating effective Agile software development and maintaining high software quality through constant feedback and testing.

"other people can take advantage of it and thoughtworks as a company has a very long history of open sourcing these infrastructural elements to help support agile software development like continuous i..."

28
34:44 - 35:51
1:07 duration195 words

Feedback Loops in Software Development

In this segment, Fowler elaborates on the concept of feedback loops in Agile software development. He explains how continuous testing, from unit tests to acceptance tests, creates a constant feedback mechanism that ensures software quality and appropriateness throughout the project lifecycle.

"quality of what we have and we do this right from the beginning of the project so we have a constant feedback loop as to the quality of the software and whether it's appropriate enough and that again ..."

29
35:51 - 36:34
0:42 duration118 words

Pair Programming: A Collaborative Approach

Fowler introduces the concept of pair programming, a practice that fosters collaboration among developers. He notes its controversial beginnings and discusses its effectiveness in enhancing software development by combining the strengths of two programmers working together.

"now have used widely at forw Works pair programming is very controversial early on and now we use it very heavily there are many reasons why it's effective but um to illustrate one of them I would lik..."

30
36:34 - 39:00
2:25 duration399 words

The Brain's Role in Pair Programming

Fowler draws an analogy between pair programming and the brain's dual processing capabilities. He explains how the 'driver' and 'navigator' roles in pair programming allow for a more holistic approach to problem-solving, leveraging both logical and creative thinking to enhance software development.

"particularly like about this shot is that it is the vegetable garden it is a working vegetable garden and the vegetables are used um in the restaurant at the Chateau um and yet at the same time they a..."

31
39:00 - 42:54
3:54 duration659 words

Continuous Improvement in Agile

In this segment, Fowler discusses the philosophy of continuous improvement in Agile software development. He references Kent Beck's quote about perfection being a constant pursuit and emphasizes the importance of regular retrospectives for teams to evaluate and refine their processes, ensuring that they adapt and improve over time.

"music um this kind of way of thinking about the brain of course is very common um one book that I very much recommend if you're interested in in thinking about how the brain works in terms of software..."