Supercharge Your Application Development Open Source Strategy with an Architecture-centric Approach


Application Development Open Source Strategy with an Architecture-centric Approach Today's software developer, like never before, is blessed with a plethora of sophisticated open source tools and technologies to aid his craft in producing market-worthy applications.  Leveraging these resources together with the developer's business domain knowledge and agile best practices can quickly yield some truly amazing results  To sustain these successes, an application developer must apply an architectural-centric approach in order to realize longevity, flexibility and independence in his application.

The Application Developer's Concerns

With enhanced tools and know-how come higher expectations. Software developers today face ever-increasing pressure while developing their applications. The need for more functionality, shorter delivery cycles and lower cost structures makes it seemingly impossible to deliver in a manner that makes all interested parties happy.  This pressure comes from both external and internal sources and is particularly true for those building and selling software-based products.

Externally, market innovation and evolution require applications {sidebar id=1} to stay on par with benchmarks and standards. Customers endlessly request differentiating and complex requirements and competitors enjoy pointing out weak spots or lack of functionality.

Internally, the pressure to improve time-to-market, content and lower costs may stem from a more critical need, such as business, product line or application survival. Often inefficiencies within an application developer's environment are partially to blame for project delays and cost overruns. Redundant or missed tasks within project execution may be rampant due to a lack of reuse, communication, process and/or standardization.

Open Source To The Rescue

Wherever the source of the pressure and the associated pain points experienced by developers, leveraging open source technologies has had a significant impact on both the development and runtime environments of software applications. This impact is often beneficial and tends to provide a qualitative means to deliver applications with expected functionality within timeframes acceptable to interested stakeholders.  When given the option to choose between open source widget v1.0 or its commercial v1.0 equivalent, early released versions of open source software tend to be better tested and market-proven than their commercial counterparts. But, of course, there are trade-offs.

Benefits Of Integrating Open Source Software

The benefits of open source software are well known and clearly identifiable. Within the context of application development, open source software can encourage software re-use, improve quality and security, protect from vendor lock-in and even allow greater flexibility in customization. From a short term perspective, open source software or services can be utilized easily for specific projects when a particular pressure or pain point is taking its toll. Typically, this narrow focus will allow the team to recognize some level of positive ROI immediately, especially if longer term goals or objectives for an application are not included in the project justification or funding criteria. A more careful consideration of an open source strategy must take place to address the challenges required to sustain the benefits for the long term. 

Challenges With Integrating Open Source Software

In the fast-paced world of application development, decisions to use open source technology are often rushed. The benefits alone are used as the criteria to address immediate application needs. Consequently, the challenges that accompany open source strategy decisions are often misunderstood or ignored.  Failing to consider the open source challenges alongside the benefits can significantly decrease the longevity and applicability of an application and increase project risk factors.

All software projects have challenges. Open source projects are no different. Some of the more common challenges that accompany open source technology development include:

  • Community-based support structure. When questions, problems or ideas arise, the mechanisms for expressing these thoughts are different from those in the more familiar commercialized software environments. For open source software, support interaction is typically handled through Web forums, wikis and other Website means in a democratic fashion. The level of community involvement varies depending on the topic or technology. Support discussions generally focus on the newer releases or betas. Teams must understand mitigation plans and/or exit strategies ahead of time when an open source technology takes a turn in a different direction, becomes unstable/stale, or insufficient support is provided.


AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.