精华内容
下载资源
问答
  • 大数据项目交付国标by Paul McGillivray 保罗·麦吉里夫瑞(Paul McGillivray) 在紧迫的期限内交付大型Web项目 (Delivering a big web project for a tight deadline) This week we launched the first phase of a ...

    大数据项目交付国标

    by Paul McGillivray

    保罗·麦吉里夫瑞(Paul McGillivray)

    在紧迫的期限内交付大型Web项目 (Delivering a big web project for a tight deadline)

    This week we launched the first phase of a large website for a fast-growing business, ‘Jump In’. The company was opening another new trampoline park this week, and wanted the website to go live beforehand. So our deadline was fixed, and we were committed to launching a full-fat, high class website in time for the launch.

    本周,我们为快速发展的业务推出了大型网站“ Jump In”的第一阶段。 该公司本周将开放另一个新的蹦床公园,并希望该网站能够提前上线。 因此,我们的截止日期是固定的,因此我们致力于在发布之前及时启动一个完整的高级网站。

    With only two and a half weeks to build the site once the designs were approved, the whole team had to, er, jump in, and pull together to deliver a project we were proud of.

    设计获得批准后,仅用了两个半星期的时间就建立了站点,整个团队不得不,很费力,参与进来并共同完成了我们引以为傲的项目。

    This was the first ‘under fire’ test for our newly-rebuilt team here at Remote, so it was a good process and we learned a lot about how we work together and how our new workflow performs under pressure.

    这是对我们在Remote的新组建的团队的第一个“测试中”测试,因此这是一个很好的过程,我们了解了很多有关我们如何合作以及如何在压力下执行新工作流程的知识。

    I thought it would be helpful to share the points that helped us stay on track and launch on time.

    我认为分享有助于我们按时完成并按时启动的观点会有所帮助。

    优先考虑您的用户故事 (Prioritize your user stories)

    For all our projects, we use the classic User Story backlog with a Kanban board for our task management. Being a .NET development company, we’ve inevitably ended up using Visual Studio Team Services, which we’ve found to be intuitive, simple, and powerful. In the past we’ve worked with TargetProcess, ActiveCollab, and most recently Jira, before moving to VSTS.

    对于我们所有的项目,我们使用经典的用户案例积压和看板来完成任务管理。 作为.NET开发公司,我们不可避免地最终使用了Visual Studio Team Services,我们发现该服务直观,简单且功能强大。 过去,在迁移到VSTS之前,我们曾与TargetProcessActiveCollab和最近的Jira合作。

    We make sure that our User Story backlog is always in priority order. With our hearts happily committed to the Agile Manifesto, those priorities are our customer’s business priorities, and not our development priorities.

    我们确保用户案例积压工作始终处于优先顺序。 我们衷心地致力于敏捷宣言,这些优先事项是我们客户的业务优先事项,而不是我们的发展优先事项。

    What this means is that although we might really feel like we’d like to build the entire business layer for the whole project upfront to make our lives easier further down the road, the business layer in itself doesn’t offer any value to our client — they don’t want a business layer, they want their customers to click a ‘Book Now’ button that works, or to fill in a ‘Contact Us’ form that posts to the Constant Contact API.

    这意味着,尽管我们可能真的觉得我们想为整个项目预先构建整个业务层,以使我们的生活更轻松,但是业务层本身并没有为客户提供任何价值。 —他们不需要业务层,他们希望客户单击可以正常工作的“立即预订”按钮,或填写发布到Constant Contact API的“联系我们”表单。

    So we name and prioritize our tasks accordingly, with the most pressing business requirement at the top, and the business layer is naturally built on an ‘as-needed’ basis.

    因此,我们以最紧迫的业务需求为首,对任务进行相应的命名和优先排序,并且业务层自然是在“按需”基础上构建的。

    We get three obvious benefits from this method:

    通过这种方法,我们可以获得三个明显的好处:

    1. We don’t find ourselves building architecture for features that are never built, or features that are never used.

      我们不会发现自己为从未构建或从未使用过的功能构建体系结构。
    2. If the client needs to swap out a feature in the backlog for a suddenly-more-urgent one, we haven’t wasted any development time in preparing for that feature.

      如果客户需要将积压的功能换成急需的功能,我们就不会浪费任何开发时间来准备该功能。
    3. If for whatever reason, the client needs to launch early, or runs out of money and can’t continue the development (although that’s never actually happened to us), the project will have already been built with the most important features, and those left behind will be the ones that don’t matter so much.

      如果出于某种原因,客户需要及早启动,或者资金耗尽,无法继续开发(尽管这对我们来说从来没有发生过),那么该项目已经具有最重要的功能,而那些功能后面将是无关紧要的那些。

    It’s a comforting and efficient way of working.

    这是一种舒适而有效的工作方式。

    建立提前检查清单 (Build an in-advance checklist)

    In the heat of the moment, hours from deadline, it can be easy to forget the small things that are still essential to getting a project launched.

    在距离截止日期数小时的紧张时刻,很容易忘记那些对于启动项目仍然必不可少的小事情。

    Building a checklist right at the start of the project can help you keep focus in the heat of battle, and also might give you a pointer about what you might be able to do early, before the pressure mounts. Items that are relatively unimportant and small when it comes to development can mean big trouble later down the line if they’re forgotten; stuff like Google Analytics tracking code, and 301 redirects from pages on the old site, to their new replacements.

    在项目开始时建立清单,可以帮助您将重点放在战斗中,也可以为您提供在压力增加之前可以尽早完成工作的指示。 对于开发而言相对不重要且较小的项目,如果忘记了,可能会带来很大的麻烦。 诸如Google Analytics(分析)跟踪代码之类的内容,以及301从旧网站上的页面重定向到新的替换页面。

    We created user story tasks for each item, and put them at the bottom of the backlog, so that once all the main features were uploaded and tested, we knew that these jobs also had to be done before launch.

    我们为每个项目创建了用户故事任务,并将它们放在积压的底部,因此,一旦所有主要功能都上传并进行了测试,我们知道在发布之前也必须完成这些工作。

    There are some great web checklists available online which might help you think of what you might need to include.

    网上有一些很棒的网络清单,可以帮助您考虑可能需要包括的内容。

    http://frontendchecklist.io is an open source project created by David Dias that’s incredibly comprehensive and trending highly on GitHub at the moment, with lots of community contributions. The Humaan Website checklist is both pretty and comprehensive, as is webdevchecklist.com

    http://frontendchecklist.io是由David Dias创建的一个开源项目,该项目非常全面,目前在GitHub上非常流行,并做出了很多社区贡献。 Humaan网站核对清单既漂亮又全面, webdevchecklist.com也是如此

    Tom Houdmont has a very detailed and useful article on box UK on things to remember. And if you want to go deep, the ever-excellent Smashing Magazine has a list of no less than 45 Website Checklists to cover every web specialty.

    汤姆·霍蒙(Tom Houdmont) 在Box UK上有一篇非常详尽且实用的文章,内容值得记住。 而且,如果您想深入了解,则非常出色的Smashing Magazine列出了不少于45个网站清单 ,涵盖了每个Web专业。

    预先获取重要信息 (Get important information up-front)

    Now that we have our end-of-phase checklist, we know what we’ll need to know before launch. It’s really helpful to get any information or resources that you’re missing right away, so that you don’t forget to ask in the heat of the action further down the line.

    现在我们有了阶段结束清单,我们知道在发布之前需要知道的内容。 立即获取您丢失的任何信息或资源,这真的很有帮助,这样您就不会忘记在下一步的工作中进行询问。

    Take it from me, there’s nothing so disheartening as working your guts out to meet a project deadline, only to realize at the very last minute that you didn’t get a copy of the SSL certificate for the new site, and will have to wait hours for a new one to be processed because the client’s IT manager doesn’t have a copy of the private key.

    从我这里拿走,没有什么比让您胆量大到赶上项目截止日期令人沮丧的了,直到最后一刻才意识到您没有获得新站点的SSL证书的副本,并且必须等待一个小时要处理一个新密钥,因为客户的IT经理没有私钥的副本。

    DNS login details, Google analytics ID, SSL certificate, and any other documents, images and any other resources you might need during the project development — anything you can get right upfront might save you hours later when it matters.

    DNS登录详细信息,Google Analytics(分析)ID,SSL证书,以及在项目开发过程中可能需要的任何其他文档,图像和任何其他资源-您可以直接获得的任何内容都可以在事后节省数小时。

    不要让范围蠕动破坏您的截止日期 (Don’t let scope-creep destroy your deadline)

    When the client begins to see the project developing, new and previously-unscoped ideas can come in thick and fast. From suggestions for a new way of displaying data, to whole new features and sections that had previously been forgotten and omitted from the spec, it can be tempting to see the new must-have, and down-tools to add it to the project. That’s fine, but let’s remember the most important thing first.

    当客户开始看到项目正在开发时,新的和以前未曾讨论过的想法会Swift出现。 从关于显示数据新方法的建议,到以前在规范中被遗忘和遗漏的全新功能和部分,很容易看到新的必备功能以及将其添加到项目中的工具。 很好,但是首先让我们记住最重要的事情。

    There’s an old saying in the software development world: “Quality, Budget, or Time: pick any two”. We don’t like that. We don’t ever want to compromise on quality, go over budget, or miss a deadline. So we add a third: Scope.

    在软件开发界有句老话:“质量,预算或时间:任意选择两个”。 我们不喜欢那样。 我们永远都不想在质量上做出妥协,超出预算或错过最后期限。 因此,我们添加了第三个:范围。

    So we keep our quality, we stick to budget, and we meet our deadline, but what’s delivered on that deadline is continually up for discussion and consideration.

    因此,我们保持质量,遵守预算,并在截止日期之前完成任务,但是在该截止日期之前交付的内容仍在不断讨论和考虑中。

    So when a client asks for a new feature — mid-development — that will for example take half a day to build, we reply “certainly — which feature would you like to remove from the release to make way for this new feature?”

    因此,当客户要求开发一个新功能(例如开发中)时,例如可能要花半天的时间,我们会回答“肯定地-您想从发行版中删除哪个功能,以便为该新功能让路?”

    The resultant discussion will make sure that the client is focusing on their priorities, and will help inform them whether that new idea is worthy of the current release or whether it should be held off for a future phase. By keeping control of the scope, we keep the other values (and our evenings) protected. Which leads me nicely to my next point:

    由此产生的讨论将确保客户专注于他们的优先事项,并将帮助告知他们该新想法是否适合当前版本,或者是否应推迟到以后的阶段。 通过控制范围,我们可以保护其他值(和我们的夜晚)。 这很好地引出了我的下一个观点:

    保持高质量 (Keep quality high)

    New features are built and uploaded quickly as the deadline approaches, and we can easily forget to test as thoroughly as we would normally. And quality control for stylesheets and interactions can just as easily be compromised.

    新功能会随着截止日期的临近而快速构建和上载,我们很容易忘记像往常一样进行彻底的测试。 样式表和交互的质量控制同样容易受到影响。

    I’d much rather spend that extra time when I’m in the code for a feature to make sure I’m going to deliver it properly — looking as it should, working as it should, with the correct stylesheets and appropriate validation on forms and so on.

    我宁愿花一些额外的时间在功能代码中,以确保我能够正确交付它-看起来应该正确,应该正常工作,使用正确的样式表并在表单上进行适当的验证等等。

    I’m not saying we should over-build and write code that’s not required, but it’s much nicer to spend the time doing it right than having to go back and look at it again at the client’s request when I’m much closer to the deadline. It’s stressful, and I don’t need that kind of negativity in my life, thank you.

    我并不是说我们应该过度构建和编写不需要的代码,但是花些时间正确地做起来比在我离客户越来越近时不得不回头再看客户的请求要好得多。最后期限。 压力很大,我一生都不需要这种消极情绪,谢谢。

    Keep it lean, keep your patterns in check, write your tests, and do your QA. First time, not when it’s about to launch — or worse, after it’s launched!

    保持精益,检查模式,编写测试并进行质量检查。 第一次,不是在它即将发布时-或更糟糕的是,在它发布后!

    不要在压力下失去流程 (Don’t lose your process under pressure)

    Flowing from what I’ve just been saying, as well as keeping your code clean, it’s important to keep your project management process in place when you’re under fire too, especially if you’re working in a team.

    从我刚才讲的内容以及保持代码的简洁性来看,重要的是在遇到麻烦时也要保持项目管理流程到位,尤其是在团队中工作时。

    I’ve totally been there — I’m running out of time, and so instead of adding my user stories to the VSTS backlog, I write a little checklist in Notepad++ or Todoist (my new favorite productivity tool). Before I know it, none of the team knows what tasks I’m working on, no one knows what tasks have been done, and another one of the dev team are working on something I’ve already fixed.

    我已经去过那里了-我时间不多了,所以我没有在VSTS待办事项列表中添加用户案例,而是在Notepad ++或Todoist (我最喜欢的新生产力工具)中编写了一个清单。 在不知不觉中,没有一个团队知道我正在执行的任务,没有人知道已经完成了哪些任务,而另一个开发团队正在研究我已经解决的问题。

    Stick to the process — there’s a reason it’s in place, or you’ll end up slowing down by trying to go more quickly.

    坚持这一过程-这是有原因的,否则您将试图加快速度而最终减慢速度。

    There’s a fantastic book about this called ‘Work Clean: The Life-Changing Power of Mise-En-Place to Organize Your Life’ by Dan Charnas. In the book, Charnas talks about ‘Slowing Down to Speed Up’ — taking time to make sure everything is prepared and processes are in place actually helps you reach a much faster productivity speed when you’re in the flow. Give it a try, and check out the book, too; I loved it.

    丹·查纳斯(Dan Charnas)有一本很棒的书,名为“ 干净工作:在Mise-En-Place组织生活的改变人生的力量” 。 在书中,Charnas谈论了“放慢速度以加快速度”-花时间确保一切准备就绪并且流程到位实际上可以帮助您在流程中更快地提高生产率。 尝试一下,也可以检查一下这本书; 我爱它。

    确保您清楚“完成”的定义 (Make sure you’re clear on your definition of “done”)

    User stories are, by their definition, usually short and concise. We ensure that our agile-inspired project management doesn’t turn into a simple waterfall in short cycles by discussing each story when it’s due to be done, instead of speccing it out weeks in advance in full detail.

    根据其定义,用户故事通常简短明了。 我们确保通过敏捷的项目管理在短周期内不会变成简单的瀑布,方法是在每个故事即将完成时进行讨论,而不是提前几个星期详细说明。

    The downside of this is that a developer who’s not been involved in the scoping and specification process won’t have the full background on a user story when they pick it from the top of the list. If everyone’s got their head down on their own stories as the deadline draws near, it might be tempting for the developer to just get on with the task.

    不利的一面是,未参与范围界定和规格制定过程的开发人员从列表顶部选择用户故事时,将不会具有完整的用户故事背景。 如果在截止日期临近时每个人都对自己的故事不屑一顾,那么开发人员可能会着手完成任务。

    Now in many cases, a simple and concise user story will be easy to interpret. But in other cases, the developer could find themselves down a rabbit hole, working on tasks that simply don’t need to be completed by the deadline.

    现在,在许多情况下,简单明了的用户故事将易于解释。 但是在其他情况下,开发人员可能会发现自己陷入困境,从事的工作根本不需要在截止日期之前完成。

    There are a few things we can do to try to prevent this scenario:

    为了防止这种情况,我们可以做一些事情:

    Taking to heart the ‘Slowing Down to Speed Up’ concept I’ve just referred to, the developer must always talk with the product manager about the story if there’s any need at all for clarification.

    牢记我刚才提到的“减速以加快速度”的概念,如果有任何需要澄清的内容,开发人员必须始终与产品经理讨论这个故事。

    As developers, it can be very easy for us to think ‘oh it’s ok I got this’ and just get on with it. But remembering that the customer is part of the team, picking up the phone and going over the story with the client can be very enlightening most of the time.

    作为开发人员,我们很容易想到“哦,我知道了”,然后继续进行下去。 但是要记住,客户是团队的一部分,拿起电话与客户讨论整个故事在大多数时候都非常有意义。

    At the very least, a quick conversation with the person who wrote the ticket will make sure that everyone’s on the same page.

    至少,与写票的人进行快速对话将确保每个人都在同一页面上。

    The person writing the user story in the first place should include a ‘definition of done’. This can simply be a list of things that will happen when the story is completed. For example:

    首先,编写用户故事的人应包括“完成的定义”。 这可以只是故事完成时将要发生的事情的列表。 例如:

    • The user clicks on the ‘reports’ button, and is presented with a list of reports

      用户单击“报告”按钮,并显示报告列表
    • The list contains the name, description, file type, and a ‘download’ button for each report

      该列表包含每个报告的名称,描述,文件类型和“下载”按钮
    • Clicking on ‘download’ saves the report to the user’s device

      单击“下载”将报告保存到用户的设备
    • Access tokens must be used when retrieving the downloads to maintain security of the documents

      检索下载文件时必须使用访问令牌以维护文档的安全性

    So, those are the main things that either saved us or held us back, depending on when the lessons were learned during this particular project. I really hope you find some of these points useful when you’re working to a tight deadline, or even if you’re just working on your next software or web project.

    因此,这些主要因素是拯救我们还是使我们退缩,这取决于在这个特定项目中何时汲取教训。 我真的希望您在紧迫的工作期限内,甚至是在处理下一个软件或Web项目时,发现其中的一些有用之处。

    We still have a couple of phases to go, but both us at Remote, and our clients, Jump In, are delighted with the site so far. Check it out at www.gojumpin.com.

    我们还有两个阶段,但到目前为止,我们Remote的客户和我们的客户Jump In都对该站点感到满意。 在www.gojumpin.com上进行检查。

    Originally published at remote.online.

    最初发布在remote.online上

    翻译自: https://www.freecodecamp.org/news/delivering-a-big-project-to-a-tight-deadline-4645aa62886d/

    大数据项目交付国标

    展开全文
  • 项目交付体系

    千次阅读 2020-08-05 13:56:46
    伴随公司的逐步发展尤其是产品软件公司,企业的产品逐步趋于精品及完善,但如何能够提高项目交付速率,将项目交付批量化、产品交付成熟化、产量化,实现此过程的前置条件有哪些,距离当前的目标还需要做哪些事情,...

    项目是为了提供独特产品或服务而暂时承担的任务,项目的特征是临时性和唯一性。伴随公司的逐步发展尤其是产品型软件公司,企业的产品逐步趋于精品及完善,但如何能够提高项目交付速率,将项目交付批量化、产品交付成熟化、产量化,实现此过程的前置条件有哪些,距离当前的目标还需要做哪些事情,本文将从道(目标、战略、远景)、法(制度、规范、保障机制)、术(方式、方法以及熟练度)、器(环境、工具、产品)、人(意识、心态、欲望、人性)五个层面分别阐述说明。

    明以道

    道是根本,是规则、自然法则,上乘。建立项目交付体系,提升项目交付率,实现项目交付批量化的顶层构建依赖于“道”。“道”类于产品架构设计属于顶层规划设置,在“道”里提下“势”、顺势而为,在国际、国家、行业整体大趋势下决定公司的发展方式与方向,顺大势而行软件行业经由无纸化办公至信息化整合乃至现在更为广泛的产业互联网、5G、云物移大智等。道与势结合,在道的规划结合势的辅助更可将事情事半功倍,取得更好的成果。

    1.行业聚焦

    人的精力是有限的同样公司的精力也是有限的,作为公司的运营及发展同样需要聚焦行业,作为公司的运营能够“广撒网多捕鱼”固然有一定成效,但是“专精”才是公司的立身之本。在公司有广泛涉猎的同时需要聚焦行业,深耕行业,了解行业的发展历程、趋势、特点,结合客户的业务特点丰富、完善平台的功能及交互模式。如:地产行业下主数据管理是围绕地产项目为全生命周期管控的,而过程中可能还会涉及基础数据与项目间的关联如房源、期、栋等;业财集成过程中会涉及到成本对接、四费回写(开发间接费、营销费、管理费、规费类)。

    2.项目筛选

    在公司当前阶段不是力求“广而杂”,而是需要“专而精”,主要聚焦于集成领域,意在为企业尤其是集团性企业搭建“一站式”整合平台,构建柔性IT架构,公司战略层面明确公司的专业的领域,当前公司主要精力在集成开发、开发集成两大类项目,致力于公司整理的运营方向及发展方向,公司主力的营业范畴,包含数据治理、统一身份认证、数据治理分析、统一门户集成、统一流程集成几个方向,主要行业在于制造业、建筑业、房地产等多以项目制度为管理方式的行业领域。在商机落地、项目承接选择阶段需要甄别项目是否符合公司发展且是否能够为公司带来价值。

    如公司目前主营对接方案ESB、IDM+ESB、MDM+ESB、ESB+MDM、MDM+ESB+DAP的主要承接侧重要点如下:

    1. ESB应用对接:主要解决客户有3~5套系统间的表单数据对接,服务开发提供的情况;
    2. IDM+ESB统一用户管理:实现客户信息化系统用户统一、认证统一、权限统一、审计统一的4A管控,实现用户账户密码统一无需在系统间返回切换登录,提供工作效率;
    3. MDM+ESB基础数据治理:实现客户主数据治理及规范,建立基础数据管理体系,保障数据的一致性、完整性、准确性,为客户应用集成及数据分析结果的准确性提供坚实的基础支撑;
    4. ESB+MDM应用集成对接:实现客户信息化系统集成,结合主数据时间系统数据映射的管理,为后续数据治理规范奠定基础;
    5. MDM+ESB+DAP数据治理分析:沉淀企业业务数据建立企业自身数据仓库,挖掘企业内部数据价值,将数据可视化、趋势化、价值化。

    3.方案匹配

    匹配公司主营领域及主要行业领域对应项目类型均需要匹配对应的落地方案给予支撑,方案不仅限定于售前沟通方案、项目落地解决方案及同行业案例分享等。

    1. 售前沟通方案:方案主要体现在几个层面如:项目领域的意义与价值,项目主要背景需求,解决客户问题及痛点分析,典型落地方式及优劣比较,同行业对应的案例类比分析。
    2. 落地解决方案:侧重体现结合客户的实际情况针对客户的痛点如何落地解决,通过什么方式解决哪些问题,预计带来什么效果,需要哪些投入及能够输出哪些产出。
    3. 同行业案例分享:主要体现当前案例的背景,痛点,解决方案及实施效果,侧面印证、体现同行业其他公司确实由此方案受益颇多。

    行尊法

    法是措施方法,是实现价值的方式及方法,项目交付过程中仅依赖于框架的体系理论同时对于项目人员思维意识,思维转变也是重中之重,由程序思维转变为用户思维,用户思维转化为产品思维,产品思维晋级为商业思维,只有这样才能很好的实现产品有自己用向友商用及面向用户的交付。同时加快交付、成体系的交付、实现项目做好、做快、做规范、做批量。

    1.体系支撑

    “没有规矩不成方圆”,公司层面关于整体管理体系需要不断的充实、完善,对于公司运营的全生命周期的管控均需要建立完善体系制度,如:商务体系,售前体系,人员体系,项目管理体系,实施体系,奖惩体系。

    1. 商务体系:明晰内部商务、外部商务之间的衔接关系,促进商务与客户间的对接,提升商机的落地促成的几率。
    2. 售前体系:明晰售前沟通、汇报、交流、跟进的各周期的工作内容及工作边界,配合商务促进商机的成单率。
    3. 人员体系:对于人员培养,意识、方法、工作方式、沟通、汇报、学习、管理等多方面全方位系统化培养模式;
    4. 项目管理:项目全生命周期管理,需求、设计、开发、测试、上线、交付、验收、运维,8位一体的全生命周期管理,各里程碑注意事项等;
    5. 实施体系:项目现场交付注意事项,沟通机制、汇报机制的明晰与管理,与客户不卑不亢,与友商化敌为友,与伙伴共进同退;
    6. 奖惩体系:明晰项目的奖惩管理,以奖励促进成员的积极性,更加助力于项目推动及交付。

    2.绩效考核

    公司员工潜能的开发需要鼓励与鞭策并存,在鼓励的同时与压力并存,在压力的临界点伴随鼓励共同推进,一方面有压力驱动员工向前推进,一方面有鼓励增加推进项目工作的动力。建立项目绩效考核体系,有奖励有惩罚双管齐下,同时不仅面向项目交付团队,对项目管理人员,销售人员均需要具有全面的考核体制,管理人员关心KPI才会关注项目实际推进情况,销售人员具备考核指标能有效保证项目相关动作的推进,交付团队明细目标才能够保证项目的交付。

    • 项目管理制度

    1. 阶段划分:不同阶段的侧重点、工作内容、交付输出物的明确与规范且需要输出样例文档;
    2. 需求明确:项目调研过程中明确客户需求,不要含糊而过,将自己的理解与客户确认,框定项目的需求范围。
    3. 设计细致:结合项目需求进行可落地的详尽设计,明确功能约束,技术要点,设计需要详细明确出相关功能的涉及到的基于预研、落地实现。 
    4. 计划精细:项目计划需要明确到人、详细到人天,同一项工作不能有多人同时负责,如果是多人负责则需要把工作进行再次拆分直至明确至个人,计划在实施过程中需要不断完善、精细,周计划明确至人、天,日计划细粒度至少0.5人\天。
    5. 人员分配:不同角色的职责划分,什么人什么时间应该做什么事情;
    6. 汇报管理:按风险、日、周、月、里程碑不同粒度对项目负责人、销售同步项目情况,保证消息的对称性;
    • 绩效考核制度
    1. 考核指标:规范考核指标,考核与绩效挂钩,不同完成度的奖励及惩罚机制,成体系落地执行;
    2. 节点考核:对项目各里程碑节点、收款节点、工作完结阶段需要明确标记出来,以各环节节点倒逼工作管理,输出工作审查情况;
    • 人员晋升制度:分角色、分岗位的晋升制度,不同岗位有明确的职业规划方向,员工可选择自身的规划及发展方向,明确对应T级的晋升制度;

    3.人员培训

    建立员工培训体系,除平台基础操作外需要模拟项目实际进行内部演练,保证新员工对项目整体过程及不同类型项目有整体的意识及交付的概念,明确什么是好的什么是不正确的。

    1. 公司认知:公司为平台产品的提供商及技术解决方案的提供商,对于普遍的承接项目研发公司存在着本质性的不同,对于公司员工需要明晰公司的立身之本,公司的盈利项及公司的发展方向。
    2. 项目认知:作为项目交付需要明晰项目验收是项目完成的基本盘,而项目衍生二次商机,项目运维服务盈利才是项目的本质目标,而实现目标的前提则是为项目提供友好的服务为客户解决实际问题。
    3. 意识方法:项目交付过程中需要具备团队意识、敏感度、责任心,遇见问题暴露问题,解决问题而不是等着事态爆发,一发不可收拾的状态。
    4. 职责明晰:项目交付过程明细各岗位职责,项目经理对项目整体进度负责,把控项风险;技术经理对项目过程中技术问题支持,保证项目技术落地;技术顾问保证自己负责项目工作的进度,同时熟悉项目整体流程及注意事项。
    5. 策略技巧:无论是哪一类型的项目最终都是需要与人打交道,在此过程中不要与客户发生矛盾,与客户关键人建立友好的沟通渠道,权衡其中关系,更好的推进项目。

    精于术

    术是体现,是具体手段。通过法具备方向的指导,结合术的手段落地,项目交付过程中在建立规范的同时需要能够对规范实现落地而不是“空中楼阁”遥不可及。在落地实践的过程中进一步完善、夯实整体的体系,将概念转变为认知,认知转变为下意识。

    1.项目管理

    项目管理主要是实现项目时间、成本、质量的管理,在有限的时间保证项目高质量的交付控制项目成本实现项目质量好、服务好、成本低、满意度高的最优交付。

    1. 需求管理:项目实施推进过程中,客户需求出现变更/增加是常态,从项目管控来说需求变更是不可避免,而对于项目交付而言需要尽量收口项目过程中的变化,引导用户收口或者下期推进,避免整体项目需求跑偏。
    2. 进度管理:项目推进过程中各里程碑节点的管控,以节点倒逼工作进度是否存在跑偏的情况,实时跟进项目进度,进行项目推演,及时暴露问题,避免问题的发生,而不是事后补偿。
    3. 团队管理:需要明确失败的团队没有成功的个人,需要明晰团队成员的动向,团结一心推进项目的工作,在项目中增加团队成员的配合度及默契,出现问题快速解决而不是互相推诿。
    4. 资源管理:领导也是资源,或者说领导是更为有效的资源,销售同样被视为资源的一种,项目最终是以结果论成败,项目管理人员需要以项目风险为优先级,协调各类资源保障项目的平稳推进。

    2.规范落地

    建立项目管理规范后续要进行规范落地,而不是仅有规范而不切合实际,更多时候人更倾向于自己信服的事实。可能规范总结的经验教训但员工自身没有体会其中奥妙没有转化为自己的下意识。而由知识转变为技能,技能转变为下意识的过程因人而异,各有不同。需要在项目实战过程中不断淬炼,增加个人的认知及能力模型的丰富,如:

    规范说明

    枚举说明

    售前管控

    售前人员熟悉方案,沟通前内部演练模拟客户沟通情况,将方案演绎、产品演示划分分别进行,输出各产品的演示关键点、演示方案

    项目管控

    建立文档标准、里程碑标准、考核标准、汇报标准、沟通标准、结算标准

    实施体系

    项目实施过程中建立项目管控体系,项目日汇报、周总结,计划滚动更新;暴露问题解决问题,项目进展极端推演,控制项目需求范围,把控项目各工作进度节点

    测试体系

    内部产品、公司项目均需要遵循测试体系进行详尽测试,按照不同角色、人员从使用、操作、维护角度进行测试,从安全、性能、功能层面进行自动化脚本测试,生成测试报告,交付对应的负责人员

    运维体系

    项目交付后进行内部交接,遵循项目运维体系,明确项目内容、背景等信息,对项目中遗留问题解决,产品层面问题反馈至研发部门进行解决,客户反馈问题及时响应,提升客户的信任度

    3.模拟演练

    建立规范的同时是纸面的通知,而真实的“触感”需要来源于一线的直观认知。而在员工并不具备实际项目参与的能力是时,可通过公司内部项目实现实际项目过程的模拟演练。感受项目整体流程,项目各里程碑是什么情况,与理论的认知有什么不同。

    1. 项目生命周期:6个周期节点从项目售前、合同签订、项目立项、蓝图确认、项目上线、项目验收,各阶段的关注事宜及输出产物。
    2. 项目沟通技巧:与客户、与伙伴、与领导、与商务面向不同群体的沟通方式及技巧,如何推动才能让同事更好的助力项目的推进,不同层面的工作人员的关注点,言简意赅保证工作推进。
    3. 项目封闭标准:项目在实施阶段的目的是验收,将项目封闭实现项目闭环,项目封闭后标志当前项目节点闭环,进入运维工作及二期推动工作。
    4. 项目意义价值:项目不同层面对项目的意义价值有自己的理解,项目追踪需要作为项目案例资源,项目结束后需要明晰项目的价值及意义,客户的价值及公司的价值以及团队的价值。
    5. POC搭建演练:以公司自有业务为需求原型,模拟不同方案下项目的实施方式,一方面作为技术人员的培训,提升员工对项目的熟悉度,另一方面也可演练验证产品的完备性,提升产品的质量。

    利其器

    器是用具提高效率将复查的问题简单化,经过公司对主营的行业领域及主营的范畴细后,项目甄别当前能不能做,而器有效的提升如何将项目做好,如何提高项目交付率,如何将项目交付批量化的工具。通过产品+管理结合,提升盈利;从产品层面考量,面向用户级别产品,打造“无脑式”产品线;项目交付层面:统一、标准、体系、积累、夯实;

    1.成熟产品

    公司本身为产品型公司,想要项目批量化交付则需要产品不仅能为公司员工使用同时需要能够面向伙伴、面向用户都具备较好的交互操作能力。对于平台的安全、稳定、扩展、交互均需要具有极佳的用户体验,且除平台技术能力本身的保障外,对于依赖于产品的方案,使用手册、维护手册、项目典型方案、应用场景及对应场景的落地方案标准文档均需要不断的完善和充实。

    产品名称

    应用场景

    ESB企业服务总线

    做企业服务总线ESB来实现异构系统的对接;

    在数据整合/数据中心项目中,作为综合数据交换平台负责业务数据上传、汇聚,基础数据(主数据)的下发、分发;

    综合集成项目实现跨系统业务流程重组;平台协作及支撑

    MDM主数据管理平台

    主数据管理的用户是各业务系统、数据集成系统、应用集成系统、业务流程再造系统、BI智能决策分析系统。通过主数据管理,改变企业数据利用的现状,从而更好地为企业全方位的信息整合做好铺垫。

    BPM流程集成平台

    流程集成平台一般用于跨异构系统的流程集成,或者实现业务流程间相互调用;也可以做工作流系统来用,为特定业务系统做为工作流引擎提供用户与流程信息交互的接口,实现诸如完成、挂起、加签、回退、签收等改变引擎流转的操作

    IDM身份管理平台

    搭建统一用户中心实现用户统一、认证统一、权限统一、审计统一的四位一体的统一管控,建立统一管理体系

    DAP数据分析平台

    挖掘企业数据价值,将企业沉淀数据可视化、资产化,建立企业自身的数据管理体系及数据存储模型

    Portal门户集成平台

    搭建单一的信息门户、知识门户、数据门户、应用门户、移动门户、开发社区及综合办公门户,通常及到AEAI ESB应用集成平台来协作,用于提供数据服务或者进行相关的数据加工汇总;

    2.管理系统

    项目管理同样需要信息化进行支撑,建立项目管理制度的同时匹配对应的项目管理系统,支持项目管理标准的落地,结合系统有效的对项目风险进行评估及展现,避免人为性掩盖事实。结合系统的统计情况真实、有效、实际的展示项目当前的进展状态,风险评估状态,项目里程碑节点,项目收款节点,项目当前进展状态及后续推进计划。

    • 如典型项目管理系统功能:
    1. 项目信息管理:项目管理可以看到项目信息和项目计划,用于创建项目的基本信息,比如项目的成员,周期成本合同周期等等,项目计划为每个人分配的任务,具体每天都要干哪些功能,进行一个统一的管理;
    2. 项目过程管理:对于项目周计划、日计划的滚动管理,项目计划填写完毕后并且总监对计划也进行确认,确认后项目经理就可以进行项目周报的填写,项目开发人员完善项目日报;

    3.办公环境

    工欲善其事必先利其器,生活的周边环境也是一种器的体现,大到欢愉的公司氛围,办公环境,网络带宽,小到使用的电脑、手机甚至是居住环境均会影响个人的思绪和心情进而影响办公的效率及积极性。这些环境因素往往是对办公情绪影响最大的但却是最容易解决的,如:居住环境在外出出差实施项目租赁房屋时选择比较符合心意的房子,一方面提升居住的舒适感,另一方面舒适的环境也是缓解工作的疲劳和压力的有效途径。

    常见的办公环境因素如下:

    环境说明

    匹配优选

    公司氛围

    • 公司氛围一定程度决定公司发展,选择公司氛围融洽,专心做事、敢打敢拼、全攻全守、

    生活环境

    • 居住环境:项目租赁房屋可优选居住舒适度较好的房屋,提升居住舒适度,缓解异地负面情绪
    • 网络环境:优先选择可控带宽的运营商,提升办公速率

    办公工具

    • 电脑:在经济允许的情况下选择性价比高的办公电脑,便携、速度是重要考核指标

    交通环境

    • 可控范围内选择便捷的交通环境,如公司选择在是地铁周边,交通便捷的地方,方便员工的出行

    皆由人

    “尺有所短寸有所长”无论是对公司还是对于个人而言均是广泛涉猎的同时需要有自身立足的根本需要具备深度的挖掘,呈T字型发展趋势。对于公司而言在具备广泛产品系列的同时需要有自己的深耕行业及“明星”产品,一方面在这一领域各类瓶颈了如指掌,另一方面通过产品切身实际的解决用户问题。对于个人而言,人的精力是有限的需要做好个人的“精力”管理,有自己的专业领域在专业领域内不断深入,提升自身的竞争力。

    1.自我约束

    历览前贤国与家,成由勤俭败由奢,懒惰的所有人的天性,而自我约束才是能够提升自我,超越非凡的本质。不以恶小而为之不以善小而不为虽是表述是非之道,从自我约束的角度来看也是同样的道理不要因为事情繁琐就拖延,不要因为工作简单就推进。自我约束管理,越忙越要整理计划,梳理工作项目;越慢越要倒逼原因找出本质而不是得过且过,不求有功但求无过的蜗牛心态。

    1. 时间管理:利用闲散时间总结规划当天的工作项及对应工作的完成情况,哪些工作需要协调哪些资源,预计需要多少时间;
    2. 心态建立:责任心、主动性、积极性需要化被动为主动,积极迎接变化,面对问题解决问题,不断积累形成正向循环;
    3. 习惯培养:主动汇报、积极涉猎,带着好奇心工作,对工作涉猎的知识点及周边知识点进行学习,由点到线,由线到面搭建知识体系。

    2.洞察人性

    无论是售前、实施、运维最终都是与人在打交道,在不同阶段与不同的人员沟通交互,每个人都有着自身的性格标签,需要结合个人性格特点有分别的进行交流。

    1. 与客户:与客户不同层面的人沟通时需要注意,有人风风火火,有人沉稳冷静,有人内敛涵养,面对不同性格的人需要建立良好的沟通渠道,保证工作推进的顺利;
    2. 与伙伴:与伙伴交流的过程中注意不同人承担的角色,销售辅助推进配合,交付并肩推进,管理明晰工作;
    3. 与领导:与领导需要言简意赅,明晰工作进度,问题点及潜在的风险点,不要盲目乐观,报喜不报忧导致问题爆发;
    4. 与团队:与团队成员建立并肩作战的情谊,失败的团队没有成功的个人,明晰整体团队的目标齐头并进。

    3.一往无前

    置之死地而后生,只有摒弃后路方可一往无前,每个人都有无限的潜力等待被激发,在成年人的世界没有永远的敌人只有永远的利益,不同的人可以为共同的目标一起努力,而在团队管理的过程中需要激发团队成员的欲望,激励成员的斗志,保持清醒的战意。向目标齐头并进为实现一往无前。

    对于员工而言更多的不是惧怕吃苦受累,而是没有目标和方向。作为管理者需要帮助员工明确公司未来发展方向及个人发展规划,为员工制定目标,将员工目标、公司目标相互融合,使得个人收益与员工收益互相联系。激发员工由被动接收转变为主动进取,且匹配对应的考核奖励制度。实现员工有盼头、得甜头、足劲头进而形成正面良性的体系。

    ​​​​​​​4.厚积薄发

    仅仅依靠任务的关系去维系项目推进是不足以作为项目推进支撑的,项目实施的本质还是要落地项目中客户的需求,消除客户使用的痛点,提升客户的使用满意度。本质上还是需要以实力取得客户的信任,提高客户对公司、平台、团队的信任感,而对于个人而言需要不断累积自身的实力,没有量的积累很难实现质的飞跃。在此过程中个人需要不断提升自我认知,提升个人能力,将硬实力与软实力结合,保证项目交付。

    道法术器人思想虽然源自历史长河,但内涵精髓却经久不衰,其理论方法被不断延续用于现代企业的管理,道:是方向、理念、价值观;法:是组织架构、经营模式、管理体系、规章制度;术:是策略、技能;器:是工具(硬件、软件等),人:是基本元素、成败关键。五者结合,以道义来承载智术,“术”要符合“法”,“法”要基于“道”,道法术,通过最好的技术和工具,人是“道、发、术、器”的承载着,五者兼备做出最好的策略。

    展开全文
  • 大型软件的团队有效协作对项目成功起到越来越关键的作用,“敏捷之旅广州站——精进之旅”的活动,请来了业界敏捷项目管理的专家做了几场公益性的讲座,涉及敏捷开发应用和互联网项目管理的一些实用的方法,本文结合...

    大型软件的团队有效协作对项目成功起到越来越关键的作用,“敏捷之旅广州站——精进之旅”的活动,请来了业界敏捷项目管理的专家做了几场公益性的讲座,涉及敏捷开发应用和互联网项目管理的一些实用的方法,本文结合个人体会做个总结。


    敏捷开发实际上是一种增量迭代开发模式,对于直接面向市场最前端用户、前期需求不太明确项目比较合适。通俗点说是小步快跑,边跑边看用户反应,然后根据情况适当调整项目计划,也可以说是一轮又一轮的PDCA循环。


    类似360安全卫士、QQ电脑管家这种大而全的软件,幕后都是数百人的团队相互协作来实现持续更新发布,具体支撑快速发布版本的方法有下面四点。


    一、统一阶段目标


    就是在一个周期内确定需要做什么功能,要实现什么目标,整个团队奔着统一的目标去行动,中间不要插入新功能干扰进度。确定阶段目标后,团队上车开始刚活,目标完成,团队下车准备进入下一轮功能迭代。


    二、解耦


    学计算机的人对这个词应该比较了解,通俗点讲就是保持独立性,解耦具体分三个方面:

    1、技术解耦

    即从下至上:底层核心架构、应用程序、UI有清晰的分层,这样做功能扩展开发会比较方便;

    2、业务解耦

    即业务功能模块的独立性,大的功能需要尽量拆分成独立的特性模块,便于划分开发任务 ;

    3、团队解耦

    将大的团队划分成独立的团队(5-8人为佳),每个团队负责独立的特性模块开发,团队包括产品需求分析、项目管理、开发人员、UI,所谓麻雀虽小,五脏俱全。


    三、配置管理体系


    一个大的项目被划分为不同的特性功能模块后,每个特性功能可以认为是这个大项目的一个配置项。


    配置管理体系的主要特点:

    每轮迭代周期中,开发并测试OK的特性功能模块可以先发布,不用等待这个周期内尚未开发好的功能;

    云端控制,即发布出去的功能如有问题,能通过云端控制回滚;


    四、自动化体系支撑


    即自动化构建系统、自动化测试、自动环境部署、自动监控等辅助支撑快速发布的东西。


    END


    个人微信号:gdengjun

    添加时请注明:[城市] [行业]等信息



    作者:邓俊

    坐标广州 项目管理和职场分享


    展开全文
  • 归根结底,还是因为既有的Saas化产品如何应付传统企业项目交付的问题。本文从项目型产品和Saas化产品的关系,架构等方面尝试给出答案。 1. 前言 如果说为单个企业实施定制化项目是IT服务商的婴孩时期,通过产品积累...

    目前,在业务推进方面,产品和项目之争越来越多。归根结底,还是因为既有的Saas化产品如何应付传统企业项目交付的问题。本文从项目型产品和Saas化产品的关系,架构等方面尝试给出答案。

    1. 前言

    如果说为单个企业实施定制化项目是IT服务商的婴孩时期,通过产品积累以较低成本为多个企业实施定制化项目就是IT服务商的少年时期,通过产品SAAS化为所有企业提供满足个性化的服务就是IT服务商的青年时期,最终,通过产品的平台化为所有企业提供一体化的服务就是IT服务商的壮年时期。成长的过程是不可避免的,因为身边很多年少时期的客户,而花费很多精力去迎合他们,降低了自己的成长速度,并不是一个好的方法。
    较好的办法就是通过开动脑筋,保持现有成长速度不变的情况下,满足年少客户的需求。
    个人认为,SAAS化产品路线和项目化实施并不矛盾,是一个不断演进的过程,是同一事物的不同成长阶段。任何的SAAS化产品都是从项目型产品进化而来的。

    2. 项目型和SaaS化产品

    2.1 Saas化产品长什么样?

    指标 SAAS化产品 项目型产品
    云部署 ×
    多租户 ×
    可配置
    可扩展
    数据隔离 ×
    高可用
    热部署 ×
    独立升级 ×
    数据可控 ×
    自助注册 ×
    可监控 ×
    浅色风格
    新手导航
    客户互动 ×

    从各项指标对比来看,项目型产品和Saas化产品确实不同。并且,从商业模式上也是不同的。但是否意味着为了项目需求和Saas需求,要走两条不同路线呢?个人认为,从商业模式上确实要走两条路,但在技术实现上是相同的。

    2.2 技术实现的演进关系

    Saas软件并不是天生存在的,是一步步演进形成的。公认的,按照成熟度等级可分为:

    • level 1:定制开发

    最初级的Saas应用成熟度在应用架构上,跟传统的项目型软件应用架构几乎没有差别。在这种模式下,软件服务提供商为每个客户定制一套软件,并为其部署。每个客户使用一个独立的数据库实例和应用服务器实例。数据库中的数据结构和应用的代码可能都根据客户需求做过定制化修改。

    有些 SaaS 软件公司专门为单一企业提供软件服务,也就是一对一的软件交付模式,客户可以要求将软件安装到自己公司内部,也可托管到服务商那里。定制能力是衡量企业管理软件好坏的最重要指标之一, 这也是为什么有些软件开发商在 SaaS 早期坚持采用单重租赁的软件设计方案。

    • level 2: 可配置

    第二级成熟度模型相对于最初级的成熟度模型,增加了可配置性。希望通过不同的配置来满足不同客户的需求,而不需要为每个客户进行特定定制,以降低定制开发成本。这是目前成熟的传统软件可以达到的程度。

    但是,在第二季成熟度模型中,软件的部属架构并没有发生太大的变化,依然是为每个客户独立部属一个运行实例。只是每个运行实例运行的是同一份代码,通过配置的不同来满足不同客户的个性化需求。
    多重租赁架构下的自定制或自定义功能是 SaaS 软件的另一核心技术, 领先厂商的产品已经将自定制做到出神入化的地步。客户可以根据自己公司的业务流程, 自定义字段、 菜单、 报表、 公式、 权限、 视图、 工作流和审批流等, 做到 S a a S软件的量身定制,而且不需要编程
    知识。

    • level 3:高性能多租户架构

    多租户单实例的应用架构才是通常真正意义上的Saas应用架构。多租户单实例的应用架构可以有效的降低Saas应用的硬件及运行维护成本,最大化的发挥Saas应用的规模效应。不过,与传统的企业应用不同,Saas应用更具备互联网应用的许多特征。与传统单实例的企业应用相比,其数据量和并发量都会有明显的增加。因此,对于基于传统应用改造的多租户应用,还面临着大量的性能方面的挑战。

    • level 4: 可伸缩性的多租户架构

    在实现了多租户单实例的应用架构后,随着租户数量的逐渐增加,集中式部属会成为性能瓶颈。需要通过一定策略实现水平扩展。随着租户数量的进一步增大,该架构可以保证仅通过再多部属几个实例来满足更多租户的使用。

    因此,从项目型产品到Saas化产品是同一产品的不同成熟度等级。显而易见的是,如果实现了高成熟度的产品,则会兼容低成熟度的产品。即,实现了Saas化产品,完全可以满足项目实施对产品的要求。

    2.3 关于轻量化的理解

    **目前,有些工业化Saas软件给人的感觉就是轻量化——功能不多,只能满足基本的业务需求。那么,轻量化是否就是Saas软件的特征呢?没有那个Saas软件将轻量化作为它的特征。轻量化不是最终目的,满足需求才是最终目的。轻量化可以当作产品由小到大过程中的一个阶段或者是满足特定客户群体的一个产品版本。只要可配置性做好了,我们的产品完全可以做到按需变化,想轻量就轻量,想复杂就复杂。

    如果非要说,Saas软件必须是轻量化的,也可以这样理解:依托软件平台,软件本身可以实现轻量化,即部分功能通过平台实现,减少软件本身的开发和维护工作量。这就要求Saas软件是基于平台的软件。平台可以是工业互联网Paas平台等。

    2.4 如何兼顾项目实施和Saas化产品?

    1. 采用组件化技术,将系统划分成细粒度的模块,将不同模块甚至不同功能拆分成组件;
    2. 配置性,通过数据可配置、功能可配置、流程可配置及页面可配置,实现灵活配置;
    3. 统一管理,抽取公共业务组件,统一维护。如果组件无法同时满足,则拆分为更细粒度的组件。

    2.5 小结

    综上所述,采用Saas化架构,是历史前进的趋势。技术上讲,项目型产品是Saas化产品的最低成熟度等级,实现了高等级成熟度,则可以兼容低等级成熟度。商业模式上,项目型实施和Saas化推广是不同的商业模式。Saas化产品不等于轻量化。轻量化只是在产品无法满足各类用户个性化需求的情况下,一种折中的实现方式,是最终Saas化产品的一个阶段。可以采用不同的方式,同时兼顾目前项目实施的需求和未来Saas化需求。

    3. SaaS产品实现和微服务架构

    Saas化软件模式大约在2003年就出现了。而微服务架构大约在2014年出现。所以说,实现Saas化产品并不一定使用微服务架构。早期的salesForce,八百客,早期的阿里巴巴等的Saas化产品,肯定不是基于微服务的架构。但随着软件设计方法的不断发展,微服务架构也迎合了时代发展的要求。

    3.1 软件架构演进历史

    软件架构一般划分为应用架构和基础架构。其中应用架构是指构建业务系统本身需要关注的设计内容,而基础架构是指部署业务系统时需要考虑的设计内容。

    基础架构演进路线为:

    graph TD
      A[大型机] -->B[小型机]
      B[小型机] -->C[PC Server]
      C[PC Server] -->D[云计算]
    

    应用架构的演进路线为:

    graph TD
    A[面向过程] -->B[对象组件]
    B[对象组件] -->C[多层架构]
    C[多层架构] -->D[微服务架构]
    
    

    面对的业务场景为:

    graph TD
    A[科学计算] -->B[信息服务]
    B[信息服务] -->C[企业应用]
    C[企业应用] -->D[互联网+]
    
    

    3.2 为什么选择微服务架构?

    微服务的本质:一种更优的分工合作机制,加速分工,促进合作,帮我们成就更大的梦想!

    从产品来说,各类自研应用采用微服务架构是是为了能够借助平台的力量,借助云计算的力量,成为有生命力的产品。这就要求我们的架构也最好使用分布式架构,以充分利用云计算提供的各层能力。传统分层架构,如MVVM,SSH框架等,是单体架构,不具备搭建分布式系统的能力,如果要将单体架构改造成分布式架构,还需要借助其他框架,如EJB等,才能实现。将来和工业互联网平台的融合,也只能是集成式的浅融合。

    从工业互联网平台来说,工业互联网平台白皮书推荐的技术架构也是分布式微服务架构,也就是说是业内事实上的标准。这样,我们的平台可以将各类应用通用的权限、用户、消息等做成公共组件,统一维护,降低产品维护成本。另外,借助云计算能力,我们的平台可以集成大数据分析平台,智能决策平台,为各类应用提供高价值功能,使应用成为开放的,不断升级的产品。如果走不同的架构,那么需要两个团队来维护,还会有团队协同问题,难于管理。

    从团队和研发管理来说,不会像以往的传统软件研发那样,需要依靠那些既懂业务,又懂开发的人员负责从业务到开发一条龙。这大大降低了对人员的要求,每个人只需要是单个领域的专家,促进了人员的分工合作,具备了把产品做大的可能性。

    当然,微服务存在缺点,就是管理和维护复杂。当我们的产品规模达到一定程度后,微服务管理和维护会比较复杂,需要专业团队运维。

    4. 项目实施的顾虑——微服务架构和前后端分离

    项目实施的目标是为了盈利。不管是Saas化产品和项目型产品,都是为了满足客户的需求,业务上没有顾虑。而提到微服务架构,大家诟病的就是一个功能的开发需要前端工程师和后端工程师两人来完成,比起传统项目一个人开发来说,看似成本高了一倍。如何解决这个问题?

    第一种,接受微服务架构带来的好处,而不采用前后端分离的开发方式。目前,我查到的资料来看,微服务架构一般是前后端分离的,而我们采用的Springboot框架,也是前后端分离的。第一条路可能行不通。

    第二种,放弃微服务架构,采用传统的单体分层架构。那就成了做传统软件了,无法有效的利用现有的云计算、人工智能和平台的能力。为了节省几个人工费,让我们的产品倒退一大步,得不偿失。

    第三种,从根源入手,解决人力成本高的问题。我想到的,可以通过招聘或培养懂前后端的人做项目实施。这种有可能可以。通过软件本身的可配置性和可扩展性实现,这个可能是根本解决办法。如果产品配置性和扩展性做好了,是不是就意味着实施周期的降低,快速的交付。这样,就可以降低项目实施的费用了。

    参考

    1. 为什么要前后端分离?优缺点?
    2. 微服务到底改变了什么?
    3. 微服务,为什么可以加速分工,促进合作?
    4. 微服务系列
    5. 架构这么多,该选哪一个?
    6. 哪些业务适合微服务?
    7. 微服务为什么从前后端分离开始?
    8. 什么是微服务架构,详解?
    9. 微服务的优势和不足。
    10. 详细讲解SaaS项目解决方案
    11. SAAS产品设计原则及产品架构特点
    12. SAAS软件架构浅谈和设计
    13. Saas系统架构思考,多租户架构设计分析。
    14. Saas服务与传统ERP软件的区别?
    15. Saas是什么?和传统软件的区别?
    16. saas模式和传统软件模式区别?
    17. 互联网时代的软件革命-Saas架构设计-叶伟
    18. 微服务设计-sam newman
    19. Saas架构新特性-八百客,李智
    展开全文
  • 交付项目-源码

    2021-02-10 06:39:54
    Laravel通过减轻许多Web项目中使用的常见任务来减轻开发工作的痛苦,例如: 。 。 用于和存储的多个后端。 直观的表达 。 数据库不可知。 。 。 Laravel易于访问,功能强大,并提供大型,强大应用程序所需...
  • 项目管理交付物Check List

    千次阅读 2019-07-15 20:08:10
    PMO的工作包括提供项目管理过程模板,并确定里程碑节点交付物Check List。传统瀑布式项目重文档,一个大型项目的SVN库,能有100G资料。因此文档资料不在多,而在于是否做了适应性的裁剪,取不同类型、级别项目必需...
  • 那么,一个成本高昂、姗姗来迟的项目和一个按时、在预算内交付项目有什么区别呢?在大多数情况下,答案是良好的项目控制。 什么是项目控制? 项目控制是收集和分析项目数据以保持成本和进度上的过程。项目...
  • 交付管理——怎样构建项目团队

    千次阅读 2020-08-27 18:18:24
    对于TO B类软件公司,尤其是偏项目型的公司来说,把项目签下来只是万里长征走完了第一步,能否把项目交付好才是关键,我见过太多的软件公司不是死于没有项目,而是死在了项目交付不了。 怎样做才能把项目交付好,...
  • 现在软件领域三大俗,说的是敏捷、大数据、云,说的越多的往往也是处于成熟中,或者需求强调的,我所遇到的项目有幸几乎都触及到这些俗气的元素。不得不说,市场竞争和各厂商客户意识的提升,现在的用户已经被宠坏了...
  • 特大项目难以按时、按预算交付已成为一个人所共知的老大难问题。有估测表明,90%的特大项目最终都会超出预算。  这里可以举两个突出的例子:一是澳大利亚悉尼歌剧院项目,该歌剧院于1973年投入使用,峻工时间比原...
  • 作者介绍符强,新炬网络DevOps专家,从事IT行业10余年,拥有丰富的开发、测试、运维工作经验。现致力于DevOps相关建设与实施推广的研究,具有多个大型电信、金融企业DevOps项目...
  • 开发维护大型项目的Java的建议

    千次阅读 2017-06-02 14:09:12
    开发维护大型项目的Java的建议.txt开发维护大型项目的Java的建议.txt1、不要试图一下子搞懂整个项目2、关注于尽快交付价值有效的单元测试用例是理解大型项目代码的很好途径 写一些笔记,或者画一些类图、时序图、...
  • 大型项目的Java的建议

    千次阅读 2019-06-22 21:23:26
    你需要尽快交付成果,并向项目组证明自己的能力。你会如何处理这种状况?这篇文字为开始一个新项目的Java开发者提供了一些建议。 1、不要试图一下子搞懂整个项目 好好考虑一下,为什么理解项目代码是第一位的?大...
  • 大型项目环境预检查脚本,根据自己实际情况修改脚本中变量,给大家一个思路,转载请注明出处~ #!/usr/bin/env bash root=$( cd $(dirname $0) pwd ) source $root/dragonrc CPU=$(echo `cat /proc/cpuinfo | grep...
  • 这些组件中的某些组件可能具有很长的随机交付周期,因此项目经理倾向于尽快订购它们,以避免与延迟相关的(通常)高额罚款。 (罚款可能是有形的或无形的,但我们假设可以用货币单位来衡量。)这又可能导致过多的...
  • 而加班带来的后果就是可交付成果的质量大大降低,从而返工的情况频现。如何处理延期?一直也是一个非常大的难题。 1、增加人员,新增加人员需要一定时间去培养,而且对业务的理解需要时间,尤其是赶工期间,也没有...
  • 大型项目环境预检查脚本,根据自己实际情况修改脚本中变量,给大家一个思路,转载请注明出处~ #!/usr/bin/env bash root=$( cd $(dirname $0) pwd ) source "$root"/dragonrc CPU=$(echo "`cat /proc/cpuinfo |...
  •  软件的交付质量一直是我们软件开发项目最为关注的核心问题,那么如何保证软件项目,尤其是大型和超大型软件项目的质量,不管在国内还是国外一直是许多软件企业一直关注和研究的问题。  通常我们会在功能性
  • 你需要尽快交付成果,并向项目组证明自己的能力。你会如何处理这种状况?这篇文章为开始一个新项目的Java开发者提供了一些建议。 0. 不要试图一下子搞懂整个项目  好好考虑一下,为什么理解项目代码是第一位的?
  • 麦肯锡咨询公司(McKinsey&Company)发布的文章——《按时、按预算和按价值交付大型IT项目》表示,大型IT项目平均超出预算45%,平均超出时间7%,交付的价值平均比预期低56%。其中一些管理不善的项目可能会使整个...
  • 笔者于2015年第一次接触敏捷开发且第一次碰触Scrum,当时scrum的理念确实为笔者的打开了一扇开发的窗,但结合自身境遇,仔细分析后认定敏捷比较适合于做内部的产品,不适合做ToB解决方案型项目(以下简称Tob项目).....
  • 项目型制造也称按订单设计(ETO: Engineering to order),是制造业内复杂而独特的一种生产类型。由于每件(批)产品均需要根据具体客户合同的指定要求进行定制设计与制造工作,并在规定的期限内交付产品,对应的...
  • 如何提高C/C++大型项目的软件质量?

    千次阅读 2017-10-01 22:11:55
     软件的交付质量一直是我们软件开发项目最为关注的核心问题,那么如何保证软件项目,尤其是大型和超大型软件项目的质量,不管在国内还是国外一直是许多软件企业一直关注和研究的问题。 通常我们会在功能性,可用性...
  • 感谢禅道团队开发了这么好的一套软件开发管理配置系统,使得软件项目经理可以轻松的管理大型团队,致谢! 2016年5月16日最新修改。。。 ======================= 全面采用禅道的敏捷开发模式进行整个软件开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 650
精华内容 260
关键字:

交付型项目