9年+业务架构师,最早3年是coding工作,拙见如下:
1. 转换思维方式很重要。
开发的思维和业务架构师的思维有很大差异。前者侧重于对具体的问题,思考能否实现、如何实现、实现的好不好、效率高不高。后者侧重于对明确或者模糊的问题, 思考真正需求是什么、为什么是这样、如何分析成册、如何描述给下游同事。
2. 语言翻译能力是基础
将业务语言翻译为产品语言、开发语言的能力很重要。业务需求来自客户或业务部门,收集到的信息是基于业务语言描述。 业务架构师需要学会基于自己的经验知识进行分析,把业务语言转换成产品语言、开发语言。这样在跟产品、研发团队的沟通中,才能完成信息的有效、高保真传递。
举例: 业务需求说‘我要用100M的宽带上网’。 那根据你的业务经验和知识, 翻译成产品、开发语言可能是‘ 支持100M宽带销售品的配置、订购后将100M速率走工单开通到光纤交换机'。
翻译能力的好坏,也是业务架构师能力高低的重要标准。
3. 提升抽象总结和逻辑思维能力
在某个业务场景下,业务需求总是具体而形象的。 业务架构师需要能把不同场景下的需求,加以抽象总结,并通过逻辑思维进行结构性规划。 比如需求说’张三早饭带的是油条配豆浆,李四早饭带的是煎饼配大葱‘。 业务架构师需要对需求进行抽象、总结,在需求文档里描述为‘ 不同用户可以带不同内容的早饭,早饭包含主食和配菜’。 然后基于逻辑思维能力,分析早饭内容是可枚举的,还是自定义的,一个主食可以搭几个配菜。
抽象总结和逻辑思维处理后的业务模型,更能适应面向对象的架构(SOA),保持良好的可复用性和可扩展性。
PS: 做过coding的逻辑思维能力都不会差,这是一个优势。
4. 学习掌握产品功能、开发知识。
广博的知识面是做一个优秀业务架构师的前提。 因为知识越多,对业务的分析、翻译就越准确,业务架构设计就会事半功倍。能力达到一定层次,还可以反向影响甚至引导业务需求。
了解了产品的已有功能、规划功能,可以更好地基于产品功能分析业务需求的复杂程度。 开发知识掌握后,可以更好地和研发进行沟通来验证模型的可用性、易用性。
5. 要有换位思考意识
作为一个承前启后的岗位,业务架构师像是一个路由器,对各种业务需求加以分析处理后路由到下游产品和研发团队。 因此和业务人员沟通时,需要能换位思考“他们为什么提出这个需求、痛点在哪里”;和产品、研发沟通时,能思考他们的技术限制、架构局限和项目进度压力。 基于换位思考的沟通能力,能让你和业务、产品/研发更有效的沟通,关系也更融洽。
6. 勤于沟通
做开发工程师,很多时候根据具体内容埋头coding即可。 但业务架构师需要出色的沟通能力。 因为各种原因,收到的业务需求信息总是不完整或经常变更,这就需要同业务人员、产品/研发进行有效的沟通,并且勤于沟通。 一个闷骚的程序员可以独自修炼成为大师,但一个闷骚的业务架构师只能害的关联团队低效工作甚至重复返工。