Yesterday evening we had a company session on the how and what of Scrum.
Scrum is an agile methodology and assumes that the software development process is complicated and unpredictable and treats it as a controlled black box instead of a theoretical, fully defined process. This is one of the biggest differences between Scrum and the Waterfall and Spiral methodologies, which view the software development process as a fully defined process.
Important problems with the Waterfall and Spiral methodologies are:
- Requirements are not fully understood at the beginning of the process.
- Requirements change during the process.
One of the first sheets contained these interesting (but questionable) numbers:
- Up to 35% of the requirements are subject to change in a typical project
- Up to 60% of the implemented features will not be used after delivery (wow?)
Scrum naturally focuses an entire organization on building successful products. Without major changes (often within thirty days) teams are building useful, demonstrable product functionality. Scrum can be implemented at the beginning of a project or in the middle of a project or product development effort that is in trouble.
The concept of working in iterations (an iteration is called ‘sprint’ in Scrum) isn’t new at all, but delivering a working, fully documented and tested product at the end of each iteration is a small innovation.
After the presentation we had a discussion on the feasibility of using Scrum for projects managed by Finalist, most people where quite enthusiastic. But some good questions where asked:
- How do you sell a project without a fixed budget?
- How do you manage dependencies between different projects?
- Does Scrum work when the team is changed often?
- Is working without up-front design feasible for all sorts of projects?
Although we didn’t solve all those problems the general feeling was that the Scrum approach to development yields higher quality software which better fits the needs of the customer. Now we’ll just have to find a way to get the customer to think the same!
More information on scrum can be found here:
We are now starting a world wide project where NO requirements are known beforehand. The IT team needs to prepare for maximum agility. SOA is assumed to be part of the solution. May be we need Scrum?
And I use far less than 40% of the functions available on my PC. I would guess 5%.
The presenter actually mentioned Philips as one of the bigger corporations already successfully implementing Scrum…. so basic insights in the methodology should be present somewhere
As for the percentage, I find it very hard to determine such statistics… since ‘using’ often only focuses on functional and visible elements: most plumbing, cross-functionality and dependencies are extremely difficult to take into account but are unmissable parts to operate the 5% you use!
Everything is done somewhere in Philips. Vendors are very good at referencing.
But admittedly I can’t speak for the embedded (in-product) software activities, but just for the business information systems in use in the company.
Blog broken
Well, when I posted I was asked to input a number of characters which where not shown!
Try again!
Aha, so we are doing Scrum?
Quite possible this happens in embedded software development.
On percentage: I meant 5% of functionality, not so much number of bytes used. But even then I think the percentage is really low. Could I install a code profiler to tell?
Kind-a-Captcha
Please type the code below in the input field and click on Submit (characters can only be letters from A to F and digits from 0 to 9).
captcha_img
This is what I saw two times now when entering real comments. Now give up.
Kind-a-Captcha
Please type the code below in the input field and click on Submit (characters can only be letters from A to F and digits from 0 to 9).
captcha_img
I know a couple of profilers for Java applications which do tell how often a specific method is called but the profiling statistics ordinarily don’t tell anything about code which wasn’t actually executed… I think it should be possible to determine which code isn’t used at all… maybe I should have look at it, might be interesting
Still, since Java is executed in a virtual machine the application wouldn’t probably even use 1% of the virtual machine… and I assume that the number for something like visual basic are quite similar.
I think your comments are still broken?