精华内容
下载资源
问答
  • 在刚进入IT行业时使用CAKEPHP框架编写WEB的时候,使用它里面的一个ACL plugin实现权限管理的时候。发现一个表结构硬是不明白是怎么回事。具体表结构如下: CREATE TABLE acos ( id INTEGER(10) UNSIGNED NOT NULL ...
  • 为了方便项目管理,将繁多的控制器放到了不同的层级目录下,按理来说,需要在RouteConfig中配置一下路由信息,然后再配置一下ViewEngines的视图检索规则,才能正常访问,但是现在发现,只需要配置好ViewEngines的...
  • 下面我们就来探讨一下操作系统是如何创建内存并管理他们的。 经过多年的探讨,人们提出了一种分层存储器体系(memory hierarchy),下面是分层体系的分类 顶层的存储器速度最高,但是容量最小,成本非常高,层级...

    主存(RAM) 是一件非常重要的资源,必须要小心对待内存。虽然目前大多数内存的增长速度要比 IBM 7094 要快的多,但是,程序大小的增长要比内存的增长还快很多。正如帕金森定律说的那样:不管存储器有多大,但是程序大小的增长速度比内存容量的增长速度要快的多。下面我们就来探讨一下操作系统是如何创建内存并管理他们的。

    经过多年的探讨,人们提出了一种 分层存储器体系(memory hierarchy),下面是分层体系的分类

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    顶层的存储器速度最高,但是容量最小,成本非常高,层级结构越向下,其访问效率越慢,容量越大,但是造价也就越便宜。

    操作系统中管理内存层次结构的部分称为内存管理器(memory manager),它的主要工作是有效的管理内存,记录哪些内存是正在使用的,在进程需要时分配内存以及在进程完成时回收内存。

    下面我们会对不同的内存管理模型进行探讨,从简单到复杂,由于最低级别的缓存是由硬件进行管理的,所以我们主要探讨主存模型和如何对主存进行管理。

    无存储器抽象

    最简单的存储器抽象是没有存储。早期大型计算机(20 世纪 60 年代之前),小型计算机(20 世纪 70 年代之前)和个人计算机(20 世纪 80 年代之前)都没有存储器抽象。每一个程序都直接访问物理内存。当一个程序执行如下命令:

    MOV REGISTER1, 1000

    计算机会把位置为 1000 的物理内存中的内容移到 REGISTER1 中。因此,那时呈现给程序员的内存模型就是物理内存,内存地址从 0 开始到内存地址的最大值中,每个地址中都会包含一个 8 位位数的单元。

    所以这种情况下的计算机不可能会有两个应用程序同时在内存中。如果第一个程序向内存地址 2000 的这个位置写入了一个值,那么此值将会替换第二个程序在该位置上的值,所以,同时运行两个应用程序是行不通的,两个程序会立刻崩溃。

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    不过即使存储器模型就是物理内存,还是存在一些可选项的。下面展示了三种变体

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    在上图 a 中,操作系统位于 RAM(Random Access Memory) 的底部,或像是图 b 一样位于 ROM(Read-Only Memory) 顶部;而在图 c 中,设备驱动程序位于顶端的 ROM 中,而操作系统位于底部的 RAM 中。图 a 的模型以前用在大型机和小型机上,但现在已经很少使用了;图 b 中的模型一般用于掌上电脑或者是嵌入式系统中。第三种模型就应用在早期个人计算机中了。ROM 系统中的一部分成为 BIOS (Basic Input Output System)。模型 a 和 c 的缺点是用户程序中的错误可能会破坏操作系统,可能会导致灾难性的后果。

    按照这种方式组织系统时,通常同一个时刻只能有一个线程正在运行。一旦用户键入了一个命令,操作系统就把需要的程序从磁盘复制到内存中并执行;当进程运行结束后,操作系统在用户终端显示提示符并等待新的命令。收到新的命令后,它把新的程序装入内存,覆盖前一个程序。

    在没有存储器抽象的系统中实现并行性的一种方式是使用多线程来编程。由于同一进程中的多线程内部共享同一内存映像,那么实现并行也就不是问题了。

    运行多个程序

    但是,即便没有存储器抽象,同时运行多个程序也是有可能的。操作系统只需要把当前内存中所有内容保存到磁盘文件中,然后再把程序读入内存即可。只要某一时间只有一个程序,那么就不会产生冲突。

    在额外特殊硬件的帮助下,即使没有交换功能,也可以并行的运行多个程序。IBM 360 的早期模型就是这样解决的

    System/360是 IBM 在1964年4月7日,推出的划时代的大型电脑,这一系列是世界上首个指令集可兼容计算机。

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    在 IBM 360 中,内存被划分为 2KB 的区域块,每块区域被分配一个 4 位的保护键,保护键存储在 CPU 的特殊寄存器中。一个内存为 1 MB 的机器只需要 512 个这样的 4 位寄存器,容量总共为 256 字节 (这个会算吧。) PSW(Program Status Word, 程序状态字) 中有一个 4 位码。一个运行中的进程如果访问键与其 PSW 码不同的内存,360 硬件会发现这种情况,因为只有操作系统可以修改保护键,这样就可以防止进程之间、用户进程和操作系统之间的干扰。

    这种解决方式是有一个缺陷。如下所示,假设有两个程序,每个大小各为 16 KB

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    从图上可以看出,这是两个不同的 16KB 程序的装载过程,a 程序首先会跳转到地址 24,那里是一条 MOV 指令,然而 b 程序会首先跳转到地址 28,地址 28 是一条 CMP 指令。这是两个程序被先后加载到内存中的情形,假如这两个程序被同时加载到内存中从 0 地址处开始执行,内存的状态就如上面 c 图所示,程序装载完毕开始运行,第一个程序首先从 0 地址处开始运行,执行 JMP 24 指令,然后依次执行后面的指令(许多指令没有画出),一段时间后第一个程序执行完毕,然后开始执行第二个程序。第二个程序的第一条指令是 28,这条指令会使程序跳转到第一个程序的 ADD 处,而不是事先设定的跳转指令 CMP,由于内存地址的不正确访问,这个程序可能在 1秒内就崩溃了。

    上面两个程序同时执行最核心的问题是都引用了绝对物理地址。这不是我们想要看到的。我们想要的是每一个程序都会引用一个私有的本地地址。IBM 360 在第二个程序装载到内存中的时候会使用一种称为 静态重定位(static relocation) 的技术来修改它。它的工作流程如下:当一个程序被加载到 16384 地址时,常数 16384 被加到每一个程序地址上(所以 JMP 28会变为JMP 16412 )。虽然这个机制在不出错误的情况下是可行的,但这不是一种通用的解决办法,同时会减慢装载速度。更近一步来讲,它需要所有可执行程序中的额外信息,以指示哪些包含(可重定位)地址,哪些不包含(可重定位)地址。毕竟,上图 b 中的 JMP 28 可以被重定向(被修改),而类似 MOV REGISTER1,28 会把数字 28 移到 REGISTER 中则不会重定向。所以,装载器(loader)需要一定的能力来辨别地址和常数。

    一种存储器抽象:地址空间

    把物理内存暴露给进程会有几个主要的缺点:第一个问题是,如果用户程序可以寻址内存的每个字节,它们就可以很容易的破坏操作系统,从而使系统停止运行(除非使用 IBM 360 那种 lock-and-key 模式或者特殊的硬件进行保护)。即使在只有一个用户进程运行的情况下,这个问题也存在。

    第二点是,这种模型想要运行多个程序是很困难的(如果只有一个 CPU 那就是顺序执行),在个人计算机上,一般会打开很多应用程序,比如输入法、电子邮件、浏览器,这些进程在不同时刻会有一个进程正在运行,其他应用程序可以通过鼠标来唤醒。在系统中没有物理内存的情况下很难实现。

    地址空间的概念

    如果要使多个应用程序同时运行在内存中,必须要解决两个问题:保护和 重定位。我们来看 IBM 360 是如何解决的:第一种解决方式是用保护密钥标记内存块,并将执行过程的密钥与提取的每个存储字的密钥进行比较。这种方式只能解决第一种问题,但是还是不能解决多进程在内存中同时运行的问题。

    还有一种更好的方式是创造一个存储器抽象:地址空间(the address space)。就像进程的概念创建了一种抽象的 CPU 来运行程序,地址空间也创建了一种抽象内存供程序使用。地址空间是进程可以用来寻址内存的地址集。每个进程都有它自己的地址空间,独立于其他进程的地址空间,但是某些进程会希望可以共享地址空间。

    基址寄存器和变址寄存器

    最简单的办法是使用动态重定位(dynamic relocation),它就是通过一种简单的方式将每个进程的地址空间映射到物理内存的不同区域。从 CDC 6600(世界上最早的超级计算机)到 Intel 8088(原始 IBM PC 的核心)所使用的经典办法是给每个 CPU 配置两个特殊硬件寄存器,通常叫做基址寄存器(basic register)变址寄存器(limit register)。当使用基址寄存器和变址寄存器使,程序会装载到内存中连续的空间位置并且在装载期间无需重定位。当一个进程运行时,程序的起始物理地址装载到基址寄存器中,程序的长度则装载到变址寄存器中。在上图 c 中,当一个程序运行时,装载到这些硬件寄存器中的基址和变址寄存器的值分别是 0 和 16384。当第二个程序运行时,这些值分别是 16384 和 32768。如果第三个 16 KB 的程序直接装载到第二个程序的地址之上并且运行,这时基址寄存器和变址寄存器的值会是 32768 和 16384。那么我们可以总结下

    基址寄存器:存储数据内存的起始位置

    变址寄存器:存储应用程序的长度。

    每当进程引用内存以获取指令或读取或写入数据字时,CPU 硬件都会自动将基址值添加到进程生成的地址中,然后再将其发送到内存总线上。同时,它检查程序提供的地址是否等于或大于变址寄存器 中的值。如果程序提供的地址要超过变址寄存器的范围,那么会产生错误并中止访问。这样,对上图 c 中执行 JMP 28 这条指令后,硬件会把它解释为 JMP 16412,所以程序能够跳到 CMP 指令,过程如下

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    使用基址寄存器和变址寄存器是给每个进程提供私有地址空间的一种非常好的方法,因为每个内存地址在送到内存之前,都会先加上基址寄存器的内容。在很多实际系统中,对基址寄存器和变址寄存器都会以一定的方式加以保护,使得只有操作系统可以修改它们。在 CDC 6600 中就提供了对这些寄存器的保护,但在 Intel 8088 中则没有,甚至没有变址寄存器。但是,Intel 8088 提供了许多基址寄存器,使程序的代码和数据可以被独立的重定位,但是对于超出范围的内存引用没有提供保护。

    所以你可以知道使用基址寄存器和变址寄存器的缺点,在每次访问内存时,都会进行 ADD 和 CMP 运算。比较可以执行的很快,但是加法就会相对慢一些,除非使用特殊的加法电路,否则加法因进位传播时间而变慢。

    交换技术

    如果计算机的物理内存足够大来容纳所有的进程,那么之前提及的方案或多或少是可行的。但是实际上,所有进程需要的 RAM 总容量要远远高于内存的容量。在 Windows、OS X、或者 Linux 系统中,在计算机完成启动(Boot)后,大约有 50 - 100 个进程随之启动。例如,当一个 Windows 应用程序被安装后,它通常会发出命令,以便在后续系统启动时,将启动一个进程,这个进程除了检查应用程序的更新外不做任何操作。一个简单的应用程序可能会占用 5 - 10MB 的内存。其他后台进程会检查电子邮件、网络连接以及许多其他诸如此类的任务。这一切都会发生在第一个用户启动之前。如今,像是 Photoshop 这样的重要用户应用程序仅仅需要 500 MB 来启动,但是一旦它们开始处理数据就需要许多 GB 来处理。从结果上来看,将所有进程始终保持在内存中需要大量内存,如果内存不足,则无法完成。

    所以针对上面内存不足的问题,提出了两种处理方式:最简单的一种方式就是交换(swapping)技术,即把一个进程完整的调入内存,然后再内存中运行一段时间,再把它放回磁盘。空闲进程会存储在磁盘中,所以这些进程在没有运行时不会占用太多内存。另外一种策略叫做虚拟内存(virtual memory),虚拟内存技术能够允许应用程序部分的运行在内存中。下面我们首先先探讨一下交换

    交换过程

    下面是一个交换过程

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    刚开始的时候,只有进程 A 在内存中,然后从创建进程 B 和进程 C 或者从磁盘中把它们换入内存,然后在图 d 中,A 被换出内存到磁盘中,最后 A 重新进来。因为图 g 中的进程 A 现在到了不同的位置,所以在装载过程中需要被重新定位,或者在交换程序时通过软件来执行;或者在程序执行期间通过硬件来重定位。基址寄存器和变址寄存器就适用于这种情况。

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    交换在内存创建了多个 空闲区(hole),内存会把所有的空闲区尽可能向下移动合并成为一个大的空闲区。这项技术称为内存紧缩(memory compaction)。但是这项技术通常不会使用,因为这项技术回消耗很多 CPU 时间。例如,在一个 16GB 内存的机器上每 8ns 复制 8 字节,它紧缩全部的内存大约要花费 16s。

    有一个值得注意的问题是,当进程被创建或者换入内存时应该为它分配多大的内存。如果进程被创建后它的大小是固定的并且不再改变,那么分配策略就比较简单:操作系统会准确的按其需要的大小进行分配。

    但是如果进程的 data segment 能够自动增长,例如,通过动态分配堆中的内存,肯定会出现问题。这里还是再提一下什么是 data segment 吧。从逻辑层面操作系统把数据分成不同的段(不同的区域)来存储:

    代码段(codesegment/textsegment):

    又称文本段,用来存放指令,运行代码的一块内存空间

    此空间大小在代码运行前就已经确定

    内存空间一般属于只读,某些架构的代码也允许可写

    在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

    数据段(datasegment):

    可读可写

    存储初始化的全局变量和初始化的 static 变量

    数据段中数据的生存期是随程序持续性(随进程持续性)

    随进程持续性:进程创建就存在,进程死亡就消失

    bss段(bsssegment):

    可读可写

    存储未初始化的全局变量和未初始化的 static 变量

    bss 段中数据的生存期随进程持续性

    bss 段中的数据一般默认为0

    rodata段:

    只读数据

    比如 printf 语句中的格式字符串和开关语句的跳转表。也就是常量区。例如,全局作用域中的 const int ival = 10,ival 存放在 .rodata 段;再如,函数局部作用域中的 printf(“Hello world %d\n”, c); 语句中的格式字符串 “Hello world %d\n”,也存放在 .rodata 段。

    栈(stack):

    可读可写

    存储的是函数或代码中的局部变量(非 static 变量)

    栈的生存期随代码块持续性,代码块运行就给你分配空间,代码块结束,就自动回收空间

    堆(heap):

    可读可写

    存储的是程序运行期间动态分配的 malloc/realloc 的空间

    堆的生存期随进程持续性,从 malloc/realloc 到 free 一直存在

    下面是我们用 Borland C++ 编译过后的结果

    _TEXT	segment dword public use32 'CODE'
    _TEXT	ends
    _DATA	segment dword public use32 'DATA'
    _DATA	ends
    _BSS	segment dword public use32 'BSS'
    _BSS	ends

    段定义( segment ) 是用来区分或者划分范围区域的意思。汇编语言的 segment 伪指令表示段定义的起始,ends 伪指令表示段定义的结束。段定义是一段连续的内存空间

    所以内存针对自动增长的区域,会有三种处理方式

    • 如果一个进程与空闲区相邻,那么可把该空闲区分配给进程以供其增大。
    • 如果进程相邻的是另一个进程,就会有两种处理方式:要么把需要增长的进程移动到一个内存中空闲区足够大的区域,要么把一个或多个进程交换出去,已变成生成一个大的空闲区。
    • 如果一个进程在内存中不能增长,而且磁盘上的交换区也满了,那么这个进程只有挂起一些空闲空间(或者可以结束该进程)

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    上面只针对单个或者一小部分需要增长的进程采用的方式,如果大部分进程都要在运行时增长,为了减少因内存区域不够而引起的进程交换和移动所产生的开销,一种可用的方法是,在换入或移动进程时为它分配一些额外的内存。然而,当进程被换出到磁盘上时,应该只交换实际上使用的内存,将额外的内存交换也是一种浪费,下面是一种为两个进程分配了增长空间的内存配置。

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    如果进程有两个可增长的段,例如,供变量动态分配和释放的作为堆(全局变量)使用的一个数据段(data segment),以及存放局部变量与返回地址的一个堆栈段(stack segment),就如图 b 所示。在图中可以看到所示进程的堆栈段在进程所占内存的顶端向下增长,紧接着在程序段后的数据段向上增长。当增长预留的内存区域不够了,处理方式就如上面的流程图(data segment 自动增长的三种处理方式)一样了。

    空闲内存管理

    在进行内存动态分配时,操作系统必须对其进行管理。大致上说,有两种监控内存使用的方式

    • 位图(bitmap)
    • 空闲列表(free lists)

    下面我们就来探讨一下这两种使用方式

    使用位图的存储管理

    使用位图方法时,内存可能被划分为小到几个字或大到几千字节的分配单元。每个分配单元对应于位图中的一位,0 表示空闲, 1 表示占用(或者相反)。一块内存区域和其对应的位图如下

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    图 a 表示一段有 5 个进程和 3 个空闲区的内存,刻度为内存分配单元,阴影区表示空闲(在位图中用 0 表示);图 b 表示对应的位图;图 c 表示用链表表示同样的信息

    分配单元的大小是一个重要的设计因素,分配单位越小,位图越大。然而,即使只有 4 字节的分配单元,32 位的内存也仅仅只需要位图中的 1 位。32n 位的内存需要 n 位的位图,所以1 个位图只占用了 1/32 的内存。如果选择更大的内存单元,位图应该要更小。如果进程的大小不是分配单元的整数倍,那么在最后一个分配单元中会有大量的内存被浪费。

    位图提供了一种简单的方法在固定大小的内存中跟踪内存的使用情况,因为位图的大小取决于内存和分配单元的大小。这种方法有一个问题是,当决定为把具有 k 个分配单元的进程放入内存时,内容管理器(memory manager) 必须搜索位图,在位图中找出能够运行 k 个连续 0 位的串。在位图中找出制定长度的连续 0 串是一个很耗时的操作,这是位图的缺点。(可以简单理解为在杂乱无章的数组中,找出具有一大长串空闲的数组单元)

    使用链表进行管理

    另一种记录内存使用情况的方法是,维护一个记录已分配内存段和空闲内存段的链表,段会包含进程或者是两个进程的空闲区域。可用上面的图 c 来表示内存的使用情况。链表中的每一项都可以代表一个 空闲区(H) 或者是进程(P)的起始标志,长度和下一个链表项的位置。

    在这个例子中,段链表(segment list)是按照地址排序的。这种方式的优点是,当进程终止或被交换时,更新列表很简单。一个终止进程通常有两个邻居(除了内存的顶部和底部外)。相邻的可能是进程也可能是空闲区,它们有四种组合方式。

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    当按照地址顺序在链表中存放进程和空闲区时,有几种算法可以为创建的进程(或者从磁盘中换入的进程)分配内存。我们先假设内存管理器知道应该分配多少内存,最简单的算法是使用 首次适配(first fit)。内存管理器会沿着段列表进行扫描,直到找个一个足够大的空闲区为止。除非空闲区大小和要分配的空间大小一样,否则将空闲区分为两部分,一部分供进程使用;一部分生成新的空闲区。首次适配算法是一种速度很快的算法,因为它会尽可能的搜索链表。

    首次适配的一个小的变体是 下次适配(next fit)。它和首次匹配的工作方式相同,只有一个不同之处那就是下次适配在每次找到合适的空闲区时就会记录当时的位置,以便下次寻找空闲区时从上次结束的地方开始搜索,而不是像首次匹配算法那样每次都会从头开始搜索。Bays(1997) 证明了下次算法的性能略低于首次匹配算法。

    另外一个著名的并且广泛使用的算法是 最佳适配(best fit)。最佳适配会从头到尾寻找整个链表,找出能够容纳进程的最小空闲区。最佳适配算法会试图找出最接近实际需要的空闲区,以最好的匹配请求和可用空闲区,而不是先一次拆分一个以后可能会用到的大的空闲区。比如现在我们需要一个大小为 2 的块,那么首次匹配算法会把这个块分配在位置 5 的空闲区,而最佳适配算法会把该块分配在位置为 18 的空闲区,如下

    没内存怎么运行程序?操作系统是怎么创建内存并管理的呢?

     

    那么最佳适配算法的性能如何呢?最佳适配会遍历整个链表,所以最佳适配算法的性能要比首次匹配算法差。但是令人想不到的是,最佳适配算法要比首次匹配和下次匹配算法浪费更多的内存,因为它会产生大量无用的小缓冲区,首次匹配算法生成的空闲区会更大一些。

    最佳适配的空闲区会分裂出很多非常小的缓冲区,为了避免这一问题,可以考虑使用 最差适配(worst fit) 算法。即总是分配最大的内存区域(所以你现在明白为什么最佳适配算法会分裂出很多小缓冲区了吧),使新分配的空闲区比较大从而可以继续使用。仿真程序表明最差适配算法也不是一个好主意。

    如果为进程和空闲区维护各自独立的链表,那么这四个算法的速度都能得到提高。这样,这四种算法的目标都是为了检查空闲区而不是进程。但这种分配速度的提高的一个不可避免的代价是增加复杂度和减慢内存释放速度,因为必须将一个回收的段从进程链表中删除并插入空闲链表区。

    如果进程和空闲区使用不同的链表,那么可以按照大小对空闲区链表排序,以便提高最佳适配算法的速度。在使用最佳适配算法搜索由小到大排列的空闲区链表时,只要找到一个合适的空闲区,则这个空闲区就是能容纳这个作业的最小空闲区,因此是最佳匹配。因为空闲区链表以单链表形式组织,所以不需要进一步搜索。空闲区链表按大小排序时,首次适配算法与最佳适配算法一样快,而下次适配算法在这里毫无意义。

    另一种分配算法是 快速适配(quick fit) 算法,它为那些常用大小的空闲区维护单独的链表。例如,有一个 n 项的表,该表的第一项是指向大小为 4 KB 的空闲区链表表头指针,第二项是指向大小为 8 KB 的空闲区链表表头指针,第三项是指向大小为 12 KB 的空闲区链表表头指针,以此类推。比如 21 KB 这样的空闲区既可以放在 20 KB 的链表中,也可以放在一个专门存放大小比较特别的空闲区链表中。

    快速匹配算法寻找一个指定代销的空闲区也是十分快速的,但它和所有将空闲区按大小排序的方案一样,都有一个共同的缺点,即在一个进程终止或被换出时,寻找它的相邻块并查看是否可以合并的过程都是非常耗时的。如果不进行合并,内存将会很快分裂出大量进程无法利用的小空闲区。

    点赞关注转发是一个很好的习惯哦

    展开全文
  • 很多人觉得自己职场不顺,殊不知“情商是硬伤”,情商又可以理解为一个人的职场心理成熟度,你的职场心理年龄究竟有大?1、阿里巴巴是怎么面试的? 2、阿里巴巴闻味官是怎么回事? 3、阿里巴巴职级怎么设置? 4...

    很多人觉得自己职场不顺,殊不知“情商是硬伤”,情商又可以理解为一个人的职场心理成熟度,你的职场心理年龄究竟有多大?

    1、阿里巴巴是怎么面试的?
    2、阿里巴巴闻味官是怎么回事?
    3、阿里巴巴职级怎么设置?
    4、阿里巴巴内部怎么晋升?
    5、阿里巴巴如何做培训的?
    6、阿里巴巴管理三板斧是什么?

    阿里巴巴是怎样面试的

    2009年,我在北京创业,做自己的公司。有一天接到一个电话说“天机老师,您想不想到杭州工作”,我当时想“杭州?什么都没有,不去!”。他说“阿里巴巴要不要考虑一下”,我觉得可以考虑一下。

    我说出愿意考虑之后,陆续有三个电话从阿里巴巴打过来,包括我的主管、HR和行政。HR在我没去面试之前和我聊了一个多小时,没有聊其他的东西,她聊的是阿里巴巴的梦想是什么。同样的,主管打电话给我的时候,一直在聊他到公司有多久了,他的梦想是什么。我觉得很意外,基本上没有问我自己的情况。后来行政详细帮我安排什么时候面试、谁负责面试,各方面都井井有条。

    到阿里巴巴面试的时候,参加的人很多。轮到我的时候,说安排半个小时让我讲课。包括我们部门当时的总监,听了都觉得讲的还不错。

    然后他单独面试我,他说“你的性格中,最突出的是什么”,我说“我的性格最典型的是学习”。

    他说“怎么证明你喜欢学习?”
    我说“我每周可以看两本书”。
    他下一个问题是“你最近在看什么书?”
    我说“我最近看《大秦帝国》”。
    我们聊了两个小时的《大秦帝国》,最后他说“明天去体检,后来开始上班吧”。
    我当时觉得好奇怪,为什么因为《大秦帝国》就面试成功了。

    马云是怎么看招聘的?


    阿里巴巴2002年才500人,04、05年开始快速增长,销售人员比例不断增长,我们06年、07年15000人中大部分是销售人员,那时候阿里是典型的销售型公司。

    之后淘宝体系的人慢慢多起来,淘系的人后来也越来越少。2011年之后,招聘的步伐开始减慢,不是自动减慢,而是马云有意减少人员。HR从所有部门要招聘计划,各个项目部、事业部提计划,数据报过来,马云惊呆了,所有部门加起来总共要招聘12000人,结果马云说2011年我们最多招2000人,将12000人的计划直接砍掉,他说人多了反而坏事。
    图片描述

    2012年,我们招聘计划又是2000人,马云又砍,说今年最多招500人。到2014年,仅仅招了200人,2015年更惨,2015年马云直接说公司不加一个人,走一个才可以增加一个,不走人就不招人。

    千金易得,一将难求。不要把招人的权利随意下放给项目经理和HR。马云当年反复强调招人的权利,这个人是否能进来,要老板自己做决策。你的HR和主管给别人打电话的时候,除了最初的简历,能不能把企业介绍给别人很关键。

    在阿里巴巴,所有人都是前台,没有后台,即使做财务的人,做人力资源的人,都在给公司做宣传,因为好的人才需要你三顾茅庐去请,需要用每个人的感觉告诉他“我们是一家牛逼的公司”,而不是招过来给他钱让他做事。

    阿里招人流程是什么样的?

    图片描述

    招人是非常困难的事情,很多公司都是依靠HR,从浩如烟海的简历中找简历,打电话,预约面试。但在阿里巴巴是相反的,HR的流程是反的。他们是政委,招人变成了项目经理、产品经理自己的事情。

    很多销售管理者、产品经理说“让我怎么找人”,HR会告诉你“你经常在网上分享吗”,如果你经常分享,就会有粉丝;HR会问“你经常参加人力资源的培训吗”“你能不能约20个人到公司”,人力资源管理只是走人才招聘的流程而已。

    马云当时找曾鸣就是这样。曾鸣是长江商学院的副院长,马云本来是去商学院上课,结果把老师给招过来了。

    为什么彭蕾能做首席执行官?她对很多事情的了解是靠她和别人交流的时候学会的。她懂产品,懂设计,她招人的时候跟别人聊的多。她作为人力资源官,懂人心,未来会成为非常厉害的首席执行官。
    如果你也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:71859422
    注:加群要求
    1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
    2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
    3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
    4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
    5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
    6.小号或者小白之类加群一律不给过,谢谢。

    目标已经有了,下面就看行动了!记住:学习永远是自己的事情,你不学时间也不会多,你学了有时候却能够使用自己学到的知识换得更多自由自在的美好时光!时间是生命的基本组成部分,也是万物存在的根本尺度,我们的时间在那里我们的生活就在那里!我们价值也将在那里提升或消弭!Java程序员,加油吧

    阿里闻味官是怎么回事呢?

    在阿里巴巴,面试最后一关一般会放一个五年以上的老阿里人。这个人和即将要入职的人聊天,聊什么都无所谓,这个人叫闻味官。

    有些东西需要直觉,这个人是合适的,那个人是不合适的。直觉是看一个人潜意识里所散发出来的东西,他的能量和价值观。信任一个人需要多久?需要三年。喜欢一个人需要多久?1秒钟就可以。能让人一见钟情,是那个人的本事,是那个人与生俱来的气质,那需要几十年甚至更长时间的修炼。有时候,直觉比其他判断更加准确。

    任何时候都把公司的文化用到每个人的身上,即使此时此刻他不是你的员工,说不定过两年就是了,说不定过两天他会和你发生很多交集。

    **

    阿里巴巴层级怎么设置?

    **
    图片描述

    P序列=技术岗
    M序列=管理岗

    阿里巴巴有两套人才发展体系,一套体系是专家路线,程序员、工程师,某一个专业领域的人才。

    另一套体系就是搞M路线,即管理者路线,从M1到M10,把每一个层级的评判能力全部细分,它的能力表现是什么,要达到什么样的层级,全部有一个细分的体系。这样就实现了整个人力资源体系的科学化。

    阿里的职称是这么评价的,大部分都归纳在P序列 ,员工的title+工种。比如P7产品经理=产品专家。

    在阿里早些时候P级普遍偏低,专员可能是P2这样,后来有了一次P级通货膨胀,出现了更多的P级。

    在阿里只有P6(M1)后才算是公司的中层。不同的子公司给出P级的标准不一样。比如:B2B的普遍P级较高,但是薪资水平低于天猫子公司的同级人员。同时到达该P级员工才有享受公司RSU的机会。(低于P6的除非项目出色有RSU奖励,否则1股都拿不到)

    **

    阿里巴巴内部怎么晋升?

    **

    1. 晋升资格,上年度KPI达3.75;
    2. 主管提名,一般你要是KPI不达3.75主管也不会提名你;
    3. 晋升委员会面试【晋升委员会组成一般是合作方业务部门大佬、HRG、该业务线大佬等】;
    4. 晋升委员会投票。

    P5升P6相对容易,再往上会越来越难,一般到P7都是团队技术leader了,P6到P7我感觉非常难,从员工到管理的那一步跨出去不容易,当然有同学说P一般都是专家,M才是管理,actually,专家线/管理线有时并不是分的那么清楚的。

    阿里巴巴培训体系长什么样*

    在阿里巴巴集团,人被视为最宝贵的财富。如何将每一位阿里人的个人能力成长融为持续的组织创新实践、集体文化传承,是对阿里巴巴集团建立学习型组织的最基础要求。

    因此,与15年阿里成长历程伴生的,是一个坚持“知行合一”的学习体系。阿里巴巴集团学习体系分为四个部分:新人系、专业系、管理系以及在线学习平台。

    新人培训
    百年阿里”面向全集团所有新进员工

    从看、信、行动(探寻求证)、思考、分享五步骤,动、静结合地去体验五天之旅。

    以“客户第一”为线索,还原阿里的核心价值理念,有机连接新员工与客户的关系;通过与8年以上员工经验的分享、高管面对面,来传递阿里人的精神与秉持,建立新员工与组织历史、文化的连接。

    专业培训
    运营大学、产品大学、技术大学及罗汉堂
    图片描述

    (1)运营大学:基于运营专业岗位的胜任力模型和公司战略方向,为全集团的运营人员提供学习内容和环境。

    纯自主研发适合阿里巴巴集团业务情境的100门专业课程,涵盖四大运营领域岗位,针对不同人群提供精细化的学习方案:例如,保证新人快速胜任岗位的脱产学习、提供进阶技能的岗中学习、以主题沙龙形式进行的专业视野开拓以及促进高潜力员工交流成长的运营委员会等。

    (2)产品大学:基于互联网产品经理的能力图谱,自主研发了接近100门课程,以业务方向为导向,采用多元化形式,提供综合培养手段。

    “PD新人特训营”针对入职3个月内的产品经理,通过全脱产的系统性培训学习,加速员工认知集团产品架构,加深对产品经理岗位认知,快速胜任岗位;“产品大讲堂”,除了提供进阶课程,更解剖实战案例,线下交流线上沉淀;面向各个垂直领域高潜员工的产品经理委员会,则通过定期、不定期的产品论剑、产品体验、游学交流等活动,实现沉淀专业知识,解决业务疑难问题。

    (3)技术大学:面向阿里巴巴集团技术专业领域人才的成长培养,近3年的统计中已开发课程400余门,培养内部讲师近800人,参与培训人数50000余人次。

    在专业课与公开课的基础之上,建立ATA技术沙龙,形成开放的技术人员交流平台,旨在挖掘好的、值得推广的思想、理念、技术等;同时根据公司重点发展的技术领域,邀请外部嘉宾,引入优质内容及分享议题,引导相关领域人员学习了解前沿最新最牛的技术,拓宽眼界,促进内部人员思考成长。

    (4)罗汉堂:面向阿里巴巴集团一线、且入职在3年以内员工的通用能力培养基地。

    完全自主研发的5门课程《情绪管理》、《沟通,其实很简单》、《在合作中成长》、《组织高效会议》以及《结构化思维与表达》。课程内容深度内化,贴合阿里工作情境,具备浓郁的阿里味道。所有课程植入互动体验式模块,以启发个体思考、创造行动改变。

    管理者学习
    行动学习“管理三板斧”、“侠客行”及“湖畔学院”

    图片描述

    (1)管理三板斧:突破管理层级的集体行动学习

    “管理三板斧”包含管理人员的三项基础能力要求:《Get Result》、《Team Building》和《Hire&Fire》。以全景实战的方式,在真实的业务背景中,通过推动集体思考的方式,去提升团队的整体业务能力,以及团队管理能力,也是组织能力、组织文化传递强化落地的实战场。(后面会详细讲到)

    (2)侠客行:面向阿里巴巴集团一线管理者的培养

    分别以业务线和层级进阶推进管理学习的覆盖,培养了近百名内部管理者讲师。

    根据阿里巴巴集团“管理能力图谱”,自主研发了管理者的进阶课程体系,辅以部分引进课程;通过“课上真实案例演练+课后真实作业练习+课后管理沙龙”的不间断学习方式,保证持续对焦管理者在“角色与职责”上的统一认知;根据不同管理场景与复杂度,输出完整的领导力提升方法论和应用技巧;并在侠客行“管理沙龙”形成“良师”(资深阿里管理者)“益友”(同期管理者)之间共同的语言、心力和能量场。

    (3)湖畔大学:面向阿里巴巴集团高阶管理人员的成长培养

    在湖畔大学,以学习的参与者为中心,建立平等、开放的学习体验,通过不同背景、经历的高阶管理者之间的分享交流,解决高阶管理者的融入、战略的对焦、领导力的修炼以及文化的传承。

    在常规的学习安排之外,也设置了不定期的“湖畔大讲堂”,引入国内外杰出学者、业界领袖的分享,提高眼界和视野,通过“业务沙龙”促进协同,建立全局观,提升整合能力;通过“文化沙龙”,挖掘管理背后的问题,传承阿里文化。

    4、阿里学习平台-为全体阿里人提供内部学习和交流平台

    在这里,所有阿里人可以自由报名参加线下培训;查阅过往学习沉淀的视频、文档;可以创建学习计划,监测管理学习的进度;通过即时问答系统得到答疑解惑。

    阿里巴巴集团学习、培训体系的特点:知识都是有情境的,没有情境、背景的知识只是信息。因此,学习内容无论是专业或是管理,无论是技巧、工具或是理念、文化,都已浸透阿里巴巴集团业务场景和组织历史。

    阿里专业和管理学习中所沉淀的相应能力图谱和知识体系的价值是:课程只是学习的形式之一,绝不等于学习;每一位员工的发展图谱比任何一种或多种课程都要重要得多。

    最后重点说一下阿里巴巴著名的“管理三板斧”。

    **

    管理三板斧到底是什么?

    **

    第一板斧
    揪头发(锻炼管理者的眼界)

    为什么要揪头发?

    中高层管理者最容易出现的问题是什么?首先是本位主义:屁股决定脑袋;其次是急功近利捡了芝麻丢了西瓜,短期目标与长期目标的平衡;还有就是圈子利益,山头林立各自为战,大团队的战略与小团队的发展的取舍。

    怎样揪头发?

    一个好的中高层管理者有什么样的标准呢?在思考与思维的层次上,我们认为至少需要做到以下三点,首先是眼界;其次是胸怀;最后是超越伯乐。

    图片描述

    1、开阔眼界
    在揪头发的实际培训中,开阔眼界的训练方法,最直接是三点:做行业历史与发展趋势的分析;做竞争对手的数据整理与竞争分析;做产品及业务的详细规划与发展分析。

    所有的分析,不简单是有一张数据表格,而是小组有3位以上的同学做同一个主题的分析,然后在一定的时间,同一主题的同学集中来汇报和演讲,并由专业的评委评出名次,记录到管理者的评级体系中。在这样的培训体系中,应用最直接的管理思路就是“教学相长”,给别人说得清楚,才证明你自己想清楚了。

    2、训练内心
    在培训中,我们如何训练管理者强大的内心呢?也是从以下的四个方面:

    一是寻找管理者内心的力量,通过坦诚的交流与教练的引导,发现我们自己成长过程中支持自己的最重要的力量源泉和最有成就感的体验,让我们保持这种自我悦纳的心态。

    二是要求团队的参与及支持,充分的团队内部沟通,和团队成员一起探讨变化的必要性与可能的方法,最终得到团队的支持。

    三是更高级别管理者的参与支持与资源支持,上级一定是最重要的资源,好的上级不是来对下属指手画脚的,而是当下属需要的时候可以大力支持,画龙点睛的。

    四是愿赌服输,将目标与计划写入KPI,在业绩考核指标制定的时候,充分地交流,一旦确定,那就愿赌服输,按照事先的约定来做。

    3、超越伯乐
    一个优秀的管理者,是通过成就别人来成就自己的,所以一个好的管理者,必须是一个好的教练。

    而在培训与发展中,如何提升超越伯乐,让管理者愿意培养比自己更优秀的管理者呢?重要的方法有三点。

    首先是后备军机制。如果一个管理者,没有培养出一个可以替代自己的人,那这个管理者就没有升职的可能性,给他一个升职的空间和标准,他就会愿意给出别人升职的空间与培养。

    其次是管理者的专业管理培训。不同级别的管理者,必须设置不同的管理课程学习的计划与目标,管理也是一门科学,也是需要长期的思考与修炼的。

    最后就是允许人才一定的流动,让人才用脚投票。如果一个管理者不能给人空间,不能真正培养自己的团队,那么他的团队成员可以自己选择更好的团队,这样好的团队整体会向前发展。

    作为一个优秀的中高层的管理者,不仅要能够把事情做好,还要做到了解业务发展的路径与方法,探究行业演变的规律与经济环境的局势。

    第二板斧
    照镜子(修炼管理者的胸怀)

    图片描述

    第一面镜子:心镜——做自己的镜子
    曾经有一段时间,我的主管和我交流,他说我最近变了,成长了。我说为什么,他说现在的我不再陷在“自我”的圈子里,而是开始有了思想的镜子,有了更多的超我。

    首先是找到内心强大的自己,让我体会到内心强大的自我,可以在痛苦中坚持自己、成就别人。一次的培训会中,发现其中一个辅导的对象没有达到我内心的标准,但按照KPI,他通过我这关就可以有升值机会,而我的目标也是让更多的人考核通过,但就是内心那种感觉,那种坚持让我定下心来,即使面临着一定的冲突,面临管理者的孤独和被人不理解,也要坚持内心的弦。最后她没有通过,大家都有痛感,直到几个月后,她通过极大的努力再达标,我们终于释怀,非常互相的感激。

    第二面镜子:镜观——做别人的镜子
    要在一个管理团队中,彼此就是对方的土壤,彼此成为对方的镜子是一件非常有挑战的事情。而既然希望我们通过别人的镜子看到我们更加全面真实的自己,首先我们需要学会的是如何才能做一面镜子。

    做镜子,首先需要的是聆听,能够放下自己的评价与好为人师的冲动,能够做一个静静的聆听者。

    做镜子,其次需要的是同理心,也就是能够站在对方的角度去思考问题,但并不是说要盲目地认为他是正确的。首先去理解他的道理,我们才能求同存异,达到共识与理解。

    做镜子,还需要的是共情,也就是能够与对方的情感与情绪共鸣。我们各自的人生经历、价值观与生活的道理可能都不一样,但我们的情绪却是相同的。

    第三面镜子:镜像——以别人为镜子
    能够自我照镜子,又学会了做别人的镜子,我们才有可能以别人,以环境为镜子,真正从多个不同的镜子和去发现自己、去认知自己。

    以别人为镜子,需要创造一个简单信任的团队氛围。我们团队流传这一句话:“你对我不满意,就来找我,可以骂,可以批。但如果你不对我说,而是在背后说,那么请你离开”。一只团队有了信任,才有可能协作的土壤和机会。

    以别人为镜子,还需要我们能主动的去和三种人群交流:上级、平级、下属。在阿里巴巴,我们说“对待上级要有胆量,对待平级要有肺腑,对待下级要有心肝”,每个角度所重视的不一样,上级关注你的思维和价值观,平级关注你的沟通与胸怀,而下级关注你的能力和关爱。去主动与这三类人员交流,坦诚中,自然会看到真实自我和提升点。

    第三板斧: 闻味道(修行一个人的心力)
    图片描述

    一、我们彼此互为土壤,互为空气
    电子商务行业迅猛的发展,许多中小企业为了跨越式的发展,往往会考虑从大型的公司挖优秀人才。

    不久前有两位能力极强朋友也是满怀雄心来到了创业型企业,后来一位小有气象,另外一位却举步维艰。

    原来在这两位加入一个新的团队的时候,大家相同的是都非常看好创业企业项目的前景,同时与企业老板有深入的交流,唯一不同的是其中一位朋友在正式加入之前,参与过团队的团队旅游以及团队的月会,之后才选择这家公司。

    他说到一个新的团队,关键不仅有业务的前景,因为业务好,是这个行业的事情,并不代表着这个团队真的能够在这块业务中可以获得成功,更加不代表着自己一定能在团队中发挥作用。

    二、管理者需要“简单信任”
    作为一个优秀的中高层管理者,我们认为一定要有的味道是:简单信任。

    这个简单说的是简单真实,管理者需要做真实的自己,将心比心,不矫揉造作,不粉饰太平。阿里土话说,“因为信任所以简单”。这个简单,真的不简单,因为每一个看似简单的背后,都需要有强大的内心与自我管理。

    简单,就是说到做到。要让团队做到,必须自己做到,小到一个迟到早退,大到战略布局,做你所说,说你所做。

    简单,就是奖励要奖得心花怒放,惩罚要罚得心服口服。因为奖励不能服众,团队也会土崩瓦解。如果惩罚不能服人,不该罚受了惩罚,该罚的没有处罚,或者处罚的力度宽松不到位,都会引起非常大的动荡。

    简单,关键的背后在于信任。相信团队的每个人都是有能力的,相信大家是可以成长的,而成长过程如果有痛苦和需要给出痛苦,作为管理者就要用一个勇敢的心。简单,背后是相信自己简单的信念。

    三、散发你的味道
    味道,是管理者会自然散发的,着力的散发反而形神不符。在团队中,优秀的团队管理者,应该是非常敏感能够感觉到团队温度的人,奖罚的时机都是散发味道最好的时机。在管理中,最为关键的是“365天的绩效考核”,有优点,要及时传播和奖励;有缺点,要马上发现与建立改进机制,不要秋后算账。
    如果你也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:71859422
    注:加群要求
    1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
    2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
    3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
    4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
    5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
    6.小号或者小白之类加群一律不给过,谢谢。

    目标已经有了,下面就看行动了!记住:学习永远是自己的事情,你不学时间也不会多,你学了有时候却能够使用自己学到的知识换得更多自由自在的美好时光!时间是生命的基本组成部分,也是万物存在的根本尺度,我们的时间在那里我们的生活就在那里!我们价值也将在那里提升或消弭!Java程序员,加油吧

    展开全文
  • 这算一个管理梯队的进阶,而有些更大规模的公司,比如BAT层级会更。 我认为无论哪一层级管理者都可以用这三句概括:自我提升,向上管理,向下负责。大家请将这三句牢牢记住!(敲黑板) 关于「自我提升」谈三点...

    有段时间,在读者群里,大家在激烈讨论管理方面的问题,诸如技术总监的职责是什么,怎么管理好下属以及怎么应对老板不合理的需求。

    今天和大家谈谈我对管理的认知。

    管理者也分层级,经理、总监、高级总监、事业部总经理、副总、CXO、CEO。这算一个管理梯队的进阶,而有些更大规模的公司,比如BAT层级会更多。

    我认为无论哪一层级的管理者都可以用这三句概括:自我提升,向上管理,向下负责。大家请将这三句牢牢记住!(敲黑板)

    关于「自我提升」谈三点:

    1.以身作则

    这点是管理中最重要的一点,没有之一!

    很多人天真的以为管理者就是管团队,管别人,别提多滋润。错!一名真正优秀的管理者首先是管理自己,并且在工作中能做到以身作则!先来看张图:

    在这里插入图片描述

    请问大家喜欢哪一种管理者?我认为优秀的管理者绝不是高高在上的BOSS,而是带着使命感带领大家走向团队成长的那个人。

    你的一言一行、一举一动对员工都具有教育性、示范性和影响力,起着耳濡目染、潜移默化的作用。

    很简单,你要求团队不准迟到,那你自己就别迟到。你想让团队打鸡血奋勇杀敌,那你也要冲在前面,不是兄弟们天天加班你天天度假。

    还要说一句:以身作则是传递企业价值观的唯一方法!

    2.提升领导技能

    培养胜任新职位所需要的能力。

    领导技能缺失是很多业务骨干被提升为初级管理者后的最大障碍,甚至很多人在整个管理生涯中,都无法在领导技能这一项里取得突破。

    一个业务骨干,如果沟通还不错,很容易在团队被提拔成经理。而这个时候角色就从个人贡献者跨越到团队贡献者。所考虑的首先是团队的效能,而不是个人的贡献。

    领导技能的跨越:

    ● 经理级别需要实现从管理自我到管理他人的跨越,这一层级管理者要克服自己攻坚的冲动,需要开始担任普通员工的职业教练

    ● 总监级别需要实现从管理他人到管理经理人员的跨越,这一层级管理者要开始具备更广阔的视野,要对业务有更深入的理解,并且要肩负培养和教练一线经理的职责

    ● 高级总监/事业部总经理需要实现从管理经理人员到管理职能部门的跨越,这一层级的管理者要开始关注商业/业务/财务,并培养制定长期战略的能力

    ● VP/CXO需要拥有优秀跨部门沟通整合能力,优秀的战略洞察能力以及对商业/业务/财务的深度理解

    管理者共同的领导技能包括:
    ● 充分的授权和关键节点的检查
    ● 能担任下属的职业教练
    ● 制定团队计划的能力
    ● 目标管理的能力
    ● 优秀的沟通协调能力

    千万千万千万千万千万千万不要出现管理错位!

    比如经理干着骨干的活,天天攻坚,让骨干没活可干。总监直接管着所有人,让经理没法成长。VP带着一群经理,让总监无所适从。

    我的一个CEO朋友,公司几百人规模了。所有审批、考核、制定目标、招聘决断全一个人干了,甚至自己还天天画原型图。导致团队优秀的人才不断流失,每次跟他见面,他都会给我抱怨,创业太TM累了,这帮员工没一个靠得住!

    得了,哥们,检讨下自己吧。

    3.学会时间管理

    新的时间分配结构,决定如何工作。

    先说一句:如果没有培养出对应管理层级需要的领导技能,那这个管理者的时间分配一定会有严重问题。

    各个管理层级的时间分配:

    ● 经理级别需要将更多的时间放到管理人上面,帮助他人完成任务。这个阶段可以有个人贡献,但不能分配大量时间

    ● 总监级别需要将大部分时间用于管理、沟通、协调资源,同时需要花时间深度理解业务,并且要开始学习更多新知识

    ● 高级总监/事业部总经理需要花更多的时间分析、思考、平衡长期目标和短期目标,并要开始具备一定的战略规划能力

    ● VP/CXO需要花大量时间和事业部班子成员沟通,花大量时间学习新领域,规划新业务,参与制定公司战略

    关于「向上管理」谈五点:

    1.向上管理要影响老板而不是服从老板

    影响老板的前提条件是理解业务,理解老板意图。不要只是服从老板指令,如果只是基层员工绝对服从老板那没毛病,但如果成为管理者只是一味的服从,你的团队绩效绝不会好。

    你肯定比你老板离炮火声更近,更容易对你对团队做出正确判断。

    影响老板的第二层含义是取得老板信任,多沟通多汇报让信息变得透明。

    2.向上管理首先要管理好老板的预期

    能做到的事,我们承诺。不能做到的事,坚决不要吹牛皮。吹牛皮又做不到只有滚蛋一条路!

    反复跟老板确认他对你的期望是什么,达成共识。共识非常重要,共识就是生产力!

    作为管理者,我认为在入职前就应该和老板达成「预期共识」,否则极容易出现「预期偏差」。

    我有个很优秀的大佬朋友,却在上一份工作中惨遭失败。原因是他空降到那家公司之前,没有了解好老板的预期,进入公司后发现老板的预期完全超出他的能力范围。而他是个很要强的人,这个过程也没有和老板重新校正预期。最终老板认为他表现不好,只好黯然离开!

    3.向上管理必须只提建设性意见

    当想法跟老板不一致时,只提建设性意见。不要单纯的反对,谁也不喜欢只反对不给方案。

    提供解决方案,不能只讲困难。遇到问题,需要提出切实可行的方案,把工作中的问答题,转化为判断题或者选择题让老板拍板。只讲遇到的困难,而不提供解决办法,会体现出工作过程中能力的不足,和思想消极的倾向。

    4.向上管理要做到及时反馈

    发挥主观能动性。把自己能做的事情做好,把能铺垫的东西铺垫好,推动老板去完成目标。不必担心提交的版本不够完美,更需要担心的是很长时间都没有反馈。

    还有一点,能用数据做反馈的一定带上数据。这点非常重要,数据不会骗人并且最能反馈客观情况。

    5.向上管理要尽最大努力争取资源

    资源包括人、钱、时间、等等。没有资源的管理者,寸步难行。钱就是预算,人就是人头,时间就是机会成本。甚至有些情况下,老板自己的时间也是资源。

    在360的时候,我们的VP就是老板时间杀手,一会请周鸿祎来代言部门产品,一会找齐向东宣传站台。

    我在哒哒担任dadababy事业部总经理做的最多的一件事就是跟老板争取各种资源。老板不给投放的钱,OK,那我们用公司的玩偶行不行?公司玩偶有一段时间库存比较多,我赶紧申请,囤下一大批放着用。

    老板不给加HC,争取不下来,OK,那我借其他部门的人行不行。借着一直用又不占用HC,是个极好的解决方案。

    会哭的孩子有奶吃,这句话绝对没错!

    「向下负责」再谈四点:

    1.向下负责要对下属的成长负责

    成长是下属最关注的事情,不能给下属带来成长的管理者都是弱鸡!

    管理者比下属一定拥有更多资源和视野,如果管理者不对下属的成长负责,那下属很难取得绩效和突破。

    严格要求下属,担任下属的教练,发现下属的短板并想办法提升,下属有突破的时候的适当鼓励。这些都非常重要。没有下属能力的提升,就不会有团队绩效和团队成长。

    特别是在创业公司,大家辛苦拼搏,很难图名利,这个时候成长就更重要了。

    2.向下负责要对下属的工作结果负责

    绝不能当甩手掌柜。任务分下去就不闻不问,最后出问题了直接拿下属开刀的老板大有人在。

    对下属对过程检查、关键节点的点拨、资源协调都非常重要。同时要关注下属的产出和你的预期是否一致,出现不一致需要做上下对齐工作。

    出了成绩是下属的,出了事故不要为了保全自己把锅全部推给下属。首先反思自己的团队管理,然后建立机制和措施避免下次再出现类似的事情。

    3.向下负责要对团队目标负责

    管理者要给团队提供清晰的目标和努力的方向。没有明确目标,或者目标错误的团队注定不会做成事情。

    明确清晰团队目标后,管理者还需要时刻审视检查团队是否在朝着目标坚定前行,一旦有偏差,这个时候管理者就要介入扭转。确保团队达成目标。

    4.向下负责要对团队文化负责

    负责团队的文化打造和维护。正直、诚信这些就不必说了,这里出问题的团队都会烂掉。我比较倾向于打造透明、开放、包容、学习型组织。这种团队更容易打硬仗,攻山头。

    仪式感的庆祝活动非常必要,取得小成绩公布给大家,并一起庆祝下,会让团队成员之间充满信任和相互依赖。

    组织定期内部分享和外部专家分享,让大家养成学习成长的习惯。这点跟公司,团队大小无关,再小的团队也可以组织起来。

    团队成员之间不是冷冰冰的工作关系,也是战友,好朋友关系。甚至要关注大家的情绪变化,心态变化。适当的时候,谈谈心,了解下属的情况,是非常必要的。

    华为那句超赞:胜则举杯相庆,败则拼死相救!

    展开全文
  • 我们知道精益管理思想的核心之一是“价值”与“价值流”管理,价值一般在这三个层级:战略目标价值、产品价值、需求价值,往往我们开发测试人员更只关注需求这一层的价值,产品经理关注产品这一层的价值,而战略...

    我们知道精益管理思想的核心之一是“价值”与“价值流”管理,价值一般在这三个层级:战略目标价值、产品价值、需求价值,往往我们开发测试人员更多只关注需求这一层的价值,产品经理关注产品这一层的价值,而战略目标价值这一层,往往在管理层的头脑里或管理层领导也没有系统的梳理清楚,一家企业要有效的落地价值驱动,须从公司或业务领域的愿景与战略目标梳理清楚开始,不然做什么产品(或立什么项目),基本是从资源池的人数、友商产品对标或研究学习的目的来驱动立项的,最后做了很多项目,投了很多钱,最后对战略目标实现没有大的帮助,现在我们来看鲸舟研发管理的价值驱动的管理思想。

    一、制定业务战略

    通过对用户、市场、竟品与企业战略的分析活动,明确某领域业务的商业模式,制定数字化业务的发展与竞争战略,设定战略目标,为相关的规划、设计与与研发活动指引方向。

     

    二、规划投资组合

    从业务愿景与目标出发,规划在一段时间(季度或半年)潜在的投资机会与行动举措,确保行动与目标对齐,并且为目标和所有投资、举措的进展和成效提供可衡量的标准,为后续的决策调整提供科学依据。

    三、项目立项

    为规划的每个投资方向或产品设立项目,从而能够与业务方达成交付承诺,制定预算并跟踪、管理投资进展,进行成本与收益的结算。

     

    四、专题需求

    专题是针对需要解决的一个客户、业务或技术问题,提出一个创新或改进想法及其解决方案。以专题为粒度来分析和验证需求的真实价值,实现价值驱动的精益目标。

     

    1. 目标用户/客户: 我们的解决方案主要是解决那一类人的痛点问题。

    2. 背景现状:必要实施该专题的背景 在没有该方案时现在是如何处理的? 存在什么问题待解决?为什么我们应该要做并且能做成?

    3. 价值声明:通过这样的专题解决方案,我能给用户带来什么价值?

    4. 方案描述:如何解决问题?列出主要的解决办法,或图示 实施方案后的状态是什么?

    5. 最小实验:该解决方案的最小可行版本(MVP),以及后续2个版本要提供的功能。

    6. 成功衡量标准:针对方案、价值声明的衡量成功的关键指标。

    7. 粗略大小估算:可以是针对MVP的成本估算,也可以是整个解决方案的成本估算。

    8. RAID分析:该解决方案的风险/假设/问题/依赖,要给出具体的影响范围,并且要思考合理的解决方案。

     

     

    展开全文
  • 如何管理知识

    2016-06-17 20:50:50
    参考“张东”文章。 怎么理解知识?... 具体来说知识分为4个层级,从上到下步步演化转变为我们的知识,而我们大多数人更的只是获取咨询而已,并没有转变为我们的只是。 资料信息知识智慧 学霸公式,改变
  • 到今天,可以看到国内外已有众多主流的低代码/无代码开发平台,发展相对成熟的...以BPM技术为重点,可以通过个有层级关系的表单串联出一个轻量级应用,比如一个进销存管理工具。其主打零代码开发,可以视为是传统单一
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    在很脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理...
  • Cocos creator入门------UI节点复选按钮

    千次阅读 2018-07-06 21:08:31
    怎么实现个复选按钮的排列问题呢? 在层级管理器中 ->右键创建空节点,在空节点的属性检查器中点击添加组件->点击添加UI组件Layout,并选择type,设置SpacingX(x轴间距 )为10。
  • 应用场景很,如:后台管理系统,广告投放系统,营销系统…等,现在流行Vue,React , Anagular 三大框架,下面看看怎么使用Vue实现 实现逻辑 产品经理的评审功能需求如下 根据大分类到子分类层级选择,无层级...
  • configparser是python推荐使用的配置文件管理模块,但坦白说它真的不怎么好用,使用yaml、json等格式的存储,在多层级数据存储上,效率要比它高很多。但存在即合理,不是所有人都会使用yaml的格式,至于json的格式,...
  • 1.1 多层级的入参 出参 ​ 多层级出参 : 调试 特殊特性 支持Model中的属性特殊化隐藏调用 例如 : 增加的时候 id 是不用填写的, 但是修改的时候是必填的, 他们共用一个实体,但只是某些属性在某些场景...
  • 前端面试题---(三)

    2018-09-30 14:21:53
    1.vue中 v-if 与v-show的区别 2.v-for vue生命周期 create与mouted请求页面数据的区别 3.状态管理库 更改用户数据如何去操作(action 里子啊去commit事件 更高state) ...8.vue的多层级组建传数...
  • 应用场景很,如:后台管理系统,旅游系统,广告投放系统,营销系统...等,现在流行Vue,React , Anagular 三大框架,下面看看怎么使用Vue实现 实现逻辑 产品经理的评审功能需求如下 根据大分类到子分类层级选择...
  • Oracle的rac是什么?

    千次阅读 2020-03-19 00:13:15
    rac是什么? 个不同服务器上的实例,访问共享的数据库文件,扩展了CPU和内存,...集群软件:集群管理,节点增删、心跳、同步;包括2个组件:表决磁盘、集群注册服务。 rac数据库软件:提供数据库实例; rac数据库...
  • jmeter之测试片段

    2021-06-02 17:43:12
    因为版本不断的被迭代,接口越来越,可以有效管理我们的测试用例。 每个版本一个jmx脚本,里面包含个测试片段,然后通过控制管理器进行调用。(可以打开几个jmeter进行来跑脚本) 那我怎么使用控制器来调用它? ...
  • 对于非开发人员来说,这个新的功能可能有点复杂,不过不管怎么说,它毫无疑问将WordPress3.0向一个真正的内容管理系统又再推进了一步。自定义分类法允许你创建额外的meta信息。默认情况下是有“分类”和“标签”这两...
  • 使用IDEA和springboot框架有一段时间了,之前一直没怎么注意过新建项目的命名结构啥的,结果后来写的了,就发现一堆demo,层级也很乱,这次决定总结一下,也方便以后对项目的管理。 1.第一步,跟所有IDE一样,先new...
  • 如何写好周报

    千次阅读 2017-07-07 15:35:27
     规模稍微大一些的公司,因为职位分工比较细,管理层级相对,需要向上层直接领导汇报,这就产生了周报、月报,甚至一些公司还要求写的日报。今天我们先从普及程度比较高的周报讲起,周报怎么写领导才能更满意呢!...
  • 支持无限权限层级设置,方便大集团用户 的安全管理。 4、使用云计算技术的竞争对手分析 4小时检测竞争对手的动向; 强大的数据汇总与分析功能。 5、恶意点击分析系统 采用cookie锁定技术, 无论怎么换IP均...
  • Oracle层次查询和with函数的使用

    千次阅读 2013-07-01 22:22:44
    开发中大家应该都做过什么类似部门管理这样的功能,一般情况下一个部门下面还有下一级部门(子部门),这个层级就类似一棵树。这种情况下一般会把父级部门和子级部门分成2个或者个表,这种算是比较常规的做法;...
  • 五月份工作总结怎么写呢?请参照以下这篇五月份工作总结范文。 1、五月份工作计划12项。完成8项,未完成4项。未完成的原因:《固定资产管理办法》领导未给指示;一笑堂新开业的分店的固定资产还不齐全,需要增加较;...
  • 另外用字符画了一些图方便理解,直接嵌入到头文件中,比如虚拟内存的全景图,因没有这些图是很难理解内存是如何管理的,后续还会陆续加入更的图方便理解. 仰望星空还是埋头走路 精读内核源码当然是件很困难的事,...
  • 2019数据运营思维导图

    2019-03-29 21:34:09
    渠道是否存在刷量 什么渠道/用户启动次数 日均使用时长 定义 活跃用户每日平均在线时长 解决问题 游戏的参与度怎么样 产品质量把控指标,游戏粘度如何 渠道质量如何 与单次使用时长结合分析留存和流失问题 用户...
  • 数据运营思维导图

    2018-04-26 14:24:22
    消费属性指用户的消费意向、消费意识、消费心理、消费嗜好等,对用户的消费有个全面的数据记录,对用户的消费能力、消费意向、消费等级进行很好的管理 用户心理属性 心理属性指用户在环境、社会或者交际、感情过程...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

怎么多层级管理