Monday, May 30, 2016

Using Windows PowerShell to Start Service Which Stopped

#Start all non-running Auto services
#C:\Users\duke\Documents
#taskschd.msc

#Step 1: Run One Time
#Set-ExecutionPolicy -Scope LocalMachine Unrestricted

#Step 2: Create a batch file like:  PowerShell -noexit -file "C:\Users\duke\Documents\rstart.ps1", add to windows Scheduler
$Computer = “WIN-36TFBPF3FHK”
$ServiceName = 'webclient'
#stop-service $ServiceName
#get-service -name $ServiceName
Get-WmiObject win32_service -ComputerName $computer -Filter " state != 'running' AND name = '$ServiceName'" | Invoke-WmiMethod -Name StartService
#get-service -name $ServiceName

Friday, May 27, 2016

业务技术专家-业务管理

多与人相处,寻找团队合作的机会,因为这是管理者必需的基础能力


任何团队协作都涉及到任务分工
任何技术团队都涉及到代码规范、合并和管理

一个技术人员的职业发展过程大致是这样的:

实习期
还在学校学习,之前从未涉及过真实工程或项目,实习期间通过阅读项目代码,修复bug等开始积累经验,每天都会觉得自己收获很大,时间不够;


应届毕业
经验不多,参考项目其他模块代码后,能独立完成小功能需求,能胜任小模块开发,也能维护项目代;


工作2-5年
能胜任任何功能模块开发,并开始做模块设计和系统设计,设计的东西自己能用,做得好也许还能给别人;


工作5年以上
负责整个项目的架构设计,实现项目的基础和核心模块。



误区:大甩手就失去控制能力,要插入进去,要控制核心,不失去核心
前三个阶段的思维方式都是考虑自己怎么做,怎么实现功能,怎么完成任务。到第四个阶段,就会开始涉及到管理相关的工作,因为,首先,你的东西再也不是你一个人用的,你需要跟别人讲解和沟通;其次,你的架构和核心模块出来以后,你需要把剩下的任务合理分配给合适的成员来开发。



重心:架构模式设计只做不讲,只分配任务,只做核心

我认为,从技术岗位转型为管理岗位,更多的不是能力的变化,而是思维方式和心态的改变。


作者:李攀
链接:https://www.zhihu.com/question/26830960/answer/64604579
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

管理者三大核心职责如下:

确立团队的目标。
不论项目大小,一定要有目标,有目标才能让所有人明确方向,知道每天工作的意义在哪儿,工作是不是朝着团队的目标在一步步靠近。 纯技术人员的执行者思维应该切换为宏观思维,因为现在个人的成功已经不叫成功,团队成功才是成功,如何让团队产出高的绩效才是你应该思考的问题。

离达成这个目标我们还缺哪些资源。
这点主要涉及到统筹规划能力。在项目初期,你就需要非常清楚明确地知道目前团队的能力以及你能调配的资源,这样才能保证后期不会因为资源不足导致目标无法达成。

我们如何朝着目标迈进。
这一点穿插在整个过程中,是最重要,也是我这两年在聚会玩的团队管理中看到和亲身体会最深的,它囊括了技术管理的方方面面。

如果某件事一个人做需要m个工时来完成,那么n(n>1)个人来做,理论所需工时是m/n,但是实际的时间一定比这个多,结果是(m/n)*α(α>1),α就是协作成本。技术管理者要做的,就是尽量降低协作成本,包括以下方面:

