Project management 新项目的命名约定

Project management 新项目的命名约定,project-management,naming-conventions,Project Management,Naming Conventions,我已经试了好几次来回答这个问题。我对我的商店里项目的命名方式不满意,它们通常是根据以下项目随机命名的: 客户 项目内部使用/或预期使用的某些技术 项目涉及的商业案例的一些首字母缩略词 项目所在域中的某些名称 我发现这些方法有几个缺点: 当你有许多类似的项目时,pool这个词很快就会消失 将客户机名称放在项目中会使其难以抽象为通用产品 这些首字母缩略词通常听起来很恐怖 有许多项目无法通过原型阶段,因此没有一个合适的名称 在你确切知道一个项目的功能之前,很难给它命名,所以大多数时候,为svn和

我已经试了好几次来回答这个问题。我对我的商店里项目的命名方式不满意,它们通常是根据以下项目随机命名的:

  • 客户
  • 项目内部使用/或预期使用的某些技术
  • 项目涉及的商业案例的一些首字母缩略词
  • 项目所在域中的某些名称
我发现这些方法有几个缺点:

  • 当你有许多类似的项目时,pool这个词很快就会消失
  • 将客户机名称放在项目中会使其难以抽象为通用产品
  • 这些首字母缩略词通常听起来很恐怖
  • 有许多项目无法通过原型阶段,因此没有一个合适的名称
  • 在你确切知道一个项目的功能之前,很难给它命名,所以大多数时候,为svn和问题跟踪项目选择的名称都是不好的
请告诉我:

您的店铺的命名惯例是什么,您满意吗?如果由您决定,您会选择什么?


谢谢大家!

我没有约定,通常项目名称是客户名称的缩写和项目的缩写描述,如“matforming”或“bottlemeasurer”。有时,如果我们为该客户的多个部门或项目组工作,我们会向该部门提供额外的资格认证

这就导致了同样的问题(第一个项目通常会在没有部门资格的情况下获得“客户”的名称),但这是不可避免的。在只做潜在客户的同时,摆弄新客户的公司结构是通向未来的桥梁


有时,当您开始在现有产品或第二代产品上开发变体时,说明也是一个问题。但这也很难预测。

我们的SVN服务器有一个扁平的项目文件夹。所以他们看起来是这样的:

internal-<something>-system
client-<client name>
内部系统
客户-

在我看来,它工作得很好。服务器上的目录结构就是域名。对于我的开发计算机,我遵循SVN服务器的命名约定。不要试图把所有东西都塞进不同的文件夹——一个简单、一致的前缀可以为组织带来奇迹。对于内部项目,通用项目名称(“时间管理器”“财务管理器”)等(因此文件夹将是“内部时间管理器”和“内部财务管理器”等)没有任何错误。

我发现,在这方面,以“功能”而不是特定客户或技术等命名项目是一个很大的帮助。在.NET世界中,几乎习惯于在代码所有者之后开始每个项目的名称,例如MyCompanyName.“some_functionality”.exe

作为一名开发人员,我发现我经常很难为某些函数集选择合适的术语,但当我们早期尝试命名尽可能接近函数的名称时,就不那么困难了。这是“干净代码”开发过程的一部分

有时,以特定技术命名项目确实是有意义的,如果这样的项目名称会对项目使用的内容或位置产生明确的理解边界。例如,理想情况下,您不会将与硬件相关的功能分组到特定于供应商的项目中,而是按“功能”分组,可以是打印机、扫描仪等


实际上,我们应该使用一致性的基本原则。如果我们在项目分组和命名方面保持一致,客户之间的障碍是我们的产品具有较低的学习曲线和较高的采用率。

名称是什么?一切。 确保名称有趣、独特,并显示您正在制作的产品的价值。基于功能的名称是一种方法,但它不应该定义你在做什么,而应该是一个与你正在开发的内容有某种联系的单词

我经常用当地语言(乌尔都语)选择我的项目名称

即使您必须插入客户名称,通常也会忽略客户名称来调用产品,因此,如果您为产品选择强名称,这并不重要

举个例子,我将我编写的国际象棋引擎命名为“Shaatir”。乌尔都语的意思是

  • 非常强壮的棋手
  • 狡猾/聪明的人
  • 设下陷阱的人
  • 邪恶的
  • 每一个意义都与我的程序有关


    编辑:您还可以在产品中添加标语。不知道为什么这个想法在软件行业不那么流行。但很少有例子。比如“人类的UBUNTU-Linux”。为您的产品添加趣味。

    我通常为每个客户划分项目,因为我们有时会为每个客户划分多个项目,但在项目命名中从不使用该客户的名称

    因此,使用你的单词列表,你只会在每个客户机上运行。你需要为一个客户做很多项目,才能快速地完成

    因此,客户x和客户y都可以使用businesscardgenerator工具 通常对于客户y,我们从客户x使用的工具开始,加入一个全新的模板。添加一些自定义字段和属性 如果不可能,那么我们当然必须重新开始

    一般来说,你提到的名字有一个folderstructure 然后项目名称实际上是对项目所做工作的一个非常简短的描述 或者,项目名称是客户打算提供给站点/工具/的实际项目名称。。。 尽管我们目前正在为新项目使用first,但我们仍然保留了实施此用途之前的项目

    intern/projectX/doc
    intern/projectX/resources
    intern/projectX/media
    intern/projectX/code
    
    extern/clientX/projectY/doc
    extern/clientX/projectY/resources
    extern/clientX/projectY/media
    extern/clientX/projectY/code
    
    我们分配一个项目编号(p,然后是五位数),这是SVN、问题跟踪和文档存储库的命名方式;然后这个项目有一个非正式的名字,通常是一些幽默的字谜或短语
    000000 - (Client# always belongs to: Inhouse)
        <In-House Project1: Codename/Release Name>
            <Files> (Trunk, Branch, Tags, etc.)
        <In-House Project2: Codename/Release Name>
            <Files> (Trunk, Branch, Tags, etc.)
    000001 - (Client# belongs to: John Doe in NC according to records.)
        <One of John's Projects: Sensible Name>
            <Files> (Trunk, Branch, Tags, etc.)
        <Another of John's Projects: Sensible Name>
            <Files> (Trunk, Branch, Tags, etc.)
    {...}
    002731 - (Client# belongs to: John Doe in LA according to records.)
        <One of John's Projects: Sensible Name>
            <Files> (Trunk, Branch, Tags, etc.)
        <Another of John's Projects: Sensible Name>
            <Files> (Trunk, Branch, Tags, etc.)