Software Developer & Mentor
Kirk is an industry analyst at Burton Group. For 15 years, he has worked in the trenches on real software projects. He takes a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development.In 2002, Kirk wrote the book Java Design: Objects, UML, and Process, published by Addison-Wesley. He has also written numerous whitepapers and articles, including The Agile Developer column for The Agile Journal. Kirk is the founder of Extensible Java, a growing resource of component design pattern heuristics for Java that can easily be applied to most other platforms, including .Net. Kirk has trained thousands of software professionals, teaching courses on UML, Java J2EE technology, object-oriented development, component based development, software architecture, and software process. He enjoys hacking in a variety of languages, including Java, .Net, Ruby, and PHP.
Presentations by Kirk Knoernschild
Agile Architecture
Traditionally, we attempt to make the right architectural decisions early due to the significant anticipated cost affiliated with making incorrect decisions. But this contradicts agile practices which have taught us to embrace change. So how do agile and architecture come together? Conceptually, the goal of agile architecture must be to eliminate the architectural significance of change by crafting software that can easily adapt to change. In practice, developing agile architecture is much more difficult.Benefits of the Build - A Case Study in Continuous Integration
Agile processes such as XP and RUP advocate continuous integration, where shorter iterations produce an incremental and functional growth of the system. The fundamental component of any Continuous Integration strategy is an automated and repeatable build. In addition to ensuring your application is always in a functional state, a robust build strategy enables a number of other important lifecycle activities.Enterprise Development and OSGi
A fad in the 90's, the promise of Component Based Development was never fully realized. A decade later, however, the dynamic module system for Java, codenamed OSGi, is exciting the development community by redefining delivery of component based systems developed in Java.Dependency Management Techniques
Why is software so difficult to change? When you establish your initial vision for the software’s design and architecture, you imagine a system that is easy to modify, extend, and maintain. Unfortunately, as time passes, changes trickle in that exercise your design in unexpected ways. Unlike what you had anticipated, each change begins to resemble nothing more than another hack, until finally the system becomes a tangled web of code that few developers care to venture through. Eventually, modifications to the software intended to improve the system have the opposite affect of breaking other parts of the system. The software is beginning to rot.Grass Roots agile
Agile processes promise to speed software delivery and increase software quality while embracing change throughout the development lifecycle. Yet transitioning from traditional software methods to a new way of working can be difficult, painful, and risky. While the team is consumed with understanding and improving their new approach, they also face the pressure of looming project deadlines. Overwhelmed teams feel forced to compromise, believing they can deliver the solution more quickly by reverting to traditional methods. Unfortunately, this is not the case.GOF Patterns Applied
Design Patterns are proven and powerful techniques that can help improve the resiliency, maintainability, and extensibility of your applications. However, overusing or misapplying patterns is a common mistake often times resulting in applications that are over-architected, and resemble a tangled web of classes. How can patterns be applied to achieve the goal of better software?Books by Kirk Knoernschild
by Kirk Knoernschild
- Java Design: Objects, UML, and Process (JOUP) emphasizes the power of convergence and agility...the convergence of a suite of distinct yet complementary technologies as a cohesive whole, and how to apply this whole in a very powerful, effective, and agile manner. Certainly, object-orientation, the Unified Modeling Language, and software process each have the potential to contribute great things to the development of software. However, realizing the power of each is often lost as teams becomed bogged down with simply attempting to adopt and integrate them. JOUP explains how Java, objects, UML, and process can be used as a cohesive set of technologies. First by examining each independently, and gleaning their most useful principles. Second, by taking a sample system and progressing through many of the interesting challenges faced in everyday software development. You can download the first three chapters on the Resources page at http://www.kirkk.com
- Available At:
Software & Technology @kirkk.com
Thursday, June 19, 2008
I’ve published a summary of the OSGi survey results on the APS blog at Burton Group. Definitely some interesting numbers. The highlights? 80% said they’ll be developing software using OSGi in the next 6 - 12 months, and almost 90% said they would today if their application server supported OSGi. Those are some convincing numbers! The biggest hurdle to OSGi adoption within the enterprise? No surprise here - better enterprise vendor support, integrated toolsets, and more OSGi resources to help understand the benefits and usage patterns.
There are more details to the survey that I’ve yet to explore, and I’ll try to share with everyone what I find after further crunching the numbers
Monday, June 2, 2008
If you haven’t taken the time to fill out the OSGi survey yet, I have to encourage you to do so. The survey will remain live until June 13th. Your feedback and help is greatly appreciated, and I hope to publish the results sometime in June or July
Tuesday, May 20, 2008
I’ve created a simple on-line survey to gauge interest in OSGi within the enterprise. I appreciate anyone who can spare a few moments to provide their input. I plan to leave the survey open until May 30th, 2008. At some point, I hope to share the results.
Tuesday, May 6, 2008
It’s time to move on and show the simple elegance Spring brings to OSGi development using the HelloWorldSpec sample from the OSGi & Modularity post. But first, a little primer on Spring Dynamic Modules. Spring DM is not an OSGi implementation. Instead, Spring DM aims to make working with OSGi easier just as Spring makes the world of Enterprise Java simpler. One of the more striking characteristics of Spring DM is that it removes most your code’s dependencies on OSGi by taking care of the OSGi plumbing. To function in an OSGi runtime environment, the Spring .jars have been packaged as OSGi bundles.
Wednesday, April 30, 2008
Software failure statistics are abundant and serve as clear evidence that we must reform software development. While industry claims an IT labor shortage is the motivating force behind outsourcing, the greatest factor is directly related to our inability to deliver value-add software. As organizations continue to lose faith in IT as a trusted partner, the services we offer are little more than an ample commodity, and the search for cheaper labor will persist. But, there is no IT labor shortage.
