Software Reuse Quick Tip #9

April 30, 2009

Tip #9 Create reusable scripts to achieve continuous integration
You can create reusable scripts for compiling, executing, and reporting all your unit and regression tests. This is applicable whether you are building components or services or even business process flows within the context of a SOA architecture. The next logical thing to do would be to integrate these scripts with a continuous integration suite. Below is a presentation on achieving continuous integration using a reusable set of scripts. Although this presentation is for a Service Oriented Architecture (SOA) platform based on the Tibco suite the reusable scripts can be leveraged for many other projects.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! : :

Advertisements

Having Reuse-Friendly conversations

April 26, 2009

You approach a developer with an idea for a reusable software component or service. What do you typically hear as an answer? I typically hear variations of the same answers.  What do you when you hear these? Do you accept and give up? or attempt to persuade? if you are like me you want to persuade the developer. Here is a brief presentation on doing just that:

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! :


Systematic Software Reuse Podcast Updated…

April 26, 2009

Want to listen using iTunes?

Using iTunes?

podcast

Just posted the second episode on software product lines based approach.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! :


Aligning systematic reuse activities with day to day development

April 25, 2009

Instead of looking at systematic reuse a separate analysis, design, and implementation effort that requires lots of time and resources view it as being part of what you do. Practice a few techniques practicewith every project, every single day. When your development activities are aligned with a systematic reuse roadmap your activities are aligned towards delivering today’s needs and positioning you for the future. Think of this as your team’s practice routine before the game. You won’t win if you don’t practice, would you?

Here are some ideas for aligning reuse efforts as part of your everyday development:

  1. When you review user stories look for patterns and similarities with stories from the past. Or stories from other applications in your team or within your shop
  2. When doing design always look to existing legacy assets for ideas and refactoring. I wrote earlier about wrapping legacy assets – you will be surprised how much code you already have that is worth reusing when you change the assumptions and decouple it from the existing code
  3. Be on the look out for opportunities to help other teams with what you own. Got a great algorithm, user interface widget, data service, process flow, content fragment that is reusable? spread the word – establish partnerships with your peers, colleagues, and keep sharing. The good karma is bound to help your team and your organization as a whole by increasing consistency and reducing development time.
  4. Keep overlapping requirements, functionality, and feature variations in mind while you design, implement, and refactor code. If you get ideas for a reusable component add it to your list of refactorings or to-dos. Come back and finish it when there is a real need.
  5. Get your team to review existing code. All the code all the time. Code reviews are just about the most effective way to get the most out of reuse – your codebase will continually get leaner and better. Prepare code review check lists for targeted assets (services, features, user interface widgets, classes, etc.) and make sure you use them over and over.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! :


Offer channel agnostic reusable services

April 24, 2009

Although you probably build services for an initiative or a project ensure that there are no hidden or explicit couplings with a distribution channel. You should remove identifiers, user tokens, authentication tokens, and other data attributes specific to a distribution channel so your service can be truly reusable. Often in a rush to make dates you might implement an interface that is tightly coupled to a specific channel like a call center. Now, your service isn’t reusable for the branch channel or an online self-service channel or an interactive voice response channel. If you are unsure of how to decouple channel specific attributes you can always encapsulate a separate interface with those attributes (in case of a web service interface you can encapsulate these as a separate XML Schema). As you expose your service with other channels you can either expand or replace the channel data structure at run-time.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! : :


Software Reuse Quick Tip #8

April 20, 2009

Tip #8 Get requirements from production support for your reusable asset

There is one thing you should do before placing your reusable asset into production and that is talk to your production support staff. Get their input, share your design, and get their feedback early and often. This will not only make your asset supportable (imagine a reusable asset without logging or instrumentation or ability to report on key metrics) it will also get you a valuable partner. Production support will soon learn to trust your assets, your services, and will demand that multiple projects leverage the capability. It is one thing for you to sell reuse but another thing for your partners to voice support.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! : :


New Sections to the blog…

April 19, 2009

I am introducing two new sections to the blog:

  1. Systematic Software Reuse Podcast Series – a 5-7 minute periodic audio segment offering tips, design techniques, and ideas on systematic reuse
  2. Resources – section for offering useful resources – initially will contain PDF documents that address specific areas related to systematic reuse. This will be periodically expanded with additional material as well.

Enjoy!

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! : :


%d bloggers like this: