Business Processes

In building business applications, a developer is endeavoring to model or support a business process. With large applications, the job of identifying and then analyzing the business process is usually carried out by a different person or team than those who write and develop the resultant application. With small business applications, this is less likely to be the case. Either, the size of the project or the team working on the application, prohibits the use of specialists to study the business process.

Therefore, to realize the maximum potential for small business application development, it is usually the case that the developer will also need to take on the role of analyzing the business process. It may even be the case that to keep up a supply of new work, the developer themselves will need to identify potential new projects and development opportunities.

The key skill to being able to identify opportunities for new applications is an understanding of how businesses work. In fact, I would go so far as to say that once you are reasonably competent at building applications, time spent studying business processes is more important to a small application developer, than perfecting coding skills.

I would highly recommend that anyone wanting to make a career in this field takes time to study business processes. Two of the most valuable courses I have taken part in recently were on business management and management accounts. The skills and knowledge gained during those courses has made me much more successful at identifying the best opportunities to improve business processes. Since completing those courses, I am confident that I now make more successful applications.

To Be Successful, Build Successful Business Applications

What is it that makes a business application successful? The answer is simple: an application that generates profit.

Forget clever design, efficient use of processors, elegant interface. All of these are desirable, but if your applications do not provide a demonstrable benefit to the business, you might as well have stayed at home. The benefits that all businesses need are those that improve the bottom line: they increase profits. There is no better hook to catch the interest of people who will pay you to create applications for them, than for you to demonstrate that you can increase their profits.

So, how do small applications generate profit? There are three ways to generate more profit within a business:

  • Increase sales by either increasing the number of sales or increasing the revenue from each sale (or less easily, both).
  • Reduce what it costs you to sell.
  • Spend as little as you can on the parts of the business that generate the least profit, and minimize any resources given over to loss making activities.

Business applications can address all of these profit opportunities. For example, when we choose an elegant programming framework like Rail to create business applications, to be successful we do so because:

  • It allows us to create applications more quickly and therefore increase the number of applications we can produce at the same cost.
  • The resulting code is easy to maintain, so it costs us less to support the application.
  • The framework conventions allow us to spend more time on the aspects of the application that are unique to the project, and spend minimal time on the less productive routine tasks.

If you ask most people how a business increases profits, they will usually reply that the business increases sales. However, it is usually far easier to increase profits by reducing costs and minimizing the time spent on loss making activities. It is in these areas that most opportunities for small business applications arise.

A full insight into business processes is beyond the scope of this book; it is a large area of study. Instead, below are a number of examples of areas where opportunities for small applications commonly arise.

Automate Simple Repetitive Jobs

A simple way to reduce costs is to reduce the time it takes to carry out repetitive tasks. One of my most successful applications is an Excel macro. A colleague was processing the output from a series of data loggers. This output was in the form of comma-delimited text files. He had to open each one, carry out some processing to normalize the data, and then reformat it to create a graphical report. The process took him a couple of hours for each set of data (the data was broken down into many subsections and each had to be normalized separately). It took me a few hours to write an Excel VBA macro that would input the data, normalize it, and reformat it for the graphical report. The result was that a process that had taken a couple of hours manually could be completed in a second or two. The macro was written five

years ago and is still in constant use—perhaps two or three times a week. That single, simple application has saved hundreds of hours of work, thereby freeing up my colleague to do more revenue generating work than he previously had the time to do.

Rapid and Detailed Reporting

Rapid: One of the main difficulties in managing a business is the speed at which information on current activities becomes available. It is common for a business not to know the full cost of a project until after the project has completed and long after the time when there was any opportunity to address any excess in expenditure. Also, that information may become available in a central accounting department reasonably rapidly, but take some time to filter down to the people who could use that information to improve the way they work.

Therefore, applications that gather and analyze cost information rapidly and present it in easy to understand and relevant reports are a boon to any business. They allow managers to identify where the costs are being generated and react in time to cut down costs spent on non-profit making activities, and divert resources to successful parts of the business.

Detailed: It is a common mistake of unsuccessful small businesses not to analyze their costs properly and repeatedly sell their services too cheaply. In this situation, a common trap is to think that all that is needed to correct the situation is to work harder. Sales teams try harder to sell more of the same loss making services and people work longer hours to satisfy the extra orders. The result is a lot of people working very hard to make a loss!

Often, it is not a lack of effort that puts a company out of business. They fail because they do not have the information available that tells them their costs have in fact outstripped the revenue their activity raises.

A time-sheet system is a typical application that addresses these types of problem. Imagine a paper based time-sheet system whereby sheets are submitted at the end of each week or month. All these sheets then have to be approved by supervisors before being passed to a clerk to input into a central system where the data on the sheets can be analyzed. This process takes days. Reports can themselves take time to generate. The result can be that the reports, on time spent on a project, reach the managers weeks after the time was actually committed. Also, because of the effort required in processing these time-sheets, the level of details is often reduced to simplify the process. However, this makes the system less useful and can lead to over-sights into areas where resources are being wasted. This type of paper based time-sheet system is not uncommon in small businesses.

