Empowering Developers: A Man Named Tim

Empowering Developers: A Man Named Tim

Ken Sipe

St. Charles, Missouri, U.S.

oFTEn ThE BEST ThIng a software project manager can do is set the vision, set the priorities, and get out of the way. Here’s a true story about a man named Tim.

We found we needed another team member on our project, so we posted the opening and began to interview. One individual soon rose to the top of our candidate list.

His name was Tim. Tim stood out significantly from the other applicants, and it would have been a “no-brainer” decision to hire him. But, there was one dissenting vote. All resources hired into our department may rotate between any one of three project managers. One of those PMs had previous experience working with Tim and indicated that he lacked motivation. She painted a pic- ture of Tim web surfing regularly while on the job, and being a slacker.

This was a tough situation. When making a hiring decision, more weight would normally be applied to a project manager’s personal experience with the candidate as compared to a cold interview. However, from a technical perspec- tive, Tim’s skills significantly exceeded those of other candidates. He was hired despite the dissenting vote. The project was run using an agile development methodology, so we had an open meeting at the start of the iteration.*

The opening meeting has several main purposes:

1. Stories? are created and their priority is established and communicated, based on user input.

* Iteration: A short period of time chosen by an agile project team (a week, two weeks, a month, etc.) during which a key requirement chosen by the customer will be developed, tested, and then delivered to the customer for approval or comment. The next iteration will then begin to develop the next most important requirement and/or correct the work done in the preceding iteration.

? Story: A high-level description of a software requirement, usually broken down into single devel- oper tasks, with just enough information to allow a developer to estimate how long it will take to create, test, and/or implement it.

?

???????????????2. A team vision of the project scope is created through the stories, and good acceptance criteria are established.

3. Stories are broken down into tasks and estimated by the developer who is to complete the task.

After the meeting, the tasks are entered into the task tracking system. The significance of the task tracking system is often misunderstood. It is used for developers to see what tasks are started. If they have finished their own tasks early, they move on by “stealing” (or completing) a task not yet begun by the originally assigned developer.

Tim turned out to be an outstanding hire. He out-produced everyone else on the team. The most obvious measure of his value was in the number of tasks he “stole” from other developers. Completing more tasks meant the project finished quicker.

So the question is, why would another PM see Tim as unproductive? On closer inspection, it became evident that the Tim-basher had a management style that was excessively controlling. She would “spoon-feed” tasks to developers and then leave the team workspace to attend meetings. Tim was so fast that he would complete his assigned task immediately. Without any further direction regarding project priorities or tasks he could begin next, he was left idle.

You’ll be amazed what a good team can do with a clear vision, well-defined acceptance criteria, and shared project priorities not determined by a lone software project manager but known, documented, and managed by the entire team. Sometimes the best thing for the PM to do is get out of the way. Do you manage a Tim?

时间: 2024-10-25 05:53:16

Empowering Developers: A Man Named Tim的相关文章

9 Top JavaScript Frameworks For Mobile App Development

Technically speaking, mobile apps on iOS, Android, and Windows Phone are coded using different programming languages. An iOS app uses Objective-C, an Android app is coded with Java, while a Windows Phone application uses .NET. However, with a decent

CNCF LandScape Summary

CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess is a database clustering system for horizontal scaling of MySQL. Apache CarbonData:Apache CarbonData is an indexed columnar data format for fast analyt

【Tim Sweeney】Why C++ for Unreal 4?

The first three generations of the Unreal Engine included a sandboxed scripting language, UnrealScript, which provided a simple interface for gameplay programming that was shielded from the complexity of the C++ engine.The scripting approach is very

Machine Learning for Developers

Machine Learning for Developers Most developers these days have heard of machine learning, but when trying to find an 'easy' way into this technique, most people find themselves getting scared off by the abstractness of the concept of Machine Learnin

[Airflow] ImportError: No module named lockfile.pidlockfile

When setting up a clean install of airflow on ubuntu 14.04, I ran into the following error: [email protected]:~$ airflow [2016-07-19 15:37:41,839] {__init__.py:36} INFO - Using executor SequentialExecutor [2016-07-19 15:37:41,912] {driver.py:120} INF

ImportError: No module named matplotlib.pyplot

sklearn的网站上不去,准备编译一下在github中的文档: $ cd scikit-learn-master/doc $ make html 出现以下错误: Exception occurred: File "/home/sunlt/Downloads/scikit-learn-master/doc/sphinxext/gen_rst.py", line 850, in generate_file_rst import matplotlib.pyplot as plt Impor

saltstack "ImportError: No module named salt.scripts"错误解决

一.问题描述 生产线上使用的自动化管理工具是saltstack,CentOS6.8 x64,python 2.6.6 ,正所谓不作不死,由于有些功能需要python2.7.x ,在升级好python2.7后,写了saltstack api 发现python2.7不好使,原理是python2.7下没有salt模块,因此pip install salt 即在python2.7下安装成功了salt模块,但是发现重启salt-master时报错.如下图: 生产线啊,这可不行,赶紧恢复吧.pip unin

python模块以及导入出现ImportError: No module named 'xxx'问题

python模块以及导入出现ImportError: No module named 'xxx'问题 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比 如在a.py中使用b.py:  import b 但是如果要import一个不同目录的文件(例如b.py)该怎么做

MyBatis3.4.0以上的分页插件错误:Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.stateme

错误: Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)] with root cause 问题