Due to the widespread interest, gambling, and other impermissible factors found in businesses, a Muslim must exercise caution to ensure that he is not involved in these haram acts nor is he assisting others in it. Types of Assistance in Sin:
There are two categories of assistance in sin: 1. Assist in the actual sin itself 2. Be a means to bring about the sin. We will look at each of the two ways and their rulings separately.
Assisting in the Actual Sin: This is of three categories: 1. The person intends to assist in the sin. a. For example, selling grape juice with the intention that the buyer will make wine from it 2. The sin is clearly mentioned in the transaction a. For example, selling grape juice to someone who mentions his intention of making wine from it 3. The person sells something which has no other purpose except sin a. For example, selling musical instruments. All three categories of such assistance in sin are haram. At the time of the transaction, there is no doubt that sin will be committed as the person either intends the sin himself or he knows of the other person's sin due to his mentioning it or due to the fact that the transaction has no real halal purpose.
Even though a person may not assist in the sin itself, he may still be a means for the sin to take place. 1. Direct means such that if it had not been for this person, the sin would not have been committed a. For example, insulting the deities of another person and, thus, causing him to insult god. Had this person not insulted the other person's deity, he would not have insulted Allah. The same applies to insulting someone else's parents. 2. Means such that it directly helps the sinner achieve the sinful act. a. For example, bringing alcohol to someone who wants to drink it or bringing a sword to someone who wants to kill unjustly. Even though this act itself did not bring about the sin, however, it directly helped the sinner to commit the sin. 3. Distant, indirect means. a. For example, selling grapes to someone who will use it to make wine or selling wood to someone who will use it to build a church. Assisting in the sin itself is haram, whereas being a means for the sin is strongly discouraged. In terms of practice, both of these types are completely impermissible, regardless of whether the person had a sinful intention or not. As for being an indirect means of sin, if the person knew that the sin would be committed, then it is undesirable. However, if the person did not know that the sin would be committed at the time of the transaction, but rather only learned of it later, then one will be excused.
Conclusion: After understanding the above mentioned categories of assistance in sin, each person must now analyze their dealings and see if their actions fall in any of these categories. In regards to your question on developing and maintaining banking software, the answer depends on the functionality of the software. If the software is developed to calculate and charge interest such that it has no other purpose, then it would constitute assisting in the actual sin itself and would, therefore, be impermissible. However, if the software has several functions, one of which is the calculation of interest which the bank uses to pay or charge the customer, then it would be a direct means for the sin to come about and, thus, impermissible. Finally, if the software is not meant to calculate interest, but rather the bank uses the functions of the software to calculate interest, then this would be permissible, but disliked if the person knows that the bank will use it for this purpose, since this is an indirect and distant means for the sin to occur.