C2M的四大必要条件

曾鸣和宋斐在他们2012年的文章中曾经指出,生产组织要真正从厂商为中心转向以消费者为中心,是需要若干个条件的:

一是消费者需求的转变。传统的“小品种、大批量”的生产模式是与收入水平较低、以满足生活必须为目的的消费需求结合在一起的。由于消费者的必须消费大致上是类似的,对于个性的要求不是那么高,因而制造商进行竞争的关键就是要压成本、提效率,只要把最终的价格压下来,就能在市场上胜出。但是当消费者的收入进一步提升之后,他们的需求就会升级,从满足必须转向到对个性化的追求。在这个阶段,他们的需求就会多样化、长尾化,C2M等以消费者为中心的商业模式才会有真正的市场。

二是互联网技术的发展。即使消费者的需求发生了改变,开始对个性化有了诉求,如果不能及时捕捉这些需求,并将它们转给制造商,整个C2M的过程就无法完成。而要实现这一切,技术,尤其是互联网技术的发展显然是不可或缺的。

三是柔性化生产技术的普及。一旦制造商获取了消费者的需求,下面的任务就是要根据这些需求组织生产。但是,这一切的实现并不简单。如果消费者的需求过于多样化,商品品类过于繁多,制造商对于产品质量的把控就会变得十分困难。一旦在某个参数上出错,产品就可能难以满足消费者的需求。

四是社会化协作的实现。要实现商品从制造到销售的整个流程,单单依靠制造商显然是不行的,它还依靠采购、物流、分销等各个环节的支撑。一旦客户有了一个个性化的需求,制造商就要先根据需求实现采购,在进行生产后,还需要按照要求将产品交付物流,送到消费者手中。如果这些环节中的某一个不能实现,那么整个流程就可能无法运转。

Vagrant Config file

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
#disk = 'D:\\data\\temp\\secondDisk.vdi'
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "ubuntu/bionic64"
  config.disksize.size = "150GB"
  config.vm.synced_folder "D:\\projects", "/projects", type: "nfs"
  config.vm.network "private_network", ip: "192.168.56.20"
  
  config.vm.provider :virtualbox do |vb|
  #   # Don't boot with headless mode
  #   vb.gui = true
  #
  #   # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "4096", "--cpus", "2"]
  end

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine and only allow access
  # via 127.0.0.1 to disable public access
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Enable provisioning with a shell script. Additional provisioners such as
  # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
#	config.vm.provider "virtualbox" do |vb|
#		unless File.exist?(disk)
#			vb.customize ['createhd', '--filename', disk, '--variant', 'Fixed', '--size', 10 * 1024]
#		end
#		vb.memory = "1024"
#		vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk]
#	end
end