admin

Online ordering of waste services

Posted in Solutions on Nov 18. Tags: , ,

Brief

The client wants to be able to offer members of the public the ability to order and pay for bin services via the internet (without applying for an account). The process must be very simple and understandable because no human interaction will take place prior to the order being placed. The system must ensure that; the correct pricing is used; the service address is located within a servicable area; the customer’s placement instructions are not overly complex; and that the payment has been received prior to accepting the booking.

The client would also like to offer Account Customers (“Members”) the ability to order and cancel services via the internet. Members can log in to view and update their outstanding service orders. The Member’s area will show all the current locations and the various services we provide at each one. Any complex enquiries will be handled through the call centre.

The solution must keep in line with the existing web site’s look and feel. The solution needs to integrate seamlessly with the existing (proprietory) business database system and its business rules.

Solution

A step-by-step wizard was created for the creditcard (public) ordering function. The steps are designed to flow logically from one to the next while obtaining the required information quickly so that each subsequent step is as concise at possible. The information funnel looks like this: Location > Product > Payment > Confirmation > Receipt.

A Member’s area was also created, using standard authentication techniques, that provides a multi-tiered drill down navigation system. The top level provides a listing of account details coupled with the (paginated) list of active sites. Clicking on any site will display more details such as any outstanding orders for bin services and any active contractual arrangements. Members can order new services using a wizard similar to the public one, except that the location and payment steps are not necessary. Members can also cancel any services that meet the cancellation requirements.

 

This solution uses:

  • Microsoft SQL Server
  • Ruby on Rails

Express yourself

Posted in blog on Nov 18. Tags: , , , ,

I’ve just spent two hours talking with my developer about his understanding of The System for a new project. It was an excellent learning experience. I was given a lesson in technical writing for someone else. Where I thought I was being detailed, I was confusing the issues.

Now I have a better understanding of what is a good descriptive method for him. With this information I’ll be updating the existing requirements document, for my internal use. It’s an iterative process that will never end, but well worth the trip.

What’s programming like?

Posted in blog on Nov 04. Tags: ,

I came across this http://www.independentdeveloper.com/archive/2009/03/17/programming-is-like-a-dream” target=”_blank”>Independant Programmer article (via http://weblogs.sqlteam.com/jeffs/Default.aspx” target=”_self”>Jeff’s SQL Server Blog) which tries to explain what it is like In The Zone for a programmer.

It even neatly describes an interrupt routine (boom boom) for non-programmer types, like your boss, to use when they need to get in the way. Possibly worth forwarding on to the higher ups who are prepared to take on a little personal development (or HR management).

Gooey G.U.I.

Posted in blog on Oct 15. Tags: , ,

I found an interesting concept for “The Next User Interface”, over at http://www.techcrunch.com/2009/10/13/10gui-one-very-slick-desktop-multi-touch-concept-video/” target=”_blank”>TechCrunch, called http://10gui.com/video/” target=”_blank”>CON10UUM.

What I like about it is that from start to finish, they have sculpted a new method of interaction with our machines. It’s a pity that we are so attached to our keyboards, but for the moment doing without them is probably too big of a change for anyone to take too seriously. While we continue to depend on the written word for most of our computer based business interactions we can’t do away with them yet, although voice recognition is the next logical replacement it’s not quite there yet (apparantly).

