I was recently looking at Scrum, otherwise known as agile software development, and it got me into thinking if Scrum is a right fit for development of big systems.
Reason for my worry? Instead of providing complete, detailed descriptions of how everything is to be done on the project, much is left up to the software development team. Therefore, there is a complete reliance on the software development team doing the right thing.
However so far with my experience in dealing with software development teams, it is quite difficult to totally rely on them in doing the right thing. Let me explain. Scrum relies on a self-organizing, cross-functional team and there is no overall team leader who decides which person will do which task or how a problem will be solved. The scrum team is cross-functional so that everyone necessary to take a feature from idea to implementation is involved.
That is where I think there is an issue for big systems. Software development is not a one time job. Look at Windows XP. Over 10 years have passed and people still use it, and as a result people will still need to maintain it. Just imagine. If you do not have someone controlling the overall architecture of the software development, how will someone come in to maintain the "spaghetti code"? Without a central person controlling this architecture, anyone who comes into the team maintaining this code will have to take time to understand the structure. The worst part is that you may be taking over codes that were previously handled by 2 or more people. Sounds like a recipe for creating bugs? You bet.
Scrum has been touted by some as an increase in productivity. However in the long run, you may be better off having someone controlling the overall architecture because you do not want to waste your engineers' time in understanding the different styles of coding in one single system. If you have a consistent software development architecture, anyone can just come in and hit the ground running. It will also be easier to spot bugs before the customers find them.
It also seems like software development has taken a back seat and the level of skills that I'm seeing now is not as before. This is especially dangerous if you're doing scrum development because you will never know if the software module is truly finish. You may spend even more time trying to find that bug due to the inconsistent style of coding.
Scrum is a good idea but it needs a very capable development team. Not very common nowadays. Pity.
No comments:
Post a Comment