5S is an organization method that describes how to achieve better efficiency and effectiveness in a work space. It was initially developed in Japan (thus the name comes from the first letters of Japanese pronounciations of phases) for manufacturing and is one of the techniques that enabled Just in Time methodology. Later it was applied to a wide variety of industries including health care, education and media.

I decided to apply 5S principles to our web development processes and will be expecting from all my team members to follow them while working at our web projects.

Here are the guidelines of our 5S application:

Sort (整理, せいり, Seiri)

Keep development environment basic and fast and prevent distraction by sorting and segregating development tools, installed applications, data, etc.

Keep only required development tools and resources (such as ide, compiler, vm, module, lib, code etc.). Uninstall software which are unuseful or unncessary for the projects.

Use/enable/run only development tools that are required for the current task.

Remove unnecessary configurations, delete irrelevant/redundant/obsolete data.

Keep only a single tool for a certain task, Avoid running multiple instances of a tool unless it is necessary (ex. testing).

Keep track of temporary development tools, applications, files or data, to take care of later when they are not needed.

In code, keep only required functions, variables, comments, data and design elements. Remove unnecessary/obsolete imports and plug-ins.

Obtain and keep documentation of resources being used, remove irrelevant or obsolete documentation.

Set in Order (整頓, せいとん, Seiton）

Setup development tools and arrange data in a way that they are ready to run or access easily at any time without requiring additional prior configuration.

Prepare the necessary development tools and environments for development processes such as backups, tests, deploys and file-sharing etc. to prevent interruptions and inconveniences.

Arrange development tools and data based on their usage.

Create shortcuts, arrange menu and desktop to ensure easy and fast access to frequently used resources and tools.

Create scripts, installers, etc. for repeating tasks to provide easy use and access every time.

Follow task priorities (based on project schedules, crtitical requirements etc.)

Organize code: Keep related parts of the code together, organize packages, modules accordingly.

While creating documentation, arrange related sections and examples accordingly for easy use

Organize 3rd party documentations for easy access and referral.

Shine (清掃-せいそう, Seisou）

Keep work environment clean. This includes the physical environment (office space, desks) as well as the development environment such as computer desktop, project folders, virtual machines etc.

Keep development tools up-to-date. Do maintenance checks and update servers, operating system, applications, libraries etc.

Avoid installing or implementing any unnecessarry feature by means of plug-ins, libraries and functions.

Avoid customizing development tools in a way that may decrease efficiency or create complexity.

Review and clean code. Remove obsolete parts, imports, functions, Simplify algorithms and rewrite/refactor when required to ensure clean and optimized code.

Review and clean data. Remove obsolete db tables/columns/keys, files or any temporary resources.

Use cleaning as inspection, to detect bugs, possible future shortcomings, critical parts of the code.

Update and clean documentation. Remove obsolete parts.

Make code reviews and code cleaning a regular process.

Standardize (清潔, せいけつ, Seiketsu）

Establish high level coding standards.

Use well-defined best-practices and standards while implementing features.

Define standard methodologies for keeping and accessing to resources.

Define standards for workflows and processes.

Follow project conventions while designing, defining and naming.

Use same tools for same tasks (except testing purposes) with the team to contribute to better team collaboration.

Document development process well and clearly. Use standard formats and language while creating documentation.

Sustain (躾, しつけ, Shitsuke)

Build sustainable projects. Plan and implement projects for long term operation.

Design and create necessary scripts/steps to ensure update, backup and other maintenance tasks to be carried out easily.

Design and create flexible systems that can cover different use-cases with minimum effort.

Perform regular audits, check status of systems and projects.

Self-train, learn at least one 'new' thing every week.

Review previous knowledge, follow development news, keep up-to-date with new practices and concepts.

Have self discipline, follow the project workflows and best practices

Ensure full communication within the team and keep up with the development's updates

Implement long term solutions that will benefit all the project / team rather than short term solutions that would save the day.

Update documentation on changes, improvements and bug fixes to keep track.

Encouraged by our current development methodologies, Most of the guidelines above are already being followed by the team. Even so, I wanted to prepare a written statement to list and remind everyone about these practices that surely will contribute to the quality of our development and products.