Best practices? Or bestest practices?
August 15, 2008 —
(Page 1 of 7)
Related Search Term(s): Flash, .NET, Silverlight, software development, Visual Studio, Adobe, Microsoft
The very best practice in software development may well be to embrace the understanding that there is no single “best” way. Everyone does their best a little differently: reducing pages of hand-written notes to a few equations, the implementation of which is trivial; writing a program on the couch while a football game plays in the background; rolling out new features month after month; or participating in an enterprise-wide rollout that takes 18 months to plan and deliver. All of these might be one's "best" experience, but all of them are developed in very different ways. So, let's narrow things down a bit.
Corporate development is that of software built for commercial purposes, but not for direct resale. It may generate value directly, as in a Web storefront, or indirectly, as in supply chain coordination, but at its core it is in service to the company's bottom line. Corporate development embodies significant domain knowledge and business rules; this creates a characteristic combination of logic that's "so obvious, no one's ever stated it" and, likewise, it’s "not understood but has to be implemented to stay competitive."
There's typically a Web component to such software, but 100% compatibility with all the world's browsers and OSes is not usually a concern; a requirement to use IE or even a beta version of Silverlight may well be acceptable if it delivers high value.
Speed of development is the final sticking point for corporate development. All corporate development teams have a backlog. Even—maybe especially—in companies that don't consider themselves in the business of software development, time to develop and time to deploy are often the two factors that control the rate at which the company can seize new opportunities. So there is always a premium on high productivity in corporate development.
But in opposition to high productivity is risk: risk of major delay, risk of a show-stopping technical incompatibility, or risk of embracing a tool or technique that is reaching the end of its evolution. Such risks can have huge costs, and it’s very reasonable for project managers to make conservative decisions, especially when it comes to critical infrastructure components. (Prototypes, one-off conversion programs and administration automation are, in contrast, places where there is less risk in exploring newer technologies and techniques.)