Our Esteemed Clients

 

Best Practices

Choose Appropriate Development Process

It is important to choose the appropriate development lifecycle process to the project at hand because all other activities are derived from the process. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations. Microlucid always consider each of the major prescribed methodologies in context with business, applications, organization, and technical environments.

Requirement Gathering

Requirement gathering is an essential part of any project and project management Understanding fully what a project will deliver is critical to its success. This may sound like common sense but surprisingly it's an area that is often given far too little attention. Gathering and agreeing on requirements is fundamental to a successful project. Quality requirements are broken up into two kinds: functional and non-functional. A good way to document functional requirements is using Use Cases. Note that Use Cases are used for non-OO projects. Non-functional requirements describe the performance and system characteristics of the application. It is important to gather them because they have a major impact on the application architecture, design, and performance.

Change Management

Change happens. The problem is managing that change successfully in an ever-increasingly complex environment, especially when there’s a geographically distributed team handling high volumes of digital assets and activity requests coming from multiple stakeholders.

Software Change Management solution allows development organizations to control, communicate and respond more effectively to rapidly changing business demands. Furthermore, these integrated configuration and change management capabilities can be easily expanded across all phases of the application development lifecycle, including IT project and portfolio management, requirements definition & management (RDM), analysis and design, and testing and ASQ. The result is better visibility, increased responsiveness, greater predictability and improved software applications and systems.

System Architecture Design

Choosing the appropriate architecture for your application is key. Mostly all the troubled projects have incorporated bad designs and the development team did not apply well-known industry architecture best practices. A good way to avoid this type of problem is to use patterns and they range from the classic Gang of Four patterns, Java patterns, to EJB design patterns. Sun's equivalent is the Core J2EE Patterns catalog. Many projects fail as discussed in the introduction. The study of these failures has given rise to the concept of ant patterns. They are valuable because they provide useful knowledge of what does not work, and why.

Application Design

Even with a good architecture it is still possible to have a bad design. Many applications are either over-designed or under-designed. The two basic principles here are "Keep it Simple" and information hiding. For many projects, it is important to perform Object-Oriented Analysis and Design using UML. There are many books on UML, but we recommend UML User Guide and Applying UML and Patterns. Reuse is one of the great promises of OO, but it is often unrealized because of the additional effort required to create reusable assets. Code reuse is but one form of reuse and there are other kinds of reuse that can provide better productivity gains.

Data Architecture Design

Data Architecture Design includes storage, accumulation, retention, archival, maintenance, and transfer of data within the system and between various systems within or outside the organization. This requires ensuring that data elements, reflecting the enterprises' functional and technical vocabulary, are organized into a standardized data dictionary that accommodates the breadth of business activities performed. The team evaluates the type of data stored to determine commonality, uniqueness, redundancy and efficiency and provides an assessment that lays the foundation for an enterprise data architecture, which supports the application development efforts and streamlines the design process.

Peer reviews

It is important to review other people's work. Code review is systematic examination (often as peer review) of computer source code intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. Experience has shown that problems are eliminated earlier this way and reviews are even more effective than testing. Any artifact from the development process is reviewed, including plans, requirements, architecture, design, code, and test cases. Peer reviews are helpful in trying to produce software quality at top speed.

Writing Quality code

Ensure quality from the start. Quality is not something that can be easily added later. Problems that are too complex, too obscure, or are discovered too late in the product cycle are usually not fixed. The following topics describe principles and procedures for improving code quality.

×

Error

You are not authorised to view this resource.

Copyright © 2014 Microlucid