When you address these root causes, you eliminate symptoms and maintain consistency in your software development, you’ll create a more sustainable and stable software design. That is what software best practises are all about: proven solutions applied together. It is a popular belief that “best practises” exist; that is why they are referred to as such.
Following best practices make software development services projects at Zelite Solutions work better:
1. Develop Iteratively
- Critical risks are resolved before making large investments
- Initial iterations enable early user feedback
- Testing and integration are continuous
- Objective milestones provide short term focus
2. Manage Requirements
- Requirements are dynamic – expect them to change during software development
- User’s own understanding of the requirements evolves over time
- Gain agreement with user on what the system should do and not how
- Maintain forward and backward traceability of requirements
3. Use Component Based Architecture
- Using components permits reuse
- Choice of thousands of commercially available components
- Improved maintainability and extensibility
- Promotes clean division of work among teams of developers
4. Visually Model Software
- Visual modeling improves our ability to manage software complexity
- Capture the structure and behavior of components
- Hide or expose details as appropriate for the task
- Promote unambiguous communication
5. Verify Software Quality
- What is quality? – The characteristic of producing a product which meets or exceeds agreed upon requirements by some agreed upon objective measures.
- Software problems are 100 to 1000 times more costly to find and repair after deployment
- Develop test suites for each iteration and test for –
- Functionality
- Reliability
- Performance
6. Control Changes to Software
- Without explicit control parallel development degrades to chaos
- Decompose the architecture into subsystems and assign responsibility of each subsystem to a team. Establish secure workspaces for each team i.e. each team is isolated from changes made in other workspaces.
- Establish an enforceable change control mechanism where
- Change requests are prioritized
- Impact of the change request is assessed
- Plan put in place to introduce change in a particular iteration