如何在项目上处理有问题的程序员 [英] How to deal with problematic programmer on project

查看:60
本文介绍了如何在项目上处理有问题的程序员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


我正在通过一家咨询公司开展一个项目,我正在写一些

数据库代码供我们使用在另一个程序员的Excel / VBA项目中。另一个

程序员正在通过同一家咨询公司工作。


我最初并不知道这个其他程序员的经验水平,但他

似乎脚踏实地,友好。我看到了一些麻烦的迹象后,他试图整合我的一些代码,但是把它归结为他试图用另外的程序员思考的方式包装他/ b
。这可能很难用最好的

代码。


现在,很明显这个人有一些严重的问题作为

程序员,我不确定处理它的最佳方法。如果我提供的代码一直工作不好,那将会对我产生严重影响,但相信我,我的代码

经过精心设计并在交付时经过严格测试。


我为这个项目提供的代码在一些类模块中封装了 - 用户可以从中获得
所需的全部内容。创建一个类的实例,以便管理数据库连接和ADO命令对象,将其属性设置为

分配参数,并调用其方法获取更多类的实例

封装结果记录集,提供类型安全的方法来访问

记录集字段等。完全即插即用。


所以他遇到了性能问题,虽然我的测试运行良好,但他还是让我看看他的代码。他接受了我的测试模块,该模块旨在彻底测试我的代码所做的全部测试,并且他正在循环调用它!这意味着,除了其他的东西之外,他还需要重新创建连接和命令对象,只需要完成一次,然后运行它就可以通过循环重新创建连接和命令对象。最大的,

最慢的查询我的代码每次都可以运行,即使他当前的代码不会...... / b $ b需要这些结果。他创建的字符串变量复制了我的枚举类型的

目的,然后使用它们!他使用全局变量来传递参数,并且从不指定变量数据类型。他显然永远不会b $ b编译他的代码,因为我不能尝试编译我的代码来检查问题

因为我不得不评论大约50行编译他的代码中出现错误

这样做等等。他也没有总是使用Option Explicit。


我应该如何以外交方式处理这种情况,但是从灾难中保护项目的方式是什么?


有什么想法吗?

解决方案

" Steve Jorgensen" <无**** @ nospam.nospam>在消息中写道

news:ei ******************************** @ 4ax.com ...

大家好,

我正在通过一家咨询公司开展一个项目,我正在编写
一些数据库代码供我们使用在另一个程序员的Excel / VBA项目中。
的其他程序员正在通过同一家咨询公司工作。

我最初并不了解其他程序员的经验水平,但他似乎脚踏实地,友好。在看到他试图整合我的一些代码之后,我看到了一些麻烦的迹象,但是把它归结为他试图用b $ b来解决另一个程序员的想法,这可能很难用于
最好的代码。

现在,很明显这个人作为程序员有一些严重的问题,而且我不确定处理它的最佳方法。如果我提供的代码一直工作不好,那么
会对我产生严重影响,但请相信我,我的
代码经过精心设计并在交付时经过严格测试。

我为这个项目提供的代码在一些类模块中封装了 - 一个用户
可能需要的代码。创建一个类的实例来管理数据库连接和ADO命令对象,设置其属性
来分配参数,并调用其方法来获取更多类的实例,这些类封装了结果记录集,提供类型安全的方法来访问
记录集字段等。完全即插即用。

所以他遇到性能问题,虽然我的测试运行良好,他有
我看看他的代码。他把我的测试模块设计成彻底的
测试 - 我的代码所做的一切,他正在循环调用它!这意味着,
除此之外,还需要在每次
时间内重新创建连接和命令对象,只需要执行一次,然后运行
最大,最慢的查询我的代码每次都可以运行,即使他当前的代码
根本不需要那些结果。他创建的字符串变量复制了我枚举类型的目的,然后同时使用它们!他使用全局变量
来传递参数,并且从不指定变量数据类型。他显然
从不编译他的代码,因为我不能尝试编译我的检查
问题,因为我必须在他的代码中注释掉大约50行编译错误
他也没有总是使用Option Explicit。

我应该如何通过外交方式处理这种情况,但是以b $ b保护项目免受全面灾难?
有什么想法?



用削尖的铅笔刺伤他的眼睛。

跳上他的桌子。

在他的键盘上踩踏板。

在你的声音的顶部,尖叫:

我是这里的数据库女王!

