Planning and Managing Enterprise Development
Here I have gathered all the things which should be considered or performed during the development planning phase and during development of an enterprise application. Here by development planning phase I mean the time when all the client requirements are well understood by the team and they have finished the RS and are now just about to kick start the development.
Please note that these observations are based upon my limited knowledge and experience. I will highly appreciate if you review them and extend the list. If you think, any other step is required, please edit this post and add accordingly. Also, please do not confuse them with standard software development practices. It is something, a bit different.
All software houses have their processes defined, shouldn’t there be one for such activities? Rather I think many places do have got some. Anybody to share any experience?
Pre Development Activities
The basic purpose of these activities should be the establishments of development standards and best practice guidelines which should cover every aspect of the development. Such kind of effort requires just one time effort and may seem costly but they have dramatically impact on improved future development and significant reduction of rework costs: provided these activities have been perform with utmost care and by experience people.
- Understanding of possible security issues, how to avoid them, how to test them. Establishment of Security check-list which covers all the possible threats, their detection and counter measures.
- Establishment of Coding Standards.
- Assumptions about Scaling and distributing the system and designing the application accordingly for Remoting and/or Web Service enabled.
- Designing the Interfaces for Presentation Tier, Business Tier & Persistence Tier accordingly to enforce standards in development.
- Selection of Data Access Framework according to RDBMS dependency.
- Designing/Selecting the Exception Handling, Management and Logging framework.
- Designing the library infrastructure and relaying it to all team members.
- Designing the code structure - High level Name Space establishment.
- Establishing a build server for team development to avoid version conflicts.
- Identification of Recursive Code Patterns and writing Code Generators (like for persistence tier).
- Establishment of Authorization, Authentication and Auditing plans.
- Establishment of Application Data caching policy (abstract level). What should be cached and how. If data model is finalized, then one can even point of information to be stored in cache.
- Selecting or writing custom controls if required.
- Establishment of SCM strategy for Database.
- Establishment of Assumptions about Recommended Hardware and Software.Planning of Cost/Performance benefits for different Hardware/Software combinations. This also includes total bandwidth required etc.
- Selecting CSS. Boring... but I have included it to increase the list :D.
- Identification of team training requirements. This is part of standard CMM practice.
- Establishment of the SCM strategy. This is part of standard CMM practice.
During Development...
The basic purpose of recursive activities should be the monitoring of the standards and best practices decided at the beginning of the project (discussed in sheet one). To do so, Recursive Tracking Mechanisms should be established at the beginning of the project.
- Establishment of Mile Stones to review the standards established at the start of project.
- Code Peer Reviews to ensure that coding, security and other standards are strictly being followed or not.
- Establishment of Mile Stones to review the application performance while deploying the application in simulated or real-time environment.
To Comment on this article, please visit http://www.ASquare.info/wikka/ThingsToDo