Productivity in software development is typically tricky to measure. Is it how fast your team are doing something? It has been proven time and again that lines of code is a poor measure; are the number of modules an indicator? The degree of module reuse within a project, or from previous projects?
Ah, the eternal debate: Agile vs Waterfall, Waterfall vs Agile. When dipping your toes into custom software development you’ll encounter these two terms. They are software development life-cycle models that outline how a project is to be completed.
When engaging a software development services provider, there are many aspects you should consider before signing on the dotted line - to avoid headaches down the track. One such aspect that you really should lockdown is a Service Level Agreement.
Software development depends on a wide variety of intertwining factors and dependencies. Because of their complexity, projects often have a bad track record for sprouting quality, usability, cost, schedule and overrun risks.
Fixed price contracts can be rather tricky in a Scrum environment. Classic software development and Agile software development are very different from one another, and things that work in one environment don’t necessarily work in another.