I had a conversation with Ward today where he was asking me if it was common for folks in MS to share their goals (what you go against when you do performance appraisal) as a way of communicating to others what they are working on.
It led me to think about a lot of things, but especially:
1) How the performance and review process works at Microsoft. As with any measurment system that takes a zillion technical and human factors and bangs it into a scalar value, it has a lot of issues. However, I noticed one thing: How I (and many others I admire) give a flying (d)uck about the score, especially if the perception is that there is a tradeoff between getting a better score or doing what's right for the team and business. Regardless of the score, MS tends to be a place where doing the Right Thing tends to get rewarded one way or the other in the end. Kudos to the leadership on that.
2) How I share my goals with anyone internally on the asking, yet haven't shared it externally. As one of the architects in the patterns & practices business, and the architect of the p&p EntLib and Smart Client Program and VB6 migration and what not, what I focus on has an impact on what you see. So, I think I owe it to you to all to share what I get measured on -
My Review Document
So, always your humble servant, here is my list of "commitments" for this year at MS. Am I focusing on the right things? Any disappointments? Anything glaringly obvious that is missing? Are our priorities right? Some things need translation from the "lingo" it seems to be written in, I'll happily clarify rather than masage it too much before posting and loosing the candor of it.
p&p Community Process
Initiate in Smart Client and evolve to 2.0 status
Define scenarios in terms of baseline architectures as composition of patterns implemented via tools and block libraries
• Expose roadmaps for programs quarterly
• Proactively engage in the dialogue w the community as a key resource during the p&p lifecycle w other PAG resources, like feedback and priorities around scenarios, technical challenges, requirements, design options, features, and structured feedback of the asset during the phases
Define baseline architectures for key scenarios (Smart Client) and expose to community and luminaries.
• Identify and promote MVPs and re-usable asset opportunities
• provide and review site requirements, features and roadmap
• define p&p asset/guidance lifecycle
Quality Reach: Develop a compelling library of patterns & practices deliverables that are deeply integrated with Microsoft web, events, marketing campaigns, community and partner programs that drive a 20% improvement in awareness and usage of patterns & practices with the professional developer audience.
· Enterprise Library V1 and V2
· SOA Reference Implementation built on EntLib
· SC Reference Implementation
* Develop architectural roadmaps for programs including relationships between projects and with other programs, updated quarterly based on PdM + community input
* Provide gap analysis between customer scenarios related to p&p programs and current/future product features.
* Develop a technical strategy that aligns current and future products
* Develop roadmap of assets per program including relationships between projects and other programs
* Technical contribution to product group review, signoff, endorsement of deliverables incl industry / luminary reviews and endorsements
* Review and feedback on priorities, prototypes, technical specification (e.g. high level design), tests and development guidelines (including NFRs), test plans and end deliverables
Product Group imitating p&p SDLC for assets
Prerequisite: Roll out community process
Assist PG in establishing their own Expert Board
1 product group led p&p project
"Place" in p&p frame for such project
Plan and build team around EntLib Whidbey, provide technical direction and relationships with PG
PG signoff on EntLib-Whidbey
P&p members signoff on p&p Whidbey
Smart client initiative can build on EntLib-WhidbeyAlign EntLib w the directions of MBF and get a technology roadmap in place for PAG and MBF
Patterns & Blocks
Establish & expose 2 way relationships between patterns and EntLib app design
Patterns shipping in EntLib, Implementation-level patterns for EntLib.
Expressing LOB scenarios as pattern composition
Ship working Everett or Whidbey code generation / recipe / transformation mechanism
CodeGen present in EntLib, Smart Client, or some other deliverable
Design shared schema for arch reviews w prioritized aggregated data
PdM sign-in to deliver
2 Arch reviews by FY end + 1 exec review
* Contribution and review of the scenarios.
* Participate in product group reviews
R&D – Emergent
Identify PGs relevant to AOSD
Expose thinking from experts to relevant folks
PG Feedback on AOSD
1 PG relevant member in external AOSD community
P&p Architecture transparency
TBD, scoped to projects & programs allocated to me.
Publish an architecture review checklist by end of Q1 for Reference apps, patterns, and blocks• Perform architecture reviews prior to M1 and prior to release for all pag deliverables and publish results and signoff on all pag deliverables. • Develop architecture roadmap to ensure the technical integrity across pag deliverables by Q2• Provide vision for roadmap and product types.• Develop and maintain templates for design/artifact specs by product type by Q2
Inclusion of assets in library/ies w integration between and across p&p assetsAdoption of the block spec – are there other specs that should be created and adopted
One MSIT, customer or partner asset built to asset spec
Delivery of asset specification as key feedback to WhiteHorse / Software Factory initiative
Some things I won't be able to get to do, obviously, by the end of the fiscal year (June 30) so I'm blowing my own cover. :)
Note this is a copy and paste from the core of doc I submit to my manager and to the HR system that then gets reviewed stack-ranked (yeah I know it could be more humane) and all that stuff. Salary, bonus, etc if any gets worked out from this. If you give me feedback I'll consider it and as appropriate put it into next year's goals. And if you have feedback such as "Where does it say app blocks will get simpler?!" "I don't see any consideration of using emergent patterns such as IoC" or "I'd like to see something saying you'll put all p&p documentation in a public wiki" just please suggest it with a way of measuring and evaluating that the result was reached.
I consider this an experiment.