Stuart Selip's Closer Look at: Minimizing Development Risks
Want to minimize development risks? Adopt the right methodology!
In this column, I would like to discuss how the right methodology can minimize risks and accelerate the development process.
Steve McConnell, author of the classic book on development “Rapid Development: Taming Wild Software Schedules” attributes insufficient risk management as one of “classic mistakes” in development projects. He wrote:
“…Failure to manage risks is one of the most common classic mistakes.” And “… if you don't actively manage risks, only one thing has to go wrong to change your project from a rapid-development project to a slow-development one..”
A software development methodology that fits your project can reduce your risk of software delivery failure. So, which risks need reducing?
- Implementation Risks – You deliver late, over budget, missing features, with low quality
- Impact Risks – The many benefits of modernization you promised have failed to materialize
- Strategic Risks– It’s tomorrow in the marketplace but you’re modernizing yesterday’s solution
If you have been programming on a legacy system, then chances are you already know of or are using a classic methodology – the “Waterfall” methodology.
This methodology has been around for more than half a century and remains popular. Waterfall processes begin with gathering requirements, and continue with requirements analysis, solution design, software development, and finally solution testing, before delivery to stakeholders.
Waterfall can deliver good results in software delivery when four key conditions are met:
- All requirements must be known before software development begins
- All stakeholders must agree on all requirements
- All requirements must remain unchanged during the delivery and adoption cycle
- The underlying solution architecture must already exist, and be well understood
When familiar stakeholders request small projects that make incremental changes to an existing software solution, the requirements of Waterfall are met. In other words, Waterfall properly supports the familiar work of legacy solution maintenance, like adding to, or modifying existing screens, reports, or calculations.
Modernizing NonStop applications or building new solutions in a new technology mix will put all of these conditions into question. Say you want to follow HP’s advice to NonStop users modernizing NonStop applications by using modern tools, object-oriented programming models, and technologies. Such a modernization initiative should be based on a modern model.
Waterfall is not a modern programming model! A modern programming model focuses on delivering software quickly, so stakeholders can judge whether it is correct and useful. Getting rapid feedback means learning and improving early in the modernization effort, rather than discovering a huge compound failure at the project’s end. Testing happens at the end of the Waterfall process. By then it is too late to avoid catastrophe.
New technologies are different than your current underlying solution architecture. For Example, Java is an object-oriented language and COBOL is not. The entire approach to problem analysis and solution design is different. Data flow diagrams and functional decomposition are not going to help you uncover the right classes and assign attributes and operations to them. Concepts like classes and operations don’t even exist in COBOL, and Waterfall won’t help you with this dilemma.
Here is the Good news – TIC Software can help you! Now you can benefit from rapid application development with modern tools, programming models and technologies. We make this possible with Model-Driven Architecture (MDA) and a methodology that gives great results.
NonStop, MDA, and Methodology
TIC Software (http://www.ticsoftware.com), using the MDA tool suite from our business partner BluAge (www.bluage.com) , and a pragmatic development methodology tailored to MDA, is helping customers build NonStop Java applications quickly.
Here is our methodology, at a glance.
- We take an iterative approach to software development, focusing on exposing and eliminating software delivery risk.
- Working with you and your team, we identify critical core application functionality early in the development cycle.
- We build standards-based UML models to reflect the core functionality, generate code, and deliver solutions that your stakeholders can review quickly
- Changes can be incorporated into the model, which is then regenerated instantly
- Instead of trying to document every single requirement, providing a complete requirements analysis, and committing to a full design specification before a single line of code has been written, we short-circuit the whole process.
This approach quickly converges on the right result. At the end of the iteration, we collectively review and learn from our recent experience. Each subsequent iteration benefits from that cumulative learning.
The code we generate leverages popular Java frameworks like “Hibernate” and “Spring”, which are some of the tools recommended by HP. This means we are free to focus on building business logic and solving business problems for you, rather than wrestling with technical “application burden” issues like middle-tier object management and data persistence. You gain access to popular but complex frameworks so they deliver results instead of creating delay and frustration. As the Java world evolves and new frameworks and techniques appear, the BluAge MDA tool will evolve in parallel, making the “new” accessible and available with no disruption.
Our Iterative software development approach with MDA exposes software delivery risks early, avoiding project catastrophes. Building graphical models of software enables business stakeholders and technical staff to participate, together, in modeling. Modeling focuses on business rules, calculations, and process flows, while code generation handles “application burden” with frameworks. MDA immediately generates those business models into executable solutions so business stakeholders can validate them, or make changes. The bottom line is protected by delivering value on time, and avoiding disaster.
Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC and MDA will make things happen more quickly, with higher quality, and lower solution lifecycle cost.
Are you ready to learn more about TIC, MDA and NonStop? Schedule a conversation by emailing us at email@example.com.
We also recommend to read:Model Driven Architecture Blog
Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.
||Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries. Read More