Many developers aspire to use functional programming, either directly in a functional language or by adopting a more functional style in hybrid and non-functional languages. There are many benefits to a functional approach, but there also many cases where day-to-day programming habits are contrary to functional thinking or where language constructs are at odds with the functional paradigm. This talk explores non-functional practices that developers may not realise they are using and, in a number of languages, shows how to express them in a more functional way.
Velocity. Sprints. More points, more speed.
An obsession with speed often overtakes the core values of agile software development. It's not just development of software; it's development of working software. Sprints are not about sprinting; they're about sustainable pace. Time to market is less important than time in market.
Full-stack development is normally a statement about technology, but it also applies to individuals and interactions. The full stack touches both the code and the world outside the code, and with that view comes responsibility and pause for thought. Doing the wrong thing smarter is not smart. The point of a team is its group intelligence not its numbers. Is scaling up the challenge, or is scaling down the real challenge?
The distraction and misuse of speed, velocity, point-based systems, time, team size, scale, etc. is not the accelerant of agile development. Agility lies in experimentation, responsiveness and team intelligence.
Kevlin Henney is an independent consultant, speaker, writer and trainer. His development interests are in programming, people and practice. He has been a columnist for a number of magazines and sites, has contributed to both open- and closed-source software (sometimes unintentionally), and has been on far too many committees (it has been said that "a committee is a cul-de-sac down which ideas are lured and then quietly strangled"). He is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know and co-editor of 97 Things Every Java Programmer Should Know.