Being the programmer for an SMS program, I can say software can’t really do too much, but the ‘much’ can get in the way if you’re not careful. When developing software, the first thing you do is create a simple program that is easy to use. Of course as time goes by, and you get dozens of requests for this feature and that, it is easy to clutter up the program and make these new ‘features’ get in the way of the program itself.
So, what I do is make many features optional that you can turn on or off, so if you don’t need them, they’re not in the way. There are other ways of keeping the software simple yet allowing for complexity when you need it. It’s a bit of an art really. It makes it harder to write the software, but much easier on the end user.