Register
  Thursday, August 28, 2008  
   
Thanks for Visiting!
Minimize

Thanks for visiting the AMS Carrier Community Dashboard.  At the Dashboard, you'll get an overview of the various product portals that are part of the AMS Carrier Community.  Currently, there are portals for Phoenix and PremiumBill with more to follow soon.

As a visitor, you can see this entire site, but in order to post to forums or download files, you need to log in to your account.  If you don't already have an account, click here to create one.  It's fast and free!

Latest Community News
Minimize
Training for Developers on Phoenix Web Services and XSLT Data Mapping - Monday, July 14, 2008

Come to PUG early and take advantage of Developer focused courses being taught in our Portland, ME office.

read more ...

AMS PremiumBill Release 2.1.3 Is Now Available - Thursday, July 03, 2008

This release contains fixes to Payments and Recievables.

read more ...

AMS PremiumBill Release 2.1.2 Is Now Available - Monday, June 02, 2008
This release contains a new Smarter Scripting Wizard and many fixes.
read more ...

AMS Portland Webinar Video - Tuesday, May 20, 2008

Video of the AMS Portland Webinar from 4/24/08 reviewing Automated Out of Sequence and Web Services from the Phoenix 8.0 release.

read more ...

AMS Phoenix 9.0 Planning is Under Way - Monday, March 24, 2008

We need your input to prioritize items for this release.  Please complete the survey to help us meet your business needs.

read more ...

AMS Phoenix 8.0 Is Now Available - Wednesday, March 19, 2008

Milestone Release Adds Automated Out-of-Sequence Endorsements & XML Web Services Built on .NET Technology

read more ...

AMS PremiumBill 2.1 release - Tuesday March 4th - Tuesday, March 04, 2008

PremiumBill 2.1 has new features for payment import and support for EFT.

read more ...

AMS Phoenix 7.02.08 Is Now Available - Thursday, February 14, 2008

Version 7.02.08 has fixes for Billing and Month End.

read more ...

AMS Phoenix 7.03.04 Is Now Available - Tuesday, February 05, 2008

Version 7.03.04 has fixes for DocPrint, Archive & Retrieval, CQH/Home Value, Policy Manager, Policy Entry and Month End.

read more ...
Syndicate  
Related Links
Minimize
Latest Blog Postings
Minimize
Jun 7

Written by: David Moran
6/7/2008 2:33 PM

 

I’ve hopefully painted a picture In my prior two blogs that software development is more than just “code and ship.” There is background work required to staff a given software project, and requirements must be clearly articulated and understood by those who will be writing and testing the software before any actual coding can begin. Now that we’ve gotten this far, is it time to code?

We’re close, but not yet! There is this little thing called “design.”

A couple of blogs ago, I listed some always-present project goals:

1.       Deliver well-considered, fully-functional features that delight our customers.

2.       Deliver against the shortest possible schedule.

3.       Keep defects to an absolute minimum, with no critical defects by ship date.

4.       Deliver software that will be maintainable into the foreseeable future.

5.       Stay flexible during “project x” in case we need to move people around to meet other needs or shift feature priorities mid-stream.

For the purposes of this discussion, we’re concerned about the ones in bold.

“Deliver well-considered, fully-functional features that delight our customers” is one major challenge in and of itself!  This covers two main areas:  a) the user interface that will be used to interact with the software and, b) the underlying business rules to operate on the data, ultimately storing that data for future use.

I won’t go into the gory details here, but good software design separates software in various layers, typically keeping a very distinct separation between the user interface, business logic, and data storage/access. A major benefit of this approach speaks to item #4 above – maintainable software. Code related to providing a really cool user experience is kept separate from code that implements specific business functionality, keeping everything in nice, neat compartments.

If this wasn’t done and changes needed to be made in the future, someone would have to shift through all the areas of code to determine where a particular business rule was located or to find out just where in the world the database was being updated – and the larger the lines of code, the more excruciating the exercise! In addition, code that is not compartmentalized is what is referred to as spaghetti code; code that is so intertwined it is extremely difficult work on. It is both difficult to assess the impact of any change, and even harder to make a change without breaking something else.

The net result in compartmentalizing software is a code base that can be revised more efficiently and effectively over time. The full spectrum of an application – from the user interface to business process to data storage – is covered in the design phase of a project.

Software design for applications that are geared towards the business world takes more than an understanding of the business problem. Solving increasingly complex business problems drives development teams towards new technologies, often times because there is something available to leverage. So how do teams that aren’t domain experts in the problems that they are solving, who are also working with ever-changing technology, reduce risk to a project while ensuring that they meet increasingly complex business needs? In a word: Prototyping.

Prototyping is a great tool for working the kinks out. User interface prototyping helps teams interact with business users to work out the details of how information will be presented and how users will manipulate the data and drive the underlying business processing. One low-cost – but still very effective – method of user interface prototyping is the “paper prototype.”

Paper prototyping is just what it sounds like; the screens are drawn out on paper, with notes to provide an understanding of the visual elements being represented. Paper prototypes are great, as they provide the necessary visual ingredient that business users need and help to finalize the requirements. I’ve seen plenty of projects where users, now that they can see how the business problem is being met, request changes – either because the team got the details wrong or because it was difficult for the business users to visualize the system while the requirements were being written down.

Believe me; given a choice, I’d prefer to make changes on paper! This is far easier and less costly than later, after software has been written and tested. The same goes for another type of prototyping, software prototypes.

Software prototypes are test applications used to construct a model of the end system, typically with only a subset of the features of the target system. The goals of a software prototype are to experiment and learn. Why? Because technology is tricky, and small-scale prototypes help developers understand both the benefits and limitations of new technologies so that this understanding can be incorporated into the final design. Without this experimentation, assumptions will be made, which impose an additional risk to the project. While this is coding in a literal sense, it should be viewed as experimental, and not code that is in final form for use in a production system.

One final component – in place at AMS Services since we’ve adopted the Agile development model – is the creation of validations. Validations are the test cases that will be used to confirm that the software does what the user expects it to do. An Agile team works collaboratively with the customer team (business users) to write the validations. These validations become the measure of whether the software is doing what it is supposed to do, without room for interpretation.

Are we ready to code yet? A staffed team, armed with an understanding of the requirements, prototypes to confirm the requirements and to answer any technological concerns, with a design in place and validations written, is finally ready to code. Next time, I’ll cover actual coding.

Copyright ©2008 by David Moran

Tags:

Re: Why Aren't Developers Coding?

Dave,

It is a great artice....
I hope all can benefit from this....

Saba

By sgobal on   6/15/2008 7:17 PM
Latest Articles
Minimize
ISO LOB Templates – See how easily you can build a line of business! by MaryJo McDonough

Planning to expand into a new line of business?

We can help! The Professional Services department has built ISO LOB templates that will help you quickly and easily expand your lines of business.
 

One Small Project… One Large Reduction in Time and Effort by David Moran

A Success Story article featuring the Rate Modeling Tool developed for FCCI, leveraging Phoenix Web Services.


Message in a Bottle by Holly Priest

A tall dark stranger has news for you...


Agile, Customers, and Getting Things Right… by Mike Levine

How ‘bout a story? It’s about bears…


Automated Out-of-Sequence Processing by

Learn more about the new Automated Out-of-Sequence Processing that was added to Phoenix 8.0.


PremiumBill Architecture by David Moran

A brief article describing PremiumBill architecture and the key factors that influenced its design.


Phoenix

PremiumBill

      © 2008 Vertafore, Inc., DBA AMS Services  Terms Of Use  Privacy Statement