元件重用需要專人負責 (轉)
不知道諸位所在的公司如何,至少在我現在的公司,程式碼的重用性是很差的。同一個模組在多個專案組之間重複開發,甚至同一個模組在同一個專案的不同版本之間也是不同的人重複開發......我們把大量的時間放在了做重複性的工作上面,所以就談不上什麼創新了,因為根本沒有時間了。
真誠的希望,哪一天我們的工作就像建築一座大廈,只需要做設計,買來相應的材料就可以組裝起來了。無法想象,如果每一個磚頭都要親自打造,何時能夠完工。
作為一個普通的開發者,也許我無法改變現實。但是,如果你是一位主管,也許你就可以考慮考慮了。
Component Reuse Requires a Manager
?sid=1000111676359-3546549773-50">Paul Harmon ArchiveVisit the Paul Harmon archive for the complete collection of all past Bottom Line columns.
Most companies are blundering into component development without a clear plan. That makes sense, when you consr that senior managers don't usually focus on technologies. They focus on results. Today, most companies are focused on the Inte and on develo e-commerce and eBusiness applications. To facilitate the development the new B2C or B2B applications, companies decide to adopt , buy application servers, or rely on MTS and COM+. Depending on the tools and servers they buy, they may acquire some components for reuse. If they do, however, those components are already implemented as or EJB components.
Making quick decisions and moving fast may solve some of the short-run demands that senior executives are placing on IT, but it won't prepare IT for long-run success.
The first step to planning for IT success is to recognize that the move to e-commerce and the is in fact a software technology transition. Of course it is also a business process transition and of course senior executives are more focused on implementing new eBusiness processes, but that doesn't change the way the CIO and senior IT managers should look at the transition. When you start using -oriented languages like , C++, and Java, you are moving toward object-oriented development. When you start developing COM+ and EJB components and acquire an MTS or EJB application server, you are committing your company to component-based development. Once you face this fact, then the question that follows is: Are you going to do it right, or are you going to try to blunder your way through a major technology transition?
"Are you going to do it right, or are you going to try to blunder your way through a major technology transition?"Assuming you decide you'd rather do it right and master component-based development, you need to begin by creating a new job position. You need a Manager of Component Development, and he or she needs to report to the CIO or to the manager in charge of software development. Put another way, your Manager of Component Development needs clout and he or she needs to be located high enough to have a comprehensive overview of what the organization is doing.
The Manager of Component Development should not be responsible for developing component-based applications. Your whole IT group will eventually be developing component-based applications. The Manager of Component Development should be responsible for two things. First, he or she should be responsible for planning the transition. Second, he or she should end up managing the group within IT that is responsible for reusable component res.
In effect, once an organization commits to transitioning to component-based development, it should begin to move toward an organizational structure that divides those who create and maintain reusable components and those who assemble components into applications. Moreover, until you have this kind of organization, and some component resources to reuse, you can't practice effective component-based development. Without it, you create a development team to create a new e-commerce application from scratch. The team decides on a language and an application server and then creates a design and starts creating components. They may buy some components from the server vendor or an outside resource, but usually they are under such time pressure that they don't have time to figure out how to acquire components for reuse. Besides, not being trained or disciplined to reuse components, most find it easier to create new components than to work through the significant learning curve that the transition to reuse necessarily requires.
"It's rarely a matter of simply taking a component that was developed for one application and using it in another application."The only way an organization can get ahead of this game is to appoint a Manager of Component Development and assign that person to manage the transition. The new manager will need to choose his or her targets carefully. First there will be staff training and an evaluation of just what component resources exist. Usually it's a matter of identifying some components from outside sources and other components that will need to be developed internally. Typically, someone will propose that component x (Personnel Record Update, Part Order, Account, or some such) is frequently used and ought to be standardized for reuse. It's rarely a matter of simply taking a component that was developed for one application and using it in another application. Instead, at this point our Manager of Component Development will begin to acquire a team of component developers who will specialize in creating, testing, and maintaining components for reuse.
The component development team will need special skills and they need to be isolated from the contingencies that make it hard for people working on specific projects to take a long range perspective. The component development team is charged with building a library of reusable components. They will buy some and develop others, often starting with existing components but typically modifying them quite a bit. There are lots of issues these developers will face. Do you design components in the abstract (UML specifications) and then implement them in specific languages as COM+ or EJB components, or focus on implementations right from the start? How do you test components? Who is responsible for approving changes in the components and how do you control versions? Figuring out how to develop and manage component resources will take time.
"Team managers will need to be educated to require and reward reuse rather than the rd development of code."Then, once the manager and the team feel that they are on top of that, they, or others, will need to train the actual application developers in the reuse of existing resources. This will also take time. Team managers will need to be educated to require and reward reuse rather than the rapid development of code. Individuals will need to be available to help developers design applications to take advantage of reuse. Its never the case that all of the components needed for an application can be reused. It would be impossibly inefficient to aim for such a thing. The key is recognizing what elements of an application can be handled by reusable components and what will require one time development.
I don't want to try to lay out the entire transition here. The key, however, is a Manager of Component Development, and a group that is focused on acquiring, creating, and maintaining reusable components. When I critique an organizations and find a dozen component development projects underway, each trying to figure out how to handle the various problems they face without any high-level help, I know the organization hasn't figured out what its doing yet. It has blundered into a major software transition without realizing it or planning for it. One or two teams, by shear hard work and individual brilliance may produce a great e-commerce application. But the company isn't ready to systematically duplicate that effort when it seeks to create another eBusiness application. Nor will it be ready to modify that and other applications as new technologies and eBusiness processes emerge in the years ahead.
On the other hand, when I visit organizations and see such individuals in place, I know the company has thought about what it is doing and has a transition plan. With a little luck, the organization with the manager is going to get better and better at systematically creating component-based applications. And, at the same time, I expect they will start reducing the time and cost of application development while simultaneously increasing the quality of the applications. They have a plan to take advantage of what the component transition really offers.
<!-- end text --><!-- Discussion Bar --><!-- Discussion Bar -->來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990772/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 研發效能負責人/研發效能1號位 |DevOps負責人dev
- FFmpeg專案負責人Michael Niedermayer宣佈辭職
- 谷歌大腦負責人:深度學習需要至少十萬個樣本谷歌深度學習
- 專案經理負責制遇到新挑戰(轉)
- 專訪丨小米遊戲負責人:請不要妖魔化渠道遊戲
- 如糖APP——招技術負責人APP
- 谷歌AI中國中心負責人李佳:改善人類生活需要 AI,而 AI 需要「四步走」谷歌AI
- 阿里負責人揭祕面試潛規則阿里面試
- 專訪疊紙發行負責人:從“小眾”到破圈,如何玩轉游戲發行?
- 獨立遊戲發行商 PLAYISM 負責人專訪:從採摘者到培育者遊戲
- 成為一個專案負責人後給我帶來的影響
- 第一次做跨團隊專項負責人の總結
- 專訪谷歌NLP技術專家:我們負責讓谷歌更懂人類語言谷歌
- 獨家:一號店負責人戴翼虎掛帥京東百億補貼專案
- Google X負責人:谷歌必須融入現實世界Go谷歌
- 架構師負責訂規範,你負責執行!架構
- 專訪阿里雲 Serverless 負責人:無伺服器不會讓後端失業阿里Server伺服器後端
- 特斯拉Autopilot自動駕駛軟體負責人離職自動駕駛
- 最近身邊一個技術負責人裸辭了...
- 《神覺者》IP美術組負責人牧羊人專訪——“潮酷”都市神話的IP探索之路
- 專訪騰訊獨立遊戲孵化器負責人:獨立遊戲“白銀”年代,究竟要孵化什麼?遊戲
- 傳蘋果負責健康科技專案高管已離任蘋果
- 朝夕光年高層變動:重度遊戲發行負責人那拓離職轉顧問遊戲
- 專案辦公室的職責(轉)
- 產品經理和產品負責人之間的職責是如何劃分? - Reddit
- Google AI負責人Jeff Dean:機器學習讓計算機更智慧GoAI機器學習計算機
- Y Combinator中國區負責人看好區塊鏈區塊鏈
- 莉莉絲遊戲如何做音訊?負責人巴尼大揭秘遊戲音訊
- 爆料,支付寶“圈子”人事調整,阿里系負責人上任阿里
- 谷歌大腦負責人談人工智慧:科幻變現實谷歌人工智慧
- 德勤區塊鏈服務部門更換負責人區塊鏈
- Google 雲平臺負責人:開源是唯一的路Go
- Facebook AI 負責人:深度學習技術趨勢報告AI深度學習
- Xbox 負責人菲爾·斯賓塞 TGS 專訪:次世代的微軟究竟藏了多少殺招?微軟
- Linux Mint 專案負責人宣佈了Linux Mint 21的一些細節Linux
- Facebook AI負責人:AI達到人類智慧之前,要先破解成本極限AI
- 傳蘋果返聘已退休高管負責Apple Car專案蘋果APP
- 《摩爾莊園》手遊產品負責人晨晨子分享入行故事