Wednesday, January 15, 2014

Neal Ford on Agile Engineering Practices, by Neal Ford, O'Reilly Media

Neal is Director, Software Architect and Meme Wrangler at ThoughtWorks. He has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis. He is the author of several books.

Most available sources about Agile Software Development won't mention software development (engineering practice) that much. Mostly the available Books talk about the Agile process itself. This Video fills this gap since it is mainly about the engineering practice for Agile development. Neal tries to explain why those practices works so that developers can better understand them.

During the Workshop Neal talks about the following topics and explains why these are important for Agile Software Development:

  • metrics,
  • (short) feedback loops, (like TDD)
  • Automation,
  • time and space (where space means the code)
  • communication,
  • counter-intuitive, (none intuitivity),
  • demonstration trumps discussion

This Video covers the most important topics in an Agile process form the developer point of view.
He starts with the estimation process in Agile Software Development and explains how estimation in an Agile Team works and what is different compared to e. g. the Waterfall process. He explains Test Driven Development (TDD) and Testing (integration testing) in general, starting from the simple basics of TDD up to Test Driven Design and Agile Design. Neil explains parts of the SOLID (Single responsibility, Open-closed, Liskov substitution, Interface Segregation, Dependency inversion) and DRY (Don't Repeat Yourself) design principles and shows small examples for these principles and why these design principles are important. He shows why automation (including Continuous Integration and Continuous Deployment) is important in an Agile process and what developers could and should automate. And of course he talks about the benefits of Pair Programming and why it won't slow down the productivity of an Agile Team.

If you are new to Agile Software Development this Video is a perfect starting point to Agile Software Development. Even if you are working in a Company that uses Agile Processes (like SCRUM) I think you can get some new ideas on some topics. Most of the source code examples in the Video are in Java but they aren't really language dependent.

You can find more information here.

No comments:

Post a Comment