Starbucks Simple Payroll System

Next week, the Software Engineering one month course I am teaching will end. Overall, I am happy to see the progress of my students. They have improved much in their programming skills. Their assignment title is “Starbucks Simple Payroll System”. While they are doing their assignment, I also do a sample version for them. So, just to print screen some here.

Some sample documentation I created for students are reference:

Demo version –

For more info or if you also wish to learn how to develop a simple payroll system like this, feel free to contact me. That’s all for today 🙂

My Software Development Principles

Everyone has his/her own working principles and these are some of mine. These principles are the main one I always focus in my software or website development. Well, just some of my principles 🙂

For me, this means the system is easy to use or user-friendly. This includes good navigation link, consistency, correct usage of font size, font color and font family. My role model of this principle is Jakob Nielsen, the king of usability.

For me, means no redundant code. Clean code gives me 2 main benefits. First, smaller file size which helps web page to load faster and save up bandwidth. Secondly, it helps me to maintain it better because I know exactly the usage of every single code. My entire, only has less than 40Kb 🙂

Easy maintenance
During every stage of the development, I always try to make the system as easy to maintain as possible. One of the way is to modularize those same code. I know if I don’t put extra effort to make sure the system is easy to maintain, I will sure have much nightmare debugging or when there is a need for future enhancement.

The BIG Dilemma – Should I re-build the good old house?

One of the biggest consideration and dilemma as a software engineer is, should I re-design the system design and clean up the source code or not?


Here is a classic scenario as illustration purpose.

If Mutu’s source code is well designed and clean, Sally is considered lucky to pick up his role to continue and maintain his source code. Otherwise, it will be a nightmare for Sally to try to figure out his design and the dilemma on whether to clean up his source code. Why dilemma to re-design/revamp the system? Cleaning up code is good provided you are well-verse with the entire system design. The main benefit of a clean, organized and well-design system is maintainability. Although I don’t consider myself a talented software engineer, developing a well-maintained source code is one of my principles. I would rather spend a little more time to make the source code more maintainable, so that I don’t have to have sleepless night and headache troubleshooting bugs and for future enhancement.

But, for a large and critical system whereby there were many software engineers have ‘touch’ on the source code, usually new software engineer will opt to take the safer path by not making any unnecessarily big changes, be it to clean the source code or to re-design the system. Re-design the system can cause big impact to the entire system and highly susceptible to bugs too. Much effort is needed also to re-test the new re-vamped version.

Invalid jdkhome specified – Cannot locate java installation in specified jdkhome:

You click the NetBeans IDE shortcut and got a message like below:

This is due NetBeans cannot locate java installation in specified jdkhome: C:Program FilesJavajdk1.6.0_22
Most probably you initially installed JDK at the default location above and then you uninstall it and reinstall to another location.

Anyway, to fix this, all you need to do is just go to find netbeans.conf from where you installed your NetBeans. For me, I have it at C:Program FilesNetBeans 6.9.1etc

Once found, open the file and look for something like below:

netbeans_jdkhome=”C:Program FilesJavajdk1.6.0_22″

Then, change the above to the valid path, example


That’s it!