Doing Business in Real Time
The global economy has a life of its own, it lives in real-time, and we are all part of it. Hello brave new world.
What kind of business systems can you create by combining a relational database, some spreadsheets and a web browser? The answer is you can quickly create systems to support lots of business operations (big or small) with combinations of standard IT components like these and small chunks of program code to tie them together. This is the best way to create systems that respond to the rapidly evolving situations most companies now find themselves in.
If you want to get a new application system built quickly, try this. Start with process mapping to find a simple sequence of tasks that drives the business operation you are addressing and design a logical data model to capture the data used by those tasks. Then implement that data model in a database; if it's an appropriate data model you'll find easy SQL statements deliver most of the functionality required from the system.
That simple sequence of tasks and the appropriate data model do take some work to uncover, but they are there, and when you find them, you will have discovered the elegant simplicity that is the foundation of all successful application systems.
Now define the logic that describes the tasks in your process model. In other words, how does a task turn its data inputs into its data outputs? Express this logic as a set of "If, Then, Else" statements and some simple equations. With this logic in mind, figure out what kind of user interaction is needed for each task. Where user interaction is needed, it's usually the entering of selection and sort criteria and reporting parameters, rarely is it much more than that.
Design screens that allow for this data entry. Then design how you will display the results of the business logic; it's usually some columnar formatted reports or line graphs or bar or pie charts, rarely more than that. Now think of a quick way to create these data entry and display screens. What would happen if you used a spreadsheet for this? With spreadsheets you can create templates and command buttons for data entry and you can format columnar reports and data displays pretty fast.
Next, decide how to move data around. Write some software objects that tap into data sources needed to populate your data model and do the data reformatting and error checking to update the database on a regular cycle. Then write some other objects to move data between the database and the spreadsheets and execute business logic not already handled by stored procedures in the database or macros in the spreadsheets.
Host the system on some servers and make it accessible to people via web browsers. Use existing software objects and procedures for administrative tasks like user logins and system backup and recovery. Congratulations; you've just developed Version 1.0 of a new business application system. It's a stable and scalable 80% solution that business people can immediately put to use and start generating value.
If you stick to a 30-day development schedule to do all of these steps, you'll find it's a lot easier to stay focused on the most important system features and a lot easier to resist temptations to complicate the design and programming of the system. Tight time frames are actually a good thing (I know this is counterintuitive...); they save people from wasting time on over analyzing things, from arguing about minutia, from persistent scope creep, and from attempting tricky and complex coding.
Tight time frames also make it easier for business and technical people to come to consensus on system features; time is short so people have to focus on the