As most developers I hate to spent a lot of time making UML design or flow charts, let alone use cases. These things take a lot of time to make. To make it worse the application never gets created the way you designed it.
Having said that I do believe it’s important to design some stuff. Let me tell you the hard lessons that you will learn by not designing.
- You will find that the application is very hard to maintain and bugs are introduced very easily.
- You will fuck up the users experience,
users don’t like software that does not work the way they expect it. Which is something proper design makes sure of.
It’s a fine line between doing to much design or to little. If you design to much at once you will limit or even block creative development. But do to little of it and your users will not be able to use the product or it will contain to many bugs.
I usually stick to the following rule: ‘Design your software up to the point that you know what it does and how it’s going to do that!’. Might sound a bit vague, but it’s easy.
I always want to know how users will flow through the program, makes designing the interface a lot easier! The next thing to know is how to get the messages across. If you have a failure how do you communicate it? Last thing I always like to do is find all things that may go wrong and catch those in advance.
Good example of that is when a user exceeds a value. Do you want a message like:
Internal system error: Integer parse error on fn_Value
Or something that the user could relate to like:
Please correct the speed, the current value is not between 0 and 30.
You may think it has nothing to do with initial design, but that’s where you’re wrong. This should have been part of the use case for changing the speed! Let me know what you like to do when designing a project.
That’s it for today….