Framework for Software Development Productivity
In software development, project management and communication towards the client are critical tasks in building a successful development framework. It is not enough that we can design and code. We need to also be able to communicate and track each development task and milestone, provide exact software reports, explain systems in common language, help customer support with any technical system issues, and provide the client an overall understanding of their software.
The Interaria team takes the following steps to ensure quality assurance and client satisfaction while maintaining development productivity. The list may not be fully inclusive or text book, but it is a tested set-up for dedicated and continuous software development over several years:
1) Prioritizing. We identify each development request and idea with a priority level that helps us to identify critical tasks that need to get done. We use timeline based development and commit to clear deadlines that can be communicated to the client and end-user.
2) Development cycles. We work at minimum on two week cycles that allow our programmers to focus on the identified tasks with as little disturbance and side requests as possible. Coding takes focus and we foster project management style that gives that.
3) Tolerance. No system is ever 100% perfect. Usability is never fully optimal; any system can always be improved. We find the sweet spot with the client where development flows at a pace that is needed while any system and usability issues stay under control and can be documented. If it looks like along with any new system launches or updates, bugs and confusion emerges, we respond and allocate more time for the development. P
4) Setting Standards for Quality Assurance. Related to above, it is always important to identify and document the ideal quality assurance process and reflect it to the reality. The client should be given tools to make their own risk analysis how much resources to allocate to the quality assurance process. The quality assurance is a process of multiple tasks that at least should include automated testing for errors, routine system testing, focused system testing, technical system specifications documentation, real life usage monitoring, client feedback, and server and security monitoring.
5) Customer Feedback. We have created a system that allows our client to input all their customer feedback. When certain feedback starts to trend, we discuss the requirements and any needed system changes, give a priority, and take it to development. The customer feedback logging along with real life usage monitoring is critical to gain an understanding of the user acceptance of the system.
6) Interaction. We make ourselves available as technology consultants, in team leader positions, and system documentation providers. We hold a development meeting with the client weekly, and respond to any software questions within one to two hours. In a small team, the time allocated towards communication can be a a surprisingly large portion. Instead of feeling that it “eats” time away from development, it could/should be regarded as a crucial part of successful software development.