任务分配
之前你一个人能把事情做得很好,现在怎么保证团队一群人把它做好?任务分配包括如何把任务合理地分配给适合的人,能达到最好的结果,即人的价值得以体现,产出质量也高。这就要求管理者对任务的了解要全面深入,对团队每个人的能力了解也要准确。
全局观
技术人员工作时都需要专注,反过来,作为技术管理人员,要防止过度专注。多去了解项目各方面的进展和存在的问题, 对项目和团队的任何细节了如指掌,出现任何大大小小的问题都能迅速定位和分析解决,不会因为专注于技术细节而失去对全局控制。
沟通能力
以前每天和机器沟通,现在切换为和人沟通。以前的桀骜不驯和不屑是因为技术能力强,现在应该切换为更耐心,更注意语气和用词的沟通。另外,更多的去主动发现问题,然后通过沟通技巧来解决问题。
协调调度能力
项目过程中一定会遇到一些无法预期的技术问题导致项目被block,如果问题已经持续未被解决,这时需要及时调度有能力的人来参与解决,防止项目一直处于不确定状态。当多个功能或者项目并行进行时,由于人力资源有限,可能需要不断地根据项目进展来动态调整各项目优先级来保证整体的进度。优先级调度和调整是一个很复杂的过程,但记住一点,我们永远只做优先级最高的事情,最高优先级事情完成以后,优先级第二的事情自然会升级为优先级最高的事情,在这个升级的过程中,我们也许还需要和产品等相关部门进行一次优先级动态调整或者评估。这也涉及到项目管理的负反馈,让每一个阶段的结果反馈给新的阶段,保证最后的结果更接近我们的目标。
时间管理能力
时间管理是每个团队都头疼的事情,直接体现在项目进度上。时间管理看起来很难,实际很简单。每个任务拆分一定要足够细可量化,2天以上的任务都是不合理的。而且过程中需要严格控制好每一个量化好的时间节点或里程碑,保证每个节点的质量和时间点无误是保证最终结果的最好方式,出现任何一处delay都需要强制想办法及时补救,避免积少成多,这样才能防止项目最后出现不可能预期的延期。
放权和培养
亲自去解决具体的技术问题,做代码审核看代码哪些地方存在不规范,和测试人员讨论具体的测试用例是否合理,这些工作现在需要做,但是,它们已经不再是你关注的重点,你应该更多的放权让其他人去做,在这个过程中一定不需事事亲为,在这基础上,你应该更加注重对成员的培养,培养他们的学习能力,思考能力和解决问题的能力(这三个能力是我对技术人员的基本要求),让成员快速进步和成长,独当一面。
倾听
不管以前技术多牛,多恃才放旷和桀骜不驯,作为管理者,需要背负团队的使命和绩效,所以应该在任何时候主动听取团队核心成员的意见,做一个好的倾听者。倾听一定要做到多维度听取,然后再分析和做决定。
学习能力,思考能力和解决问题的能力(这三个能力是我对技术人员的基本要求),让成员快速进步和成长,独当一面。

带领团队来看最为重要的方法是以身作则

开复:做管理的工作最重要的是要有服务的意识,好的管理不在于驾驭他人,而在于有足够的管理智慧。
      S :那么,我该如何得到这种智慧呢?
      开复:首先要得到下属的尊敬和信任。
      S :那我又该如何得到他们的信任呢?
      开复:学会团体合作,学会为下属着想,只有将心比心,才能赢得信任。
      S :该如何得到他们的尊敬呢?
      开复:你要做一个优秀的人,一个有理想、有抱负、有能力的人。这样才能够得到他人的发自内心的尊敬。
      S :那么,我又该如何找到理想、获取抱负、得到能力呢?
      开复:要有良好的素质、习惯和态度。但最重要的是,你必须是一个好人,一个讲诚信的人。惟此,你才有可能成为一个成功的人。


强调责任还应在团队成员身上加以落实,不断倡导对于所承诺的事应努力达成,形成一种务实的团队作风。请记住,责任重于“面子”,不重视责任就是牺牲团队每一个人的利益,无人能逃

高效开会。我发现不少技术管理者有开长会的毛病,有的将开会当作是“team building”,或者同样的问题一遍又一遍地“炒”。开长会通常是团队责任缺失的一种表现、是集体无能的反映、是一种“合理”与奢侈的浪费。


我们团队在开发上做到了每周一次迭代,两周一次版本发布

适合一对一沟通的内容有很多,包括:
不成熟的看法
迫在眉睫的问题
精彩的想法
倾诉焦虑
抱怨

也介绍了一些适合用来引导的问题:
当前产品还有哪些可以提高的地方?
我们部门的最大问题是什么,为什么?
如果有,你觉得工作中有哪一点令你感觉不舒服?
你觉得谁的工作最优秀,为什么?
我们的产品哪方面不尽如人意?
我们错失的最大机遇是什么?
哪些是我们应该做而没有做的?
你自己希望未来在哪些方面能有提高?
有什么我能为你做的事情?

尽量招靠谱的人,那么在管理技术上的工作就只需要遵守「尽量授权」的原则来就可以了


做技术主要有几个方向:
http://chuansong.me/n/306570051751
1. 技术专家

2. 架构师

3. 业务专家


技术专家路线:

技术专家就是通常称为某个领域或者某项特殊技术的专家,举个例子说,你是一个Java专家,那么从Java基本的语言特性到内部机制,JVM虚拟机等等,你无所不知无所不晓,或者是Oracle专家、MySQL专家,就是你所精通的这个子领域你是非常非常专业的,而且这个子领域学习门槛非常高,不是轻易简单可以弄通的,那么你就成为了这个领域专家,自然,你从学习技术中获得乐趣,也从别人膜拜和处理别人没法处理的问题获得快乐,当然,只要这个你擅长的技术领域一直存在,你的职业就会高枕无忧!当然,需要时刻更新自己的知识。技术专家的核心就是:深入而精通!


