我们怎样才能找到合适的软件开发公司(二)
How can we find the right software development company?
译文简介
网友:当你正在寻找合适的软件公司来开发项目时,经验可能是你脑海中的第一个标准,这是有充分理由的。如果一家公司的投资组合中有几个项目与你想要构建的项目相似,那么它们更有可能避免最常见的陷阱和障碍......
正文翻译

How can we find the right software development company?
我们怎样才能找到合适的软件开发公司?
评论翻译
很赞 ( 0 )
收藏
When you’re searching for the right software house to develop your project, experience is probably the first criterion that comes to your mind, and for good reason. If a company has a few projects in its portfolio that are similar to what you want to build, they are more likely to avoid the most common traps and obstacles.
Nonetheless, there are no silver bullets in software development, no single solution that works everywhere. Something that worked in one case might be overkill in another or it might not work at all. Here are four things to keep in mind when looking for the best company to build your solution.
当你正在寻找合适的软件公司来开发项目时,经验可能是你脑海中的第一个标准,这是有充分理由的。如果一家公司的投资组合中有几个项目与你想要构建的项目相似,那么它们更有可能避免最常见的陷阱和障碍。
尽管如此,软件开发中并没有灵丹妙药,也并没有一个单一的解决方案可以在任何地方都适用。在一种情况下有效的东西在另一种情况下可能是多余的,或者可能根本不起作用。在寻找为你提供解决方案的最佳公司时,请记住以下四件事:
The key is to really understand the customer’s business goals and suggest the most appropriate solutions to meet them. So above everything else, clients need to seek reliable partners in the form of an open-minded team that really tries to understand their needs and enhance the project with their expertise at all stages. Cooperation is a crucial factor in all the stages of any software project from creating the concept (business workshops, prototyping, design sprints), through design (UX, UI, architecture, analytics), development (software, QA, DevOps, machine learning) up to the release. And they do not stop there but also help to iterate on your product and make it even better with each upxe. Therefore, clients should ask about the company's approach to software development and offered services to verify whether the company can deliver a full package.
整体研究
关键是要真正了解客户的业务目标,并提出最合适的解决方案来满足他们。因此,最重要的是,客户需要以开放的团队形式寻求可靠的合作伙伴,该团队真正试图了解他们的需求,并在各个阶段利用他们的专业知识改善项目。在任何软件项目的所有阶段,合作都是至关重要的因素,从创建概念(业务研讨会、原型设计、设计冲刺),到设计(用户体验、用户界面、架构、分析),再到开发(软件、质量保证、开发运维、机器学习),直到发布。它们不仅止于此,而且有助于迭代你的产品,并使其在每次更新中变得更好。因此,客户应询问该公司的软件开发方法和提供的服务,以验证该公司是否能够提供完整的软件包。
the biggest projects need to be broken down into manageable phases. In the vast majority of cases, it’s best to define an MVP and iteratively build up on that. Even when you have a clear plan in mind, it is very important to establish and consider all technical dependencies. The support of a software provider in this aspect is crucial. Given the scope, the company should be able to help you break it down, taking into account the issues of scalability and expandability.
出色的范围界定技能
最大的项目需要分解为可管理的阶段。在绝大多数情况下,最好定义一个 最小化可行产品,并在此基础上迭代构建。即使你心中有一个明确的计划,建立和考虑所有技术依赖关系是非常重要的。软件供应商在这方面的支持至关重要。考虑到范围,公司应该能够帮助你分解它,并考虑可伸缩性和可扩展性的问题。
The market situation is dynamic and your plans can change. It is also worth asking about the company’s development process to verify if the team is really agile. You can do this by providing some hypothetical situations regarding changes in the requirements and estimating their impact on the project both cost- and time-wise.
4. Proactiveness
Last but not least, you can recognise the best partners by their proactiveness. They show it right from the start, asking the right questions on the first contact and exploring possible solutions right from the first call or meeting. When you come across a team of professionals who know what to ask about at the very beginning, look no more. You've found the one!
灵活性
市场形势是动态的,你的计划可能会改变。询问公司的开发流程来验证团队是否真的是敏捷的也是值得的。可以通过提供一些关于需求变更的假设情况,并在成本和时间方面评估它们对项目的影响来做到这一点。
主动性
最后但并非最不重要的一点是,你可以通过他们的积极性来识别最好的合作伙伴。他们从一开始就展示了这一点,在第一次接触时提出了正确的问题,并从第一次电话或会议开始就探索可能的解决方案。当你遇到一群一开始就知道该问什么的专业人士时,不要再看了,你找到那个人了!
sexting a right vendor/outsourcing partners will help in curbing high cost overruns and poor quality delayed product release.
The salient point to consider,before sexting vendors:
Budget- You should have budget fixed before thinking about insourcing or outsourcing. The realistically savings from offshore outsourcing is 30% in development cost. If you are highly organised then your saving can touch 50%.
Methodology- Deploy structured methodology early on, like Agile scrum or iterative. Use tool like Rally Dev or Jira for tracking and management.
Tracking: Outsourced project should be tracked effectively to get best outcome. Play the role of Product Manager or Project Manager depending upon your time availability. Ensure SCRUM tool gets upxed regularly, and there is a working demo at the end of each iteration of 2 or max 3 week.
Quality control tracking - Finalize metrics you want to track, which ensures your business goal as well as quality goal. Metrics can be included Velocity, defects per 1000 man-hour or scope variance (In scrum no schedule variance) etc and track them every week in weekly meeting.
Time Commitment: You or your team must budget for 10% of total project effort to make projects successful. Your team's time will be engaged in spec creation/ deliberation, review during demo, tracking and completing User Acceptance testing and proving feedback.
选择合适的供应商/外包合作伙伴将有助于抑制高成本出现超支情况和质量差,产品放行延迟。
在选择供应商之前,需要考虑的要点:
预算-在考虑内包或外包之前,你应该先确定预算。实际上,离岸外包节省了30%的开发成本。如果你很有条理,那么你可以节省一半的费用。
方法论-早期部署结构化方法论,如 Scrum敏捷项目管理或迭代。使用Rally Dev或Jira等工具进行跟踪和管理。
跟踪:应有效跟踪外包项目,以获得最佳结果。根据你的时间,扮演产品经理或项目经理的角色。确保Scrum工具定期更新,并在每次迭代结束时(最多2周或3周)进行工作演示。
质量控制跟踪-确定你想要追踪的参数,确保你的业务目标和质量目标。参数可以包括速度、每1000工时的缺陷或范围差异(在scrum中没有计划差异)等,并在每周会议中跟踪它们。
时间承诺:为了使项目成功,您或您的团队必须为整个项目工作的10%做预算。你的团队的时间将用于规范的创建/审议,演示期间的审查,跟踪并完成用户验收测试和验证反馈。
Personal experience- When I landed in 2006 at Hollywood ( Burbank, CA) for executing large Music project with 5 team members, we had many bumps on kickoff meeting itself. We thought label as HTML label and A&R department as Software architecture reviews department. Thank God, we had smart Analyst, who enlightened in real-time via yahoo messenger then. We ensured to start domain induction before project kick henceforth.
Similar are stories for Broadcast & Studios or Automobiles auction pricing domain for me if not that worse.
Hence check domain credentials of vendor during due diligence.
领域-领域知识通常不会自然出现在外包商身上。因为他们知道很多事情因为他们每时每刻都在处理他们的事务。
个人经历-2006年,当我在好莱坞(加利福尼亚州伯班克)与5名团队成员一起执行一个大型音乐项目时,我们在启动会议上遇到了很多挫折。我们认为标签是HTML标签,组装与再循环部门是软件架构审查部门。谢天谢地,我们有一位聪明的分析师,他当时通过雅虎信使实时得到启发。我们确保在项目启动之前开始领域归纳法。
在我看来,广播以及录音棚或汽车拍卖定价领域也有类似的情况。
因此,在尽职调查期间检查供应商的域凭据。
Communication- 2 to 3 hours of overlap must between onshore and offshore team. It is better to have 20 to 30% of the team at onshore during development phase. Each meeting, minutes to be circulated with all key points. Fix the day-time of weekly call and medium of the call like Hangout, skype or Webex. Protocol for offshore non-working hours.
Technology- Unless you are not choosing some bleeding age technology, most of the time it is low risk item. However some basic must be followed like static code analysis, continuous integration, performance analysis etc. Check team’s technology credential.
Pricing- Most traditionally per hour basis price (Time & Material) you can use, as it still works.
For startups,you can skeleton price plus equity, catch is,Vendor should believe in your idea and you.
要求:要外包的产品至少应有书面文件,即使不是故事,也应采用史诗形式。它必须伴随线框。设计良好的线框将使80%的需求清晰,20%的需求可以通过电话讨论。
沟通-陆上和海上团队之间必须有2到3小时的重叠时间。在开发阶段,最好有20 - 30%的团队在陆上工作。每次会议,都要分发会议记录,包括所有要点。固定每周通话的时间和通话媒介,如Hangout、skype或Webex。海上非工作时间协议。
技术-除非你选择的不是一些过时的技术,大多数情况下它是低风险的项目。然而,必须遵循一些基本规范,如静态代码分析、持续集成、性能分析等。检查团队的技术证书。
定价-你可以使用最传统的每小时基础价格(时间和材料),因为它仍然有效。
对于创业公司来说,你可以把价格加上股权,关键是,供应商应该相信你的想法和你。
Fixed price - Need significant maturity on both sides, estimates should be done using standard techniques like Use case points or Function points. If done prematurely it will create heartache and lot of efforts gets wasted in change requests management.
Finally “You pay peanuts, you will get monkeys”. Hence be cautious about aggressive pricing, It mostly hurts.
Startup- Startup Development is different ball game altogether. It needs different style and methodology in MVP, Scaling Up and steady phase. During MVP, It needs extreme agility and adjustment to uncertainty. Your development partner must be able to cope and follow similar temperament. You may go for one week iteration.
Infrastructure- Please plan for development infrastructure.
基于结果的定价-对于已建立的客户,可以选择每笔交易定价或按收入的百分比定价,或综合两方便定价。
固定价格-双方都需要显著的成熟度,双方都需要相当的成熟度,评估应该使用标准技术,如用例点或功能点。如果过早地这样做,将会造成痛苦,在变更请求管理方面会浪费很多精力。最后,“微薪养蠢材”。因此,对激进的定价要谨慎,因为这会带来很大的伤害。
创业-创业开发是完全不同的。在最小化可行产品(MVP)、扩展和稳定阶段,它需要不同的风格和方法。在MVP期间,它需要极大的灵活性和对不确定性的适应能力。你的发展伙伴必须能够应对并遵循类似的节凑,你可以进行一周的迭代。
基础设施-请规划发展基础设施。
For established player it is even more important. One of my client had 46 nodes cluster for production and ready to spare just one server for testing. It’s a perfect recipe for failure. Finally ,they agreed to spare two server in cluster for testing. We simulated load with Jmeter to mimic production. Hence plan and budget for correct development infra.
Reference Check- It is a mandatory step, Do reference check from their client or other stakeholders. Check for Project Management capability, domain and technology capability.
Trust - Once you sext team, then trust and behave as if they are your own team. Trust does not mean discounting review or tracking, which must be there. But Trust is one factor can do miracle.
Good luck for your development.
NB: Author is a Software professional with two decades of experience and is CEO of Boutique software service company, SmallDay IT Services, Bangalore. Views are from his personal experience of executing numerous Projects for different clients starting from startup to Fortune 500 organisation, scattered around the Globe.
如果是创业公司,你可以使用一台服务器进行管理。但最好必须有一个测试服务器和一个实时服务器。在任何情况下,亚马逊网络服务或其他云计算公司都是初创企业的福音。
对于老手来说,这更重要。我的一个客户机有46个节点的集群用于生产,,并且只准备腾出一个服务器用于测试。这是失败的完美配方,最后,他们同意在集群中留出两台服务器进行测试。我们用Jmeter模拟负载以模拟生产。因此,为正确开发基础设施制定计划和预算。
参考检查-这是一个强制性步骤,从客户或其他利益相关者处进行参考检查。检查项目管理能力、领域和技术能力。
信任-一旦你选择了一个团队,然后就信任他们,表现得就像他们是你自己的团队一样。信任并不意味着审查或跟踪时大打折扣,这必须存在。但信任是创造奇迹的一个因素。
祝你开发顺利。
注:作者是一名拥有二十年经验的软件专业人士,是班加罗尔SmallDay IT Services精品软件服务公司的首席执行官。他的观点来自于他为不同客户执行众多项目的个人经历,从初创企业到财富500强企业,遍布全球。
Software development has reached new heights now a days . From small to big most of the IT companies offer packages which seem like a good deal but to choose one among them is a difficult task. For developing a software the developer must at first know about the requirements of the client. After that brief planning is required to get the desired output. All of it depends basically upon the team. If the team has good coordination it will surely produce output which is bound to get praises from the people. TRION TECHNOLOGIES is one among the sea of companies in Gurgaon which stands out for its unique work and performance. The team is efficient enough to meet the requirements of the people and to provide the best services that they can.
如今,软件开发已经达到了新的高度。从小到大,大多数IT公司提供的软件包看起来很划算,但从中选择一个是一项艰巨的任务。对于开发软件,开发人员必须首先了解客户端的需求。之后,需要进行简短的规划以获得所需的输出。所有这些基本上都取决于团队。如果团队有良好的协调性,就一定会产生成果,一定会得到人们的赞扬。揣恩科技(TRION TECHNOLOGIES)是古尔冈众多公司中的一家,以其独特的工作和业绩而脱颖而出。团队的效率足以满足员工的需求,并提供他们所能提供的最佳服务。
1. What does your technology stack look like?
This allows your to figure out how up-to-date the firm is with technology.
2. What does your architecture look like?
This is an important follow-up to the above question and allows you to figure out how good the interviewer is at big picture analysis. Interesting discussions may be had regarding certain pieces time permitting.
3. What does your development lifecycle look like and how is requirements engineering done?
It seems like everyone is doing agile development with bi-weekly sprints but what is more interesting is how much face-time do developers get with users and how much decision room do they have.
你的技术堆栈是什么样子的?
这可以让你了解该公司在技术方面的最新情况。
你的架构是什么样子的?
这是对上述问题的一个重要补充,可以让你了解接见者在宏观分析方面有多出色。如果时间允许,可能会就某些部分进行有趣的讨论。
你的开发产品的生命周期是什么样子的?需求工程是如何完成的?
似乎每个人都在用两周一次的冲刺来进行敏捷开发,但更有趣的是,开发人员与用户见面的时间有多少,他们有多少决策空间。
Beware of anyone not running CI infrastructure with an automated build process. Automated end-to-end integration testing before feature merge is a sign of a good quality team. Automated stress and infrastructure failover testing including db restoration are all signs of a top notch team.
5. What is your team structure like?
3 people, 6 people, 23 people including the CTO, just you? It's good to get a feel for how many people will you be interacting with on a daily basis.
6. What is your production infrastucture like? How much control do developers have over it?
Automated production deployment from QA should really be standard. Having access to production logs and anonymized production data is very useful. Having production accounts and access to the application as a user is excellent.
你的测试/质量保证流程是什么样的?
当心那些没有使用自动构建过程运行CI基础设施的人。在特性合并之前进行自动化的端到端集成测试是一个高质量团队的标志。自动化压力和基础设施故障转移测试(包括数据库恢复)都是一流团队的标志。
你的团队结构是什么样的?
3人,6人,包括首席技术官在内的23人,还是只有你?这有助于你了解自己每天会与多少人互动。
你们的生产基础设施是什么样的?开发者对它有多少控制权?
品质保证的自动化生产部署应该真正成为标准。能够访问生产日志和匿名生产数据是非常有用的。作为用户拥有生产帐户和对应用程序的访问权限是非常好的。
This is a really important question especially in bigger organizations such as banks where you might be required to be on-call for applications that your team owns.
8. Why did you choose technology X? Why not Y?
This is a great question to get into a discussion with your interviewer and get to know their opinion on tech topics if you can engage them.
9. What sort of software do you use?
Source-control (just walk out if they are not using any), Issue tracking, Analytics (big plus if they have analytics tracking), IDEs, developer machines, any other software that might be pertinent.
10. What kind of training do you offer employees?
Note: there exists a Joel Test to determine the quality of a software team and there is some overlap here but I choose to frx my questions more open-ended to create a discussion space.
你希望开发人员在工作时间和可用性方面提供多少支持?你是否有专门的支持人员?
这是一个非常重要的问题,尤其是在大型组织(如银行)中,在这些组织中,你可能会被要求随时待命以用于你的团队拥有的应用程序。
你为什么选择X技术?为什么不是Y?
这是一个很好的问题,如果你能让接见者参与进来的话,可以与他们进行讨论,了解他们对科技话题的看法。
你使用哪种软件?
源代码控制(如果他们不使用的话就离开),问题跟踪,分析(如果他们有分析跟踪的话就更棒了)、集成开发环、开发人员机器、任何其他可能相关的软件。
你们为员工提供什么样的培训?
注意:存在一个Joel测试来确定软件团队的质量,这里有一些重叠,但我选择把我的问题框架更开放,以创建一个讨论空间。
A successful startup partnership has several dimensions.
Your skills and interests must be complementary. If you partner is the technical one, what do you bring to the effort? Be clear, and be clear on what outside advice etc. you will need as well.
You must both be equally committed to making the startup work, and open to shifting tactics as you get feedback in the market.
You must both agree on the contributions each will make (financial and otherwise), in writing.
These are major commitments. So you will want to have a solid business case for the proposed company ahead of time. That means some research: what competitors offer the same or similar *value* to customers? (Note that they may not seem to be competing in your intended space. But customers don’t buy based on a market segment, they buy based on expected good outcomes for themselves.) What is the typical financial profile of early stage companies in this area? What will the cash flow draw be, for how long? How will you finance that? And if you intend to have intellectual property you will defend, getting some initial legal advice is a good idea.
This raises the question of whether you want / need / can work with a *partner*, or whether what you want is a contract software developer who will be under a well-written non-disclosure/non-compete agreement.
成功的创业伙伴关系有几个方面。
你的技能和兴趣必须相辅相成。如果你的合作伙伴是技术合作伙伴,你会为这项工作带来什么?要清楚,也要清楚你需要什么外部建议等。
你们双方都必须同样致力于创业,并随着市场反馈的变化而改变策略。
双方必须以书面形式就各自将做出的贡献(财务和其他方面)达成一致。
这些是主要的承诺。因此,所以你需要提前为你的公司准备一个可靠的商业案例。这意味着要做一些调查:哪些竞争对手能为客户提供相同或相似的“价值”?(注意,他们似乎并没有在你想要的领域竞争。但是,消费者购买商品的依据并不是某个细分市场,他们购买商品的依据是对自己的良好预期。)这一领域早期公司的典型财务状况如何?现金流将是多少,持续多长时间?你将如何筹措资金?如果你打算捍卫自己的知识产权,获得一些初步的法律建议是一个好主意。
这就提出了一个问题:你是否希望/需要/能够与合作伙伴合作,或者你想要的是一名软件开发方面合同工,该开发人员将签署一份书面的保密/竞业禁止协议。
原创翻译:龙腾网 https://www.ltaaa.cn 转载请注明出处
In the market, many software development companies available but choose the right one is very important for your software/product. here some point helps you.
1. Get referrals from people
Talk to other people in your network to get referrals for custom software developers. Not only will it quickly track the sextion process of potential custom developers, but it will also help you collect honest feedback about them.
2. Discussion about coding
The quality of the codec will directly affect the quality of the generated application. Discuss with the custom software developers as to what level should be maintained during coding. Indicate your instructions like -
? No buggy / resource-hungry icons
? More lean coding etc.
市场上有许多软件开发公司,但选择合适的公司对你的软件/产品非常重要。这里有一些对你有帮助的观点。
从别人那里获得推荐
与网络中的其他人交谈,以获得定制软件开发人员的推荐。它不仅能够快速追踪潜在定制开发者的选择过程,还能够帮助你收集关于他们的真实反馈
关于编码的讨论
编解码器的质量将直接影响生成的应用程序的质量。与定制软件开发人员讨论在编码期间应该维护的级别,指示如下:
没有bug /缺乏资源的图标;
更多精益编码等。
Do some previous projects to get an idea of the kind of apps developers has worked on. I wonder why? Here's why -
Custom software development companies that have worked on many projects have a tried and tested methodology for completing projects successfully. On the contrary, new software development companies (due to lack of experience) are still in the methodology development stage. As a result - they are not aware of the challenges that can arise during the software development life cycle.
4. Understand the different software systems
Learn about different software development technologies such as Windows and UNIX. Based on their characteristics, decide on which technology you want your custom app to be built.
5. Focus on delivery time
Choose a dedicated software development company with a proven track record of on-time delivery. This will only give you and your team sufficient time to test the software and report bugs (if any); Your employees can train and guide themselves to make better use of the app.
I hope this helps you to choose the right company.
Thanks
查看公司的投资组合
通过一些以前的项目,了解开发者开发的应用程序类型。我想知道为什么?原因如下:
从事过许多项目的定制软件开发公司有一种经过测试的方法来成功完成项目。相反,新的软件开发公司(由于缺乏经验)仍处于方法开发阶段。因此,他们没有意识到在软件开发生命周期中可能出现的挑战。
了解不同的软件系统
了解不同的软件开发技术,如Windows和UNIX。根据它们的特点,决定要使用哪种技术构建自定义应用程序。
关注交付时间
选择一家具有可靠的按时交付记录的专业软件开发公司。这只会给你和团队足够的时间来测试软件并报告错误(如果有);你的员工可以得到培训和指导自己更好地使用应用程序。
我希望这能帮助你选择合适的公司。
谢谢
原创翻译:龙腾网 https://www.ltaaa.cn 转载请注明出处