An online time-sheet system can allow an employee to submit time-sheet information soon after they have carried out the work. As soon as the data has been submitted, the data is available to analyze. A central database system can analyze varied data very rapidly, so more detailed information can be gathered. Managers can have reports on activity within days, if not hours, of it happening and can use that information to improve the way their current activities are developing. In that way, they can use the resources intelligently to maximize profits.

Ensure Customers Pay for the Goods and Services that the Business Provides

When people think of customers obtaining goods without paying for them, their first thought is usually theft. Unfortunately, over-sight is a far easier way for customers to obtain goods or services without paying for them. The project manager who forgets to sign off a project as complete, the well intentioned technician who upgrades one part of a customer's system while repairing another, the accountant who puts an instruction to invoice in their "completed" tray instead of their "to-do" tray, the warehouse worker who puts two items in a carton when there should have been only one. All of these can lead to a customer receiving goods for free and the effect is that the total cost of getting the goods to the customer becomes a loss to the business. Such over-sights are very expensive to a business.

Therefore, systems are required that track orders for goods and services, and the paths of items through the business. Reports on completion, and more importantly lack of completion, of each sale are important to every successful business. For example, a sales process system can track a sale from the initial order right through to payment of invoice. It can provide reports on the status of all items and highlight orders that have not yet been invoiced. Such a system would help minimize the likelihood that customers receive goods without paying for them.

Review of Business Activity Examples

The examples above are just three areas where business activity can be enhanced with the addition of small applications. As I stated at the start of this section, this is not a comprehensive list or set of descriptions, but rather examples that demonstrate there are many areas where small applications can benefit a business.

My key point is that all businesses have systems and processes that can be improved, and we as application developers have the tools to make those improvements. Yet, as you complete this book, you may be surprised to find there is not a queue of business leaders beating at your door. Every town has a multitude of businesses. If each has processes that can be improved with the addition of small applications, why are business managers not scrambling for your services? In my experience, the answer is simple; managers often do not understand the capabilities of simple computer applications and fail to recognize their potential benefits.

Therefore, as a small application developer we have two choices: either to wait for the relatively small number of opportunities that others will bring to us; or actively go out and identify the multitude of opportunities that can be found within any business.

Note

Small business applications do not come to he who waits

If you wish to work full time on small business applications, you cannot rely on others to bring you new projects. You need to develop the skills to identify opportunities for new applications. To do that successfully and repeatedly, you must learn to identify business processes that can be simplified, made more effective, and/or efficient via a small application.

Dealing with Success

Unfortunately, there is a flip side (why are things never easy). Once we develop the skills to identify the potential areas where the applications will improve the way a business works, the problem can become one of the volume and time available. There can be just too many applications for a small team to develop. In addition to this, once senior managers start to realize the benefits our applications provide, the pressure to provide even more solutions in shorter time scales can become almost oppressive.

In many ways, being a successful developer in demand is a good position to be in, but it does bring its own problems. Here are a few strategies to help in this situation:

Just Because You Can, Doesn't Mean You Should

I expect that you got into application development because you enjoy it and find it rewarding. That is certainly why I develop applications. However, the desire to develop, and one's own pride in the work we do can lead to developers taking on projects that they do not have the time or resources to complete satisfactorily. This is especially the case for larger projects or in periods when the demand is high. In such cases, a better option is to buy an off-the-shelf solution. Also, there is no point in reinventing the wheel—if an application is readily available that will satisfy the requirement and is within budget, it is almost always a mistake to develop your own solution instead, unless you have a very good reason to do so.

Therefore, when we identify a potential new project, we should always ask the question "Is there an application readily available that would satisfy the project requirements?" If we identify such an application, we then need to analyze the costs and benefits of using that application, then compare those with a similar analysis of an application we would build ourselves. If such analysis demonstrates that buying the application is more beneficial, buy the solution.

Bought in solutions Provide their Own Opportunities

However, just because an application is bought in, does not mean that we cannot use our own skills to improve the way the application works within the target business.

In fact, developing an infrastructure, whereby one application's data is used by another application throughout the business can be a demanding and rewarding task. Some very useful small business applications simply allow one off-the-shelf system to use data from another system. It is another potential area for development. Although Rails was not designed to work with multiple data sources, it is fairly straightforward to allow it to. Also, Ruby is able to handle this sort of work. Using Ruby without Rails is a small leap once we understand how the systems underlying Rails work.

Ensure There is Time to Complete Each Task

Application development often hits unexpected complications and the time required to create a new application is notoriously difficult to predict. Therefore, always include time to deal with unforeseen problems, while setting and agreeing to deadlines. In fact, if you are really finding it difficult to judge how long a project will take to complete, it is surprising how well taking your best estimate and doubling it works. It can make a very good starting point for your first projects. Once you have a few under your belt, you should be able to make more sophisticated scheduling estimates.

Taking the time to review how long it took to complete a task will be very useful as it will allow us to improve our projected completion schedules. The better we can make our own projections, the less likely it is that we will find ourselves working to other people's unrealistic deadlines.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.237.201