Best Practices

• Communication problems arising when a distributed team is developing software must be handled with special care. A kick-off meeting must be held face-to-face, and all the developers, partners, and contractors must attend. All product deliverables must be clearly defined in the very beginning. After this the communication between team members is
mostly electronic. Time zones differences are not necessarily a problem on the contrary, they may turn out to be an advantage, since by the time one group of developers comes to work in the morning, the testers may have already sent them the test results from the other side of the Globe! Some overlap in working hours is, however, desirable. Establishing availability standards (when and how the team members will be available for communication, how quickly they respond to emails, and so on) facilitates electronic communication in software development done by distributed teams.

• Top-down approach to software analysis and design should be enforced in software development projects when the application domain is numerically intensive, such as signal processing, pattern recognition, and real-time control. The reason is that in such applications the data are not predictable enough, and developers are usually not familiar enough with
the data. For example, if object-oriented design is used in developing such an application, then more general classes (located close to the top of the inheritance tree) should be designed first, and design of their children classes should come next. Contrary to that practice, developing a
business-oriented application (an information system) suggests bottom-up approach. Developers of such applications usually know their data well, and it is quite natural to start the projects from modeling data to be stored in databases. As for the top-down approach to analysis and design, note also that it may inhibit reuse. It may be more economical to look at what reuse and COTS (components-of-the-shelf) software components are available, and select a design based on them. Such a system may not fully meet a client's needs, but the client may be happy to accept it on the basis of its greatly lower cost.

• Productivity of a newly assembled development team should be calibrated in a pilot project. A small pilot project gives project manager the possibility of gaining a rough model of performance for every team member and for the team as a whole before the real work on a large
application begins. Put simply, the work on a pilot project can give a multiplier factor m, so that if a certain team member estimates to take n weeks to do something, in reality he/she will need m times n weeks. This is important for schedule planning for the larger project. How trustworthy
and realistic is the multiplier factor acquired that way depends to a large extent on whether the application domains of the pilot project and the larger application are the same or not and whether the team member(s) is (are) familiar with the domain(s) or not.......................

5 comments:

Anonymous said...

dir.dragg.in
A Web Directory to list your site.

sadsads said...

What a nice site you got here. Please do join and follow me at my blog at http://www.jr041283.com I will be happy to exchange links with you. Thank. Keep if up.

brainmeasure2010 said...

Nice blog.Well Project Management software help to enhance several several aspects of a business day to day operations.
Six Sigma Certification

Unknown said...

visit our site to know better, what is project management
http://anamulhuq.blogspot.com/

randy said...

Hi, Nice blog I had a great time reading it. Would you please consider adding an intro to my website on your next post? Please email me back. Thanks!

Randy
randydavis387 at gmail.com

Copy HTML and Paste in Your Page

Search Engine Submission and Optimization Service


FREE Search Engine Submission
Internet Marketing
BigDirectory.org -free url submission, online website directory