Ivar Jacobson is one of the architects of Rational Unified Process (RUP) and use cases and all that stuff. He gave a keynote talk at Devoxx on the state of the software engineering profession. His opening line was ‘Everyone knows how to develop software, but as an industry we don’t’ which is a good line to start to a conference full of developers. His set up was
Fashions - our industry follows fashions, how often do we do a project the same way as one previously. Obviously some clients prefer to work in certain ways, but having worked on three major projects recently, they have all done things in different ways. We’ve gone from OO through components through UML through Unified Process, RUP, CIMMI, 3 years ago XP, now scrum is the flavour of the month. He gave an example of meeting someone who’s business card had Phd and Certified Scrum master on it. How can you compare a two day course without any kind of test and 3+ years of research and writing! He wasn’t knocking scrum in it self, but the way in which methodologies seem to change whenever the wind blows.
Industry v Academic - there is often a big difference between what happens in academia and industry. Lots of great research goes knowhere and lots of practical experience doesn’t feed back in to our researchers. Seem to be playing different games. Then when you add ‘methodlogists’ in to the mix, it gets even more confusing.
Methods - there are a huge number of methods, we re-invent the wheel, every methodology is a soup of new ideas, usually including one or two new ones. If you look at scrum, it isn’t all new, but just a new way of mixing it up.
Learn from others mistakes - why, when we can blunder on ourselves!
We need a theory, a foundation of software engineering. We are hampered by a multitude of immature practices. The differences between them are little understood. There is a lack of creditable experimental evaluation.
SEMAT - a process to ‘re-found’ software engineering based on a solid theory, proven principles and best practices. A kernel of widely agreed elements, addressing humans and technology, supported by acadameia, researchers, users and the industry. A theory which supports extension.
Enough processes, more practices. Practice has things to do, to produce, people with competencies, using common patterns. We don’t need branded methodologies, the kernel should be practice agnostic.
identify kernel and own best practices then you can pull practices from other sources. Many companies throw out the good with the bad, so they junk everything and then pick up ‘Scrum’ as a whole. Good to adopt new practices one at a time, rather than wholesale adoption.
‘There is nothing as practical as a good theory’