CON10UUM is certainly food for thought and there are products out there that already perform similar tasks (http://www.apple.com/macbookpro/features.html#trackpad” target=”_blank”>Mac touchpads, http://www.wacom.com/bamboo/bamboo_touch.php” target=”_blank”>Wacom Bamboo Touch) but they really only add a thin set of commands to the existing U.I.s that we already use.

Involve the client

Posted in blog on Oct 13. Tags: , , ,

I was talking to one of my developers a few days ago, about how I like to demonstrate completion of The Design Phase.

Having a face to face discussion about the project’s design is a good way to start, but having an interactive presentation (model) to help them “feel” their product is orders of magnitude better. When it’s interactive the client is engaged with the product early and is able to experience their product prior to development. This way I can quickly and simply prove that I was listening when they were telling me what they wanted (during the Requirements Phase).

And with a model of version (n) in front of them, the client can begin to think clearly about version (n+1).

Because everyone in this industry knows; A requirements document is never a perfect description of what the client wants, it’s the best version this time around.

Business Cards

Posted in blog on Oct 06. Tags:

I was sent an invitation to trial a new product about a week ago: miniture plastic business cards and I thought I would just quickly share my excitement about it.

In terms of a user interface, the website was beautiful. So simple. So elegant. Such a great User Experience. Have a look yourself – http://www.squizcards.com” target=”_blank”>www.squizcards.com

The cards are actually really great too, but that’s bye-the-bye for me. What got me in and kept me fascinated, was the ability to quickly customise someone elses designs and make it my own. Hats off to the designers, excellent work!

Concrete Cutting (Chasing) Job System

Posted in Solutions on Oct 02. Tags:

I have created this amazing job tracking software for a client in the concrete cutting business.

Documenting for Outsourced Development

Posted in blog on Sep 21. Tags: , , ,

I love the idea of outsourcing development. It forces you to evolve your business processes and it’s entirely in line with the code re-use paradigm found in programming:

[Try to] write re-useable code.

When you are outsourcing your development (especially when you go off-shore) this becomes:

[Try to] write re-useable documentation.

You can no longer have a casual conversation at the coffee machine* with Fred the Coder about what it was you actually meant when you said, “The system needs to save the booking”. The document must stand by itself, it needs to be portable, it needs to be re-usable.

The document creator has to provide a Rosetta Stone for the project: A record of the non-technical description provided by the client and a cohesive translation into the technical description for the development team. When questions are asked by either group, those answers should be noted and incorporated into the (next) version of the document. Even after sigining off on a final version.

If you can provide the perfect Rosetta Stone, then you will only have minimal interaction with the development team which reduces the management overheads. Badly written documentation results in far too much live translation and that leads to missed dead-lines and budget blow-outs.

*or PS3 or Kitchenette etc.

Expectations, I’ve had a few…

Posted in blog on Sep 16. Tags: , , ,

I’m am getting a little involved with http://www.joyent.com/joyeurblog/2009/09/05/is-the-customer-always-right-no/” target=”_blank”>this article at Joyent about sticking up for your team, even if that means saying no to a customer. It’s a topic close to my heart, especially as I start up a new project.

The crux of the problem is that a client who doesn’t understand what they are paying for needs to be educated; and that education actually costs the provider money, one way or another. If the cost of educating that client is more than that client is worth to the business when do you cut your losses?

Do you hope to have 99 easy clients for each hard one and have the many pay for the few (the typical approach) or do you show the hard one the door? What if the ratio was 999:1? 9999:1?

What’s the break even level? Is it worth it?

I don’t think there is a simple solution, each situation has to be evaluated individually. Before you go in the room, you need to know what you are willing to spend on educating the client. What proportion of the project is going to be invested in managing the client’s expectations. Who’s going to do it? How will it be done?

Joyent has massive archives of forum posts that deal with almost all the crazy things that can happen in their hosting services, they even have a wiki. Is it enough? For me, Yes. For others?

Even 499:1 is probably worth it…

Natural Development

Posted in blog on Sep 11. Tags: , , , ,

In 1859, http://en.wikipedia.org/wiki/Charles_Darwin” target=”_blank”>Charles Darwin set out his theory of evolution by natural selection as an explanation for adaptation and speciation. He defined natural selection as the “principle by which each slight variation [of a trait], if useful, is preserved”.

My take on natural selection in software is that with each subsequent update, the functions that are most useful should be preserved and those that aren’t should either be dropped, or improved if they show promise. This method will quickly produce effective systems that are tailored for their specific requirements. With each successive update, the system becomes more aligned with it’s intended use, even if that changes from time to time.

To achieve this result there needs to be a few things first.

  • Regular updates of the software
  • Measurable feedback on the changes
  • Clear objectives of what you want to achieve

These roughly translate into offspring, fitness and drive; Each generation (update) of the system needs to be evaluated (feedback) for fitness against the objectives (drive).

Software development has already formalised this process (in 2001), calling it Agile Software Development. The fundamentals are http://www.agilemanifesto.org/” target=”_blank”>here and I’ve been doing it for a long time.