你有那个,婊子?

HTH


Jim


< blockquote>史蒂夫!


不久前我自己一直处于同事的位置,我可以感受到你的痛苦,但也猜测在他的。


Excel允许用户录制宏whi ch复制了

键击的动作 -

在很多情况下,这些代码的微小修改就是

" program in Excel / VBA"。

我的猜测是你的同事是一个高端的Excel用户,他还学会了记录和修改宏的


课程的整个概念不是用户必须熟悉的东西;听起来好像他还没有完全掌握它。

(在Access中,我们一直在使用Forms,所以它很容易扩展

。根据我的经验,UserForms虽然存在于
Excel中,但并不常用。)

我也会提到如果你'''我们主要通过修改记录的宏来学习,

选项显式和数据类型不一定会产生

出现的问题。

如果你知道的话编译Excel / VBA代码而不是运行它的方法,

我很乐意学习!


我认为这里的重要问题是如何感兴趣的是他正在学习。

当然,他的兴趣水平可能会受到外交官提出建议的影响。

你可以提供与他一起花半个小时来涵盖诸如

变量声明,数据类型和Option Explicit等概念。这样的一个会话

应该足以告诉你他是否能够并且愿意做这样的学习,并且足够短,以至于没有人会因为谁而感到不高兴's
支付给谁。

如果他似乎仍然没有得到它,你可能想谈谈

你在该机构的主管 -

表示非常尊重他的非编程Excel

能力,但表明他需要一些有组织的课程作为他们想要的那种开发人员。

如果他确实得到了,他可能是可以挽救的。

我有时会使用的一种策略这样的情况就是说你需要用你的代码提供一些文件,所以像他这样的人可以适当地使用它,因此你需要他的输入应该是什么文档。

这让你有机会向他解释它的用法。

如果你知道一个很好的教程解释课程以及如何使用它们,

你可以将他推荐给他,并可能节省一些时间。


我不知道人才库是什么在你所在的地区,但是在较小的城市

我居住的地方,我遇到了一个 - 好吧,也许是两个 - 能干的Excel / VBA

程序员在我的十年左右的经验。这不是一项普通的技能。


HTH

- Turtle


" Steve Jorgensen" <无**** @ nospam.nospam>在消息中写道

news:ei ******************************** @ 4ax.com ...

大家好,

我正在通过一家咨询公司开展一个项目,我正在编写
一些数据库代码供我们使用在另一个程序员的Excel / VBA项目中。
的其他程序员正在通过同一家咨询公司工作。

我最初并不了解其他程序员的经验水平,但他似乎脚踏实地,友好。在看到他试图整合我的一些代码之后,我看到了一些麻烦的迹象,但是把它归结为他试图用b $ b来解决另一个程序员的想法,这可能很难用于
最好的代码。

现在,很明显这个人作为程序员有一些严重的问题,而且我不确定处理它的最佳方法。如果我提供的代码一直工作不好,那么
会对我产生严重影响,但请相信我,我的
代码经过精心设计并在交付时经过严格测试。

我为这个项目提供的代码在一些类模块中封装了 - 一个用户
可能需要的代码。创建一个类的实例来管理数据库连接和ADO命令对象,设置其属性
来分配参数,并调用其方法来获取更多类的实例,这些类封装了结果记录集,提供类型安全的方法来访问
记录集字段等。完全即插即用。

所以他遇到性能问题,虽然我的测试运行良好,他有
我看看他的代码。他把我的测试模块设计成彻底的
测试 - 我的代码所做的一切,他正在循环调用它!这意味着,
除此之外,还需要在每次
时间内重新创建连接和命令对象,只需要执行一次,然后运行
最大,最慢的查询我的代码每次都可以运行,即使他当前的代码
根本不需要那些结果。他创建的字符串变量复制了我枚举类型的目的,然后同时使用它们!他使用全局变量
来传递参数,并且从不指定变量数据类型。他显然
从不编译他的代码,因为我不能尝试编译我的检查
问题,因为我必须在他的代码中注释掉大约50行编译错误
他也没有总是使用Option Explicit。

我应该如何通过外交方式处理这种情况,但是以b $ b保护项目免受全面灾难?
有什么想法?



教育和沟通是关键。你有没有告诉他你告诉他什么?b $ b我们(当然是以一种不错的方式)?他可能会很高兴有机会学习更好的方法。


OOP和课程在电子表格/数据库中很难理解和使用br />
界面环境。这些项目是否必要?我确信你的确是这样的,而且我不怀疑你的方法干净又高效,但是他可能不明白他们的用法。我已经亲自编写了类和

在8年的VBA编码中使用了几次类实例

(尽管在我工作过的几个Java项目中)从一开始就是OOP。


另一个选择:你是一个比他更高级的开发人员,所以也许

它是可能的为了你一步到位并调整你的
工作以补偿他的知识基础? 愚蠢地因为它是...


你应该记录问题 - 总结你的第4和第5

段落 - 并确保你的咨询公司项目经理知道

他们。也许他们会以不同的方式分配你的作业,所以有更少(或没有)混合代码和更少的潜在问题。



" Steve Jorgensen" <无**** @ nospam.nospam>在消息中写道

news:ei ******************************** @ 4ax.com ...

大家好,

我正在通过一家咨询公司开展一个项目,我正在编写
一些数据库代码供我们使用在另一个程序员的Excel / VBA项目中。
的其他程序员正在通过同一家咨询公司工作。

我最初并不了解其他程序员的经验水平,但他似乎脚踏实地,友好。在看到他试图整合我的一些代码之后,我看到了一些麻烦的迹象,但是把它归结为他试图用b $ b来解决另一个程序员的想法,这可能很难用于
最好的代码。

现在,很明显这个人作为程序员有一些严重的问题,而且我不确定处理它的最佳方法。如果我提供的代码一直工作不好,那么
会对我产生严重影响,但请相信我,我的
代码经过精心设计并在交付时经过严格测试。

我为这个项目提供的代码在一些类模块中封装了 - 一个用户
可能需要的代码。创建一个类的实例来管理数据库连接和ADO命令对象,设置其属性
来分配参数,并调用其方法来获取更多类的实例,这些类封装了结果记录集,提供类型安全的方法来访问
记录集字段等。完全即插即用。

所以他遇到性能问题,虽然我的测试运行良好,他有
我看看他的代码。他把我的测试模块设计成彻底的
测试 - 我的代码所做的一切,他正在循环调用它!这意味着,
除此之外,还需要在每次
时间内重新创建连接和命令对象,只需要执行一次,然后运行
最大,最慢的查询我的代码每次都可以运行,即使他当前的代码
根本不需要那些结果。他创建的字符串变量复制了我枚举类型的目的,然后同时使用它们!他使用全局变量
来传递参数,并且从不指定变量数据类型。他显然
从不编译他的代码,因为我不能尝试编译我的检查
问题,因为我必须在他的代码中注释掉大约50行编译错误
他也没有总是使用Option Explicit。

我应该如何通过外交方式处理这种情况,但是以b $ b保护项目免受全面灾难?
有什么想法?



Hi all,

I''m working on a project through a consulting company, and I''m writing some
database code for use in another programmer''s project in Excel/VBA. The other
programmer is working through the same consulting company.

I did not initially know this other programmer''s experience level, but he
seemed down to earth and friendly. I saw some signs of trouble after having
him try to integrate some of my code, but chalked it up to him trying to wrap
his mind around how another programmer thinks, which can be hard with the best
of code.

Now, it has become clear this person has some serious problems as a
programmer, and I''m not sure the best way to handle it. it''s going to reflect
badly on me if the code I deliver keeps working badly, but believe me, my code
is carefully designed and rigorously tested when delivered.

The code I delivered for this project encapsulates -everything- a user could
need from it in a few class modules. Create an instance of one class to
manage the database connection and ADO command object, set its properties to
assign parameters, and call its methods to get instance of more classes that
encapsulate result recordsets, provide type-safe methods for accessing
recordset fields, etc. Totally plug-and-play.

So he''s having performance problems, though my tests run well, and he has me
look at his code. he took my tests module that is designed to thoroughly test
-everything- my code does, and he''s calling it in a loop! That means, he''s
among other things, recreating the conneciton and command objects each time
through his loop when it only needs to be done once, and running the biggest,
slowest queries my code can run each time even though his current code won''t
need those results at all. He created string variables that duplicate the
purposes of my enumerated types, then uses both! He uses global variables to
pass parameters, and never specifies variable data types. he obviously never
compiles his code, because I can''t try to compile mine to check for problems
because I''d have to comment out about 50 lines compile errors in his code to
do it, etc. He also fails to always use Option Explicit.

How should I handle this situation diplomatically, but in a way that protects
the project from total disaster?

Any thoughts?

解决方案

"Steve Jorgensen" <no****@nospam.nospam> wrote in message
news:ei********************************@4ax.com...

Hi all,

I''m working on a project through a consulting company, and I''m writing some database code for use in another programmer''s project in Excel/VBA. The other programmer is working through the same consulting company.

I did not initially know this other programmer''s experience level, but he
seemed down to earth and friendly. I saw some signs of trouble after having him try to integrate some of my code, but chalked it up to him trying to wrap his mind around how another programmer thinks, which can be hard with the best of code.

Now, it has become clear this person has some serious problems as a
programmer, and I''m not sure the best way to handle it. it''s going to reflect badly on me if the code I deliver keeps working badly, but believe me, my code is carefully designed and rigorously tested when delivered.

The code I delivered for this project encapsulates -everything- a user could need from it in a few class modules. Create an instance of one class to
manage the database connection and ADO command object, set its properties to assign parameters, and call its methods to get instance of more classes that encapsulate result recordsets, provide type-safe methods for accessing
recordset fields, etc. Totally plug-and-play.

So he''s having performance problems, though my tests run well, and he has me look at his code. he took my tests module that is designed to thoroughly test -everything- my code does, and he''s calling it in a loop! That means, he''s among other things, recreating the conneciton and command objects each time through his loop when it only needs to be done once, and running the biggest, slowest queries my code can run each time even though his current code won''t need those results at all. He created string variables that duplicate the
purposes of my enumerated types, then uses both! He uses global variables to pass parameters, and never specifies variable data types. he obviously never compiles his code, because I can''t try to compile mine to check for problems because I''d have to comment out about 50 lines compile errors in his code to do it, etc. He also fails to always use Option Explicit.

How should I handle this situation diplomatically, but in a way that protects the project from total disaster?

Any thoughts?


Stab him in the eye with a sharpened pencil.
Leap up on to his desk.
Stomp all over his keyboard.
At the top of your voice, scream:
"I am the Database Queen around here!"
"Have you got that, bitch?"
HTH

Jim


Hi, Steve!

Having been in the position of your colleague not so very long ago myself, I
can feel your pain, but also guess at his.

Excel permits a user to record a macro which duplicates the actions of
keystrokes -
in many cases, minor modifications of such code is all that it takes to
"program in Excel/VBA".
My guess is that your colleague is a high-end Excel user, who has also
learned to record and modify macros.
The whole concept of classes is not something such a user would necessarily
be familiar with; it certainly sounds as if he hasn''t fully grasped it.
(In Access, we work with Forms all the time, so it''s fairly easy to expand
from that concept. In my experience, UserForms, although they exist in
Excel, are not commonly used.)
I''d also mention that if you''ve learned mostly by modifying recorded macros,
Option Explicit and data types are not necessarily issues that would have
arisen.
And if you know of a way to compile Excel/VBA code other than running it,
I''d love to learn!

I think the significant question here is how interested he is in learning.
His interest level, of course, may be strongly influenced by how
diplomatically you make the suggestion.
You could offer to spend a half an hour with him covering concepts like
variable declarations, data types, and Option Explicit. Such a session
should be enough to tell you whether he''s able and willing to do such
learning, and is short enough that nobody should get too upset about who''s
paying whom for it.
If he still just doesn''t seem to be getting it, you might want to talk to
your supervisor at the agency -
expressing a good deal of respect for his non-programming Excel
abilities, but indicating he''d need some organized coursework to be the kind
of developer they want.
If he does get it, he''s probably salvageable.
One tactic I sometimes use in such cases is to say you need to provide
some documentation with your code, so folks like him can use it
appropriately, so you need his input on what should be in the documentation.
This gives you a chance to explain its use thoroughly to him.
If you know a good tutorial that explains classes and how to use them,
you could refer him to that, and possibly save yourself some time.

I don''t know what the talent pool is in your area, but in the smaller city
where I live, I''ve run into one - well, maybe two - competent Excel/VBA
programmers in my decade or so of experience. It''s not a common skill.

HTH
- Turtle

"Steve Jorgensen" <no****@nospam.nospam> wrote in message
news:ei********************************@4ax.com...

Hi all,

I''m working on a project through a consulting company, and I''m writing some database code for use in another programmer''s project in Excel/VBA. The other programmer is working through the same consulting company.

I did not initially know this other programmer''s experience level, but he
seemed down to earth and friendly. I saw some signs of trouble after having him try to integrate some of my code, but chalked it up to him trying to wrap his mind around how another programmer thinks, which can be hard with the best of code.

Now, it has become clear this person has some serious problems as a
programmer, and I''m not sure the best way to handle it. it''s going to reflect badly on me if the code I deliver keeps working badly, but believe me, my code is carefully designed and rigorously tested when delivered.

The code I delivered for this project encapsulates -everything- a user could need from it in a few class modules. Create an instance of one class to
manage the database connection and ADO command object, set its properties to assign parameters, and call its methods to get instance of more classes that encapsulate result recordsets, provide type-safe methods for accessing
recordset fields, etc. Totally plug-and-play.

So he''s having performance problems, though my tests run well, and he has me look at his code. he took my tests module that is designed to thoroughly test -everything- my code does, and he''s calling it in a loop! That means, he''s among other things, recreating the conneciton and command objects each time through his loop when it only needs to be done once, and running the biggest, slowest queries my code can run each time even though his current code won''t need those results at all. He created string variables that duplicate the
purposes of my enumerated types, then uses both! He uses global variables to pass parameters, and never specifies variable data types. he obviously never compiles his code, because I can''t try to compile mine to check for problems because I''d have to comment out about 50 lines compile errors in his code to do it, etc. He also fails to always use Option Explicit.

How should I handle this situation diplomatically, but in a way that protects the project from total disaster?

Any thoughts?



Education and communication is the key. Have you told him what you''ve told
us (in a nice way, of course)? He''ll probably appreciate the chance to
learn a better way.

OOP and classes can be difficult to understand and use in a spreadsheet/db
interface environment. Are they necessary to the project? I''m sure in your
mind they are, and I don''t doubt your approach is clean and efficient, but
he might not understand their usage. I''ve personally written classes and
used class instances only a handful of times in 8 years of VBA coding
(though on a couple of Java projects I worked on it was OOP from the start).

Another option: you''re a much more advanced developer than he is, so maybe
it''s possible for you to "step it down a notch" and make adjustments in your
work to compensate for his knowledge base? "dumb it down" as it were...

You should document the issues - summed up well by your 4th and 5th
paragraphs - and make sure your consulting company project manager is aware
of them. Maybe they''ll split your assignments up differently, so there''s
less (or no) mingling of code, and fewer potential problems.


"Steve Jorgensen" <no****@nospam.nospam> wrote in message
news:ei********************************@4ax.com...

Hi all,

I''m working on a project through a consulting company, and I''m writing some database code for use in another programmer''s project in Excel/VBA. The other programmer is working through the same consulting company.

I did not initially know this other programmer''s experience level, but he
seemed down to earth and friendly. I saw some signs of trouble after having him try to integrate some of my code, but chalked it up to him trying to wrap his mind around how another programmer thinks, which can be hard with the best of code.

Now, it has become clear this person has some serious problems as a
programmer, and I''m not sure the best way to handle it. it''s going to reflect badly on me if the code I deliver keeps working badly, but believe me, my code is carefully designed and rigorously tested when delivered.

The code I delivered for this project encapsulates -everything- a user could need from it in a few class modules. Create an instance of one class to
manage the database connection and ADO command object, set its properties to assign parameters, and call its methods to get instance of more classes that encapsulate result recordsets, provide type-safe methods for accessing
recordset fields, etc. Totally plug-and-play.

So he''s having performance problems, though my tests run well, and he has me look at his code. he took my tests module that is designed to thoroughly test -everything- my code does, and he''s calling it in a loop! That means, he''s among other things, recreating the conneciton and command objects each time through his loop when it only needs to be done once, and running the biggest, slowest queries my code can run each time even though his current code won''t need those results at all. He created string variables that duplicate the
purposes of my enumerated types, then uses both! He uses global variables to pass parameters, and never specifies variable data types. he obviously never compiles his code, because I can''t try to compile mine to check for problems because I''d have to comment out about 50 lines compile errors in his code to do it, etc. He also fails to always use Option Explicit.

How should I handle this situation diplomatically, but in a way that protects the project from total disaster?

Any thoughts?



这篇关于如何在项目上处理有问题的程序员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