Key software development problem – too many customers!
How can too many customers be a problem for software development?Â That’s the goal, right?Â Well, yes, but here at DCG many of the suffering organizations we see are suffering because they are crossing a size threshold that requires them to scale up their processes and metrics to a new level of maturity. I attended a meeting of the Eastern Technology Council recently (good networking organization for those of you in the Philadelphia region).Â Scott Fraser, CTO of Portico,Â presented his ideas on what you should include in a modern software development platform.Â It was a good session so I will only pick out the (my) highlights here. Scott’s basic premise was that, as a software product developer, your problems grow disproportionately to your customer base growth.Â Making the software configurable rather than depending on customization is critical to persuading customers that your code is truly enterprise-ready.Â Scott highlighted a number of ways to achieve this enterprise-ready recognition including:
- Architecting your software as a framework using scripting and meta data from which customers had instantiate implementations
- Building a graphical front-end for configuration to lower the entry barrier for staff who can do configuration (maybe, a little).
- Choose and useÂ “tools” that will lower you pain for achieving and sustaining enterprise readiness (see below)
- Implement strong QA on 3rd party vendors
- Need to be able to run all all platforms (see below)
- Integrate or DIE!
As examples of the tools that Scott and his team have found invaluable, he cited Crucible, a online tool for managing distributed code review (DCG actively promotes the value of formal and informal reviews throughout the SDLC), and Fortify360, a static code analysis tool (see other postings on CAST Software) focused on security.Â Interestingly, i just read an article, “Integrating Application Security into Software Development,” by Jeffery Payne in IEEE IT Pro magazine, March/April 2010 edition, which supports Scott’s assertion of the importance of tools like Fortify360 and adds similar tools such as AppScan (IBM), HP WebInspect (HP) and Coverity5 (Coverity). Scott confessed that some of the most important tools were the ones he didn’t need to buy.Â His choice of Oracle and Java early on left much of the application interoperability heavy lifting on those (larger) shoulders. Finally, Scott mused on the importance of good developers and what that means today.Â He asserts that good developers are always “lazy” developers in that they design, build (and test) simple structures that they can reuse many times.Â However, increasingly god developers are also polyglot programmers who have the knowledge and skills to think about the network environment and program for virtualization.