How do I develop things?

Published 16 April 05 02:30 PM

Being a part of a development team, development is one of my major responsibilities. During past few years, I am trying to establish development standards and methodologies for myself. Here I will try to share my style or the way of coding.

  1. Understand the problem domain.
  2. When things are clear, try to identify all the business identities and business processes.
  3. Discover all the possible actions. Summarize object attributes and behaviors.
  4. Model all the business entities - their attributes and behaviors. Well this step depends what why I am using to model the business entities. Sometimes they are custom objects and some times datasets or custom datasets.
  5. Now start modeling business process classes with function without any implementation.
    - Return some fake (but legal values) values if a function is supposed to return some values.
    - Function stubs are well commented, like what this function is supposed to do, what kind of exceptions are expected etc. Comments covers both aspects i.e. how does this function is going to fit into the whole communication scenario and how to implement it.
    - The process of designing or modeling business process classes start from small classes and ends up with the design of some big complex controller class (implementation of process depends upon the way I am looking at systems and what pattern I am following).
    - If there is a high level business process class which consumes all of the already written stub classes, implement such classes by calling the stub functions.
  6. Now perform a review. Identify the weak points: w.r.t. to exception handling, computational power required and scalability. Discuss with some senior person about them and spend some time while fitting the particular module in bigger picture and then analyzing the impact.
  7. Now major part of the system is done, its fun to implement those small functions.
  8. It feels real good when your system starts to work on first run!

Just for information, steps 2, 3, 4, 5 are modeled in UML and for step 5, code generator should be used (currently I am not using any). I am seriously looking forward to Visual Studio 2005 coz it will really make my life easy.

I consider following things while developing a module.

  1. Every object should be least coupled with outside environment and strongly cohesive.
  2. Attributes and behaviors are well identified and they make sense in over all scenario.

So how do you code? Speak out at WIKI site called http://www.asquare.info/wikka/HowDoICode. Visit the website and share your experiences.

I know there are many proven methods for effective development, but I am talking about some what real world scenerios - what is my practice.

by fahad
Anonymous comments are disabled