The Build IT Right in-conversation-with series caught up with Dave Farley. Ahead of his keynote talk, we spoke to Farley about his own experiences and what is next…
What is your current role?
I am an independent software consultant. I advise organisations on how to improve their software development practices.
What does Building IT Right mean to you?
The idea that immediately springs to my mind is “Build Quality In”. This lean/Continuous Delivery principle is about investing time and effort to do every piece of work with quality. Make the code as clean as you can, make it as simple as you can, meet the smallest need of your users that you can, and do it effectively. This strategy allows us to move forward with increased, and increasing, confidence.
To do this “Right” takes a lot! We have to work collaboratively so that we can better understand what is “good” (high quality) work. We have to be experimental, try out new ideas in small steps and be disciplined. We have to agree what it takes for our team to do good work and stick to that until we find a better way to do it.
Why should Build IT Right visitors attend your talk?
I think that a keynote talk should pose some questions. It should make you think, or at least challenge your existing thinking. I hope to do some of that.
My talk is about the broad topic of “Software Engineering”. Throughout the history of our industry, we have had a variety of attempts to define what Software Engineering means. On the whole I don’t think that these attempts have worked. I wonder if it is time for another attempt. Clearly though, given the history, it needs to be different to previous attempts.
Here is a challenging thought: If we were to attempt to establish the “ground-rules” for our profession, can you imagine the definitions of ”Software Engineering” that will still be true in 100 years’ time? If not they can’t really form the basis of our work; they will be “fashion” rather than “engineering”.
“Why does this matter?”. Without some agreement on what is good, and what is not, it is impossible for us to make any progress. Some ideas are good, some are bad and some we don’t know. Where we know the answers, it makes sense to agree on the good things and stop doing the bad things. Where we don’t know, we need some form of “scale” of “what works” and “what doesn’t”. Any attempt to improve in the absence of such a scale is only a matter of guesswork and opinion.
Come and find out what I am talking about!
What innovations in the industry impress you the most?
I like the “big steps”; the ideas that transform how we think about software development. GUI, OO, the Internet, the Cloud, Agile Development, Continuous Delivery, the extraordinary explosive growth in hardware speed and capacity. I am looking forward to the next big steps - Massive-scale non-volatile RAM and a clean separation of accidental and essential complexity in programming.
What do you think will be the next big thing in software?
Almost certainly something that I have no idea about.
I think that what SHOULD be the next big thing is to find better ways of designing systems that allow us to focus more on what the system should be doing, and less on the technicalities of running these solutions on a computer. I have some ideas of what that might look like and I am aware of some people looking into it. It is, as one of my friends tweeted recently, “The right problem to solve” because it is the kind of thing that could give us a 10x or greater improvement in productivity - and we don’t see 10x in software.
Farley will be presenting at Build IT Right on Thursday 4th April at 9.15am