Our project using Microsoft Solution Framework (MSF) as a guide through project lifecycle. The steps involve are envisioning, planning, developing, stabilizing, and deploying. It provide a complete guide from project kick-off until project delivery. Microsoft provide set of documentation and sample deliverables of each phases which can be found in its website: http://www.microsoft.com/msf. I like the flat MSF team model...this give a change to the people specialised in their specific skills to perform well. Meanwhile one person can have multiple roles in the team. I'm in development role, responsible for providing 'how' the solution will be implemented. Currently we are in envisioning phase..and each team member concentrate on completing our vision scope document. I'm part of the vision scope contributor in Solution Design Concept part. Since this is my first time experience in preparing vision for project, I need to look at many many example..so that I can know what must have and to be avoid. I'm concentrate on the architecture and design and the risk assessment as well as the technical implementation of the project.
I'm thinking that my company should have a proper organisation of code and components. This will provide a better reusable of the component in the future. I'm looking at how people at Microsoft implement their naming and convention standard. For example in Enterprise Library they use 'Microsoft' as thier root namespace, the second level namespace is 'Practices' and so on. Other developers should have any problem to find their intended components. I think namespace organisation like this shuold be appropriate for small and flat organisation like my company:
- root namespace should be the company name. example 'Microsoft'
- the second level namespace, use the application name. example 'Helpdesk', 'ERP', 'CRM', 'SupplyChain'
- logical tiers should be named according to segments. example 'DataTier' or 'DAL' and 'BusinessTier' or 'BLL'
- the solution name should be the company name dot application name. example 'Microsoft.Helpdesk'
- the logical tier should be the company name dot application name dot logical segment name. example 'Microsoft.Helpdesk.DataTier'
- and so the class name should be named according to their parents namespace and the class name. example 'Microsoft.Helpdesk.DataTier.CustomerData'
The intention is to develop one repository or library where any developers can usually find the existing component to be implement in the future project.