The Unicage development method is based on the UNIX philosophy—it has been evolved to fit the construction process of corporate systems. UNIX was originally an OS convenient for software developers but not for end users. However, in the current age where most people are familiar with using computers, system development is no longer the sole property of selected specialists. Unicage can be said to be a method to contrive a way to provide the superior software development.

Unix philosophy

  • Small is beautiful
    • Small programs and small data are combined to express large programs and data. This enables the creation of simpler and more flexible systems.
  • Make each program do one thing well
    • Small programs should be specialized for the purpose of performing one job. It should not be equipped with a variety of options and functions. For example, the sort command that sorts data is specialized for performing sorting and does not have functions for code conversion or separating characters.
  • Make every program a filter
    • All programs are created in order to perform file input and output. In other words, the original file is left as is and the processing results are output to a separate file.
  • Store numerical data in flat ASCII files
    • The data is in text form, which improves readability, and as the program dealing with the data is written with the presumption that this is all in text form without being concerned about the data format, the program is simple.
  • Build a prototype ASAP
    • A prototype system should be created as early as possible to get a feeling of the difficulty and scale of the system development. The desk plan becomes realistic due to the fact that it has been accurately tried.
  • Use shell scripts to increase leverage and portability
    • Shell scripts are an extremely useful tool for achieving the above philosophy. By using the shell script, it can leverage the power of the software and improve pro- gram portability.

Unicage Philosophy

  • Do not delete data
    • Software can be recreated. However, once the data is deleted, it cannot be activated again. Computers cannot operate without software, and without software or data meaningful output is not possible. Data cannot just be deleted due to the simple reason of unnecessity at the moment. In particular, the initial primitive data that enters the computer system should be saved for future purposes.
  • Time, information, and the 3rd value
    • Often, time and usefulness of data conflict with each other. Generally, with useful information, there is a high level of intensity and analysis so they require complex programs and long processing time. However, obtaining this useful information in real time comes at the price of the generality of the hardware and software. In order to respond in a special way, the capacity and ability to continue in relation to the created system changes are significantly reduced. If we consider that the usefulness of information progresses with time spent, this is critical. The system, at that time, must continue to output useful information to those who need it. In order to make this possible, we must recognize that the system has excellent flexibility = the 3rd value.
  • Creating standards with ordinary technology
    • Software standardization is different from the unification of the API. By absorbing differences between hardware and OS through hierarchical middle software, it guarantees the portability of the application software. However, the price for this is the complexity of this middle software and the lowering of response capabilities. Further, as the content of the application software and middle software are not visible to each other, this becomes an obstacle for efficient processing and collaboration. With Unicage, rather than concentrating on the unification of the description, only ubiquitous hardware and OS technology are used in the first place. Compact software parts are made, and applications are built through the combination of these small parts.
  • The system is nurtured along with the users
    • The system is a mechanism used by users and should be created based on the objectives of use and the active user level. Even after the system is created, user objectives change over time, and improvements in the user activity level equate to human progress. The system must grow in line with this human progress. The system is a living thing. System changes are  not one-time corrections, but by constantly using past knowledge, it constantly recreates itself to its most up-to-date state.