Wednesday, July 29, 2009

The 2 Screen Model - Part 1 - The Search Screen

nuBuilder uses only two screens to do everything.

The Search Screen is used to...
  • Sort - By clicking a column heading.

Sorting helps you find the oldest date or the first invoice number etc. Clicking once sorts in descending order, clicking again sorts in ascending order.

  • Filter - By typing a string into the Search field.

Filtering can be done on any part of a word eg tch will find watch us grow.

It could also by be found by using wa gr, as leaving a space between strings will make the search look for each string.

Preceeding a string with a hyphen will exclude a string eg. -us.

Surrounding a string with quotes will allow for a phrase to be filtered eg. "h us g".

  • Select - By clicking a highlighted row.

Simply clicking a highlighted row will either take you to an edit screen or select a record for a lookup object.

  • Add - By clicking the Add button.

Clicking a highlighted row will take you to an edit screen of an empty record.

Monday, July 20, 2009

Quote vs Time and Materials

When it comes to writing custom software, there are two basic ways to have something developed.

Fixed Price Quote.
Where both parties agree on exactly what will be developed and how much it will cost.

Time and Materials.
Where both parties agree on exactly what will be developed and development is charged by the time the developer spends on a job.

From a customer's point of view obviously a Fixed Quote lets them know what they are going to be up for, which can be comforting.

The developer on the other hand, likes to know they are going to get paid for all the time they spend on a job. Because of this when a developer creates a Fixed Quote they generally pad it out to cover any unforeseen circumstances (including bugs).

This will generally make the cost of a Fixed Price Quote more expensive than Time and Materials.

There is one more very important factor in making the Fixed Price Quote more expensive and that has to do with testing. A major part of developing is testing and in a Quoted situation this function relies mainly on the developer as they are being paid to deliver a finished product.

In a Time and Materials situation the job of testing can be shared between developer and user and as the rate being charged by the developer is likely to be greater than the user, any time the user saves the developer the more they save on the project... and as this user will ultimately be one of the users, their testing is likely to be more efficient than a developer who may be unaware of a normal user's thought processes.

In our experience at nuSoftware, we have found that a combination of Fixed Price Quoting and Time and Materials seems to work well.
Fixed Price Quoting, when we are dealing with a new customer (giving them peace of mind) and Time and Materials, once they have become comfortable with the way we do things.

Its important to keep in mind that at nuSoftware we develop all our applications in nuBuilder (our open source product available to anyone).
Which means if we develop something for you, your own IT people or other companies that know or are willing to learn nuBuilder (via our Wiki and especially our Video Tutorials), can take over from us anytime you want, so no one has you by the proverbials.

Wednesday, July 15, 2009


As anyone who has used nuBuilder would know, it uses popups.

In business applications (which nuBuilder is designed to create) there is a genuine need to have more than one screen open at a time.
This allows the user to have a customer screen and an invoice screen open, for example, allowing information on both screens to be compared.

Currently, when you open an invoice screen while there is another invoice screen already open, it will replace the old with the new rather than opening another window.

It has been suggested by some of the customers that we have developed nuBuilder applications over the years, that it would be handy to have 2 invoices open at the same time, so they can be compared.

There are a lot of reasons for having multiple screens open rather than using the traditional way browsers have been used in the past.

Now back when we started developing nuBuilder, monitors and resolutions were quite a bit different (much closer to the 8 inch laptops that are around today) and we started using popups to open these separate windows because it gave us more real estate in the browser and to cater for the 8 inch laptop brigade we need to keep it this way.

Alternatively, with the new generation of browsers, you can always set the popups to tab browsing!

Monday, July 13, 2009

One misconception about nuBuilder

Just because nuBuilder works in a web-browser doesn't mean its for the whole world to see. In fact its not, hence the required user name and password access.

It is meant to be a business tool for developing "back office" business applications. Applications like accounting systems or CRMs, systems that require secure, logged in data-entry not anonymous surfing.

A nuBuilder screen is not there to impress the user, its there to help them enter data and make sure its validated properly.

Sunday, July 12, 2009

nuBuilder Simplicity

Often we get suggestions about what could be added to nuBuilder.
The problem is every time we add something, nuBuilder gets a bit more complex.

Take something like creating a mask for a Text Object, eg for phone numbers '(__) ___ _____'.

Now there are times that this might come in handy, BUT if we add a field that allows a mask, it means everytime a developer adds a new Text Object they have to a least ask the question,"Do I apply a mask" and 99 percent of the time the answer will be no.

This means we would have added complexity (even though quite small) all for a feature rarely used. Now times that by all the other suggestions that have some merit and you have a pretty complicated group of fields that may need addressing just to create a simple Text Object.

A book I've been reading called Made to Stick calls this "feature creep" and uses a TV's remote control as an analogy of what happens when you add too many features to something that should be simple to use (page 48).

Now having said all that there are still 3 ways that can be used to create a mask, for example, in nuBuilder.

  • Write a bit of Javascript. (for a once off solution)

  • Write a javascript function that starts with nu eg. 'nuMask' and send it to us to be included in the next version of nuBuilder, so everyone can use it.(This simplifies the making of masks that everyone can use but doesn't add an extra option to be answered everytime a Text Object is created.)

  • Create a nuBuilder Plug-in. (That does add the field to the text object tab, to be used by anyone who does think it would be a good idea.)

Now, we are not saying that nuBuilder is not going to be improved, we still have a lot of ideas, but considering that any additions to its interface would mean extra complexity for users (not to mention changes to our video tutorials) our intent is to keep this as simple as possible.