COBOL Application Development: (Still) Not Dead Yet

There is a scene in the Broadway hit Spamalot in which a peasant jumps up from a cart of corpses and vigorously complains that he's "not dead yet".  It's a humorous side-story to the main theme of the search for the Holy Grail. One might be accused of thinking of COBOL in the same way, as a side-story to the current major themes of mobile and web development, or perhaps as a historical footnote to the current narrative.  IBM's recent announcement of major upgrades to its COBOL compiler technology provides a good reason to pause in our headlong pursuit of the latest technology to reflect on the value of COBOL applications in enterprise software portfolios.

While mobile and web technologies often garner everyone’s attention, the reality is that most organizations that have been around for more than 30 years still run their core business processes using systems that were written in COBOL. Anything that makes these apps easier to evolve and extend is a very good thing. The reality is that evolution and extension of these apps is critical to business success. In order for the flashy-new-social-networking-enabled mobile and web Systems of Engagement to succeed, the workhorse Systems of Record and Systems of Operation are going to have to evolve apace. This means that they must take advantage of the latest architectures as well as being refactored and modularized to align with a service delivery model.

Read more

With agile software development going mainstream, the cutting edge is DevOps

Agile software development practices have been transforming AD organizations for more than a decade.  With more rapid development cycles has come a bottleneck at the deployment boundary - at the frontier between Development and Operations. The DevOps movement is working to remove this bottleneck, and in the process is transforming both Dev and Ops for the better. In many respects it is a logical evolution of the agile movement, but practices like continuous deployment are deeply transformative of the way that organizations think about customer engagement, business engagement, testing, development and requirements - in fact, nearly every aspect of agile development is subtly but powerfully affected. The implication of a check-in resulting in code being deployed to production gives a whole new emphasis to the word "commit"!

A sign that DevOps is heating up to be the new ALM battleground was last week's announcement of IBM's acquisition of UrbanCode, which Glenn O'Donnell blogs about in his post IBM Escalates the DevOps War with UrbanCode Acquisition

Where are you on your agile journey, and is continuous deployment on your radar?  If not, it should be!

Refactoring the Product Owner

 

In theory, the agile Product Owner is a simple yet compelling solution to a tough problem: the development team needs, and often does not get, clear direction from the business. The ability to eliminate the confusion caused by the cacophony of voices of multiple stakeholders, and the ability to have continuous engagement with the business, certainly make the Product Owner attractive to the development team. And the business benefits, too: they, in theory, get continuous visibility into project health and status. Buried in that last sentence is the phrase that often sinks good ideas: "in theory", and therein lies a problem.
 
When we are developing software and find components that have responsibilities too broad for one component to encompass, we "refactor" it, breaking it down into a set of components with more manageable and cohesive sets of responsibilities.  We have an analogous problem with the Product Owner, whose responsibilities are so broad as to be nearly impossible for one person to fulfill.  In brief, the Product Owner is expected to:
 
  • Understand the needs and desired outcomes of the business
  • Negotiate consensus among stakeholders
  • Represent the interests of all stakeholders to the development team
  • Define the characteristics of solutions that meet the desired outcomes
  • Be a change agent in the organization to support the solution
  • Communicate and promote the vision to all interested parties
  • Define and prioritize items on the Product Backlog
  • Drive iteration and release plans
Read more