架构师路线:

架构师就是对某一个技术领域的各个知识点,各种工具都很了解,能够依赖掌握的知识和经验,在做新技术或者是搭建某些业务的时候给出最有效的架构指导,或者在比如性能出现瓶颈的时候迅速可以给出良好的解决方案。架构师的概念很宽泛,软件架构师和互联网体系架构师所需要掌握的技术是完全不同的。举个例子说,你是一个LAMP架构师,那么你会了解Linux、Apache、MySQL、PHP的整套工具组合,你也了解相关网站知识,知道各种开源技术,了解各种碰到问题的解决方案,并且你不局限这些,你还能够通过目前掌握的知识,能够延伸解决更复杂的问题,或者在遇见复杂问题的时候给出最有效的建议和方案。架构师的核心就是:技术能力广、经验丰富、解决问题能力强、思路视野比较宽广。


业务专家路线:

业务专家更多在软件行业,比如说各种ERP系统,或者是某些信息管理类系统,都会存在不同行业的业务差别巨大。比如烟草行业和电信行业就不是一个业务模型,而且这些模型不是随便一个人就可以了解的,别人可能需要花费1年或者好几年才能去深入了解各种业务差别和细节,所以你就是整个了解技术和业务的专家,随便不能被取代,实际表现的职位可能是需求工程师或者是架构师的角色出现,实际掌握的技能是偏业务的,但是整个角色跟一般的市场、产品经理角色不同,而是了解技术的业务专家!只要行业不挂,该类软件需求存在,自然饭碗可保!
从上面来看,其实架构师是很多人追求的,技术专家就需要个人性格和对计算机技术的非常热爱才行,业务专家一般在软件行业,各个业务不同,需求和差别也是很大的。

管理路线:

管理路线跟技术路线要求的技能是完全不同的,一般我们说的管理会偏向于技术管理,但是如果越往上走,可能针对某个领域的管理能力就会越弱化,比如你之前是技术总监需要关注一些大方面的技术方向,等你变成副总裁以后,可能对技术方面的要求就会完全弱化了,更多只是管理能力了。
我们从技术管理角度来看,至少要求懂技术、会管理,这都是宽泛的概念,不同公司对管理的定义不一样,比如有些公司的技术管理角色可能只是一个架构师的角色,或者是一个项目分配的角色,这些都是偏颇。

一般的技术管理来说是能够懂技术,在某些重大技术决策上面会有一些个人的见解,另外就是懂管理,比如很多软素质,沟通能力、向上汇报向下传达能力、团队管理能力、人员培养能力、上下游部门合作把控能力、业务需求沟通能力、在重大问题的决断能力、长远目标和规划能力、执行力等等。我觉得最基础的能力是沟通能力、判断力、执行力、推动能力等,沟通能力渗透到每一个地方,不论是上下游合作,业务和需求讨论,还是团队成员思想教育,都需要沟通能力,管理非常重要的就是沟通能力。另外一个就是判断力,比如你需要能够判断某个业务的重要程度、某个成员的个人能力情况、某个业务需求的合理和实现成本等等,这些是建立在经验或思考后进行准确判断的基础上面。执行力是我们对业务的支持,或者是对上级老板下达工作要求的快速行动,都是执行力的范畴。

综合来看,管理能力跟技术能力的要求差别还是比较大,所以对岗位要求也是不同,实际对人的性格等要求也是不同的

Sunday, May 8, 2016

Toad Oracle Package

Introduction to Toad for Oracle for Developers - in-depth tutorial
https://www.youtube.com/watch?v=sOcg4s93Fqo

1. ER diagram
2. code road map
3. Create Test Case - Code Tester Quest Code Tester for Oracle ; Run Test
4. Debug a Program, break point, time debug
5. Version Control System
6. SQL Optimizer
7. SQL Recall
7.1 Break Point
8. Excution Plan - ReWrite
9. Code Analysis - ANSI Standard, Oracle Standard
10. Code Analysis Dashboard
11. Benchmark Factory - Test Performance
Base, Professional, Xpert


Introduction to Toad for Oracle for DBAs - in-depth tutorial
https://www.youtube.com/watch?v=zMEwY00yBoU
1. Database Browser - Overview, Space Usage
2. Database Health Check


https://www.youtube.com/watch?v=tHi0Xifws_4


Toad for Oracle DBAs
https://www.youtube.com/watch?v=0OpUMVNO2uw

understand power
Jeffrey Pfeffer:
Cultivating Power
https://www.youtube.com/playlist?list=PLF1064CD7B0A98261