A Software project is by nature like an evolving organism, the reason being, a lot on the delivery side happens through trial & error and discovery over the course of development. No one has complete clarity about the how to go about things, till you actually start doing it, Unless of course if you have experience in doing something similar in the past, and this is plain repeat of the same. A software project is similar to a “cone of uncertainty” where in the farther you are in the development cycle, the less uncertainty remains.
So the question that needs to be answered is how do you get from here to there without simply waiting for the benefit of hindsight? And that is answered by Best Practices which is developed through experience. Best practices are set of rules and methodologies, which helps to forge the most optimal approach to the situation. It incorporates some Risk Management mechanism to accommodate any minor misses that catch you unaware.
Deccansoft Software services Ltd, Development division is a small nimble team of software professionals & the core of this team lies in clearly defined approach to any project which largely draws from the Best Practices.
A Snapshot of Development Practices at Deccansoft is here under: -
As Our client you enjoy the following privileges: -
To cut the project time & deliver as per the client’s expectations we engage the client into great length of discussion. This discussion is the key, the same discussion happens between the project management and the delivery team member, which is equally important. Unless each team member is in a position to visualize the end result, there is a chance his efforts might go mis-directed.
The delivery team members of Deccansoft follow this pattern:
Developers ownership of Milestone: the project is broken down into small measureable milestones of <= 10 days a piece. This encourages project scoping and management to happen on a much detailed level. We are also able to have a more realistic approximation of effort, pin-point the risk elements and resource loading is rationalized. Most of our Developer makes a personal commitment to a particular milestone, basically they take the ownership. This ownership greatly increases the quality of delivery and ensures the timelines, as the resources garner pride on surpassing and achieving goals.
Managing Risk: a list of top 10 risks currently facing the project is floated by the team members and constantly tracked to ensure that the project does not jump off the track. A typical list will include risk description like tough functional feature, unachievable schedule or potential low quality stuff. Each risk item is then ranked in priority with steps taken to contain the possible negative fallouts.
Prototyping of user interface: - at deccansoft our experience taught us that early prototyping of the user interface is sure shot ticket for smooth execution of the project. This clarifies the expectations of the client and hence the requirements are understood well. We try to discover the common usage patterns or impractical deliverables before they are designed and implemented and this is a great time saver.
Development an iterative process: at deccansoft we recognise that execution of a project does not happen in separate distinct segments. The gathering of requirement, the initial design, the detailed design, the implementation, the testing, the release and the maintenance phases can overlap. We try to provide staged releases so that we do not struggle against these inter-related phases. So what that means is that within each staged release, design, implementation, debugging and testing will occur. The entire project is approached milestone by milestone. Some more advantages of this approach is not much churning of status reports from our side, as the demo will take care of it, improved estimation ability and risk identification.
Design principles followed at Deccansoft: -
Testing process: - we believe that testing is a integral part of implementation phase. Ongoing construction testing at Deccansoft consists of single step testing, unit testing, component testing and batch testing.