We do a lot of work for Oracle, who tend to grow by acquisition rather than organically. This can lead to a lot of company integration issues and a lot of people internally (especially salespeople) who do not know what all of the companies do.
So we recently built a prototype application for Oracle; the acquisition app is a desktop application, that is a directory of all acquisitions, what they do, the key contacts, products and value propositions. It also alerts users if there is something new that has been added or posted.
We decided to use some new technologies to build the prototype: Django and Adobe Air. I had not used Django before, but I know some Python and it was love at first sight, it just felt right. With the help of my friend Jason Davies, the back end was built really quickly and effortlessly.
However the same cannot be said for the front end application. I decided to use Adobe Flex for the Air interface so we found a contractor to do the job for us. Three weeks later they were still working on the interface, I thought Flex was supposed to be fast for building interfaces quickly? We brought in another contractor to get the job done and they took another two weeks to finish the job.
The end result was a very clunky interface, that did not flow and, had lots of imperfections. Now we are really serious about anything that leaves our office, our quality control is very high. We were faced with a dilemma, we had spent a lot of money and had ended up with a product that did not pass our high standards.
So we took the bold decision to build the app ourselves using Adobe Air using AS3. Our flash guru took up the task, and we worked night and day to get the app completed in just five days! The end result is a work of art and is a slick iPhone style interface that really wows people when they see it.
We really went the extra mile, and this paid off as the app was taken showcased at Oracle Openworld, and as a result we got to tender for a large pitch for the global pharmaceutical company Novartis.
From this project I have learnt or reinforced the following lessons:
- If you use external contractors then you need to watch them like a hawk and perform code reviews daily, and set daily milestones
- If you go the extra mile for clients, and keep high standards no matter what the cost, then you will be noticed and your hard work rewarded
- Prototyping requires constant involvement and collaboration with the client – think agile and iterative
- If you are using a technology you do not usually use, or do not know then at least learn the basics before you start
- If you can build something in house, that is always better than using contractors
- Using new technologies takes more time for development (obvious!), so account for this in the budget
You can read the Oracle Acquisition App case study here (Adobe PDF download).

Delicious
Digg
StumbleUpon
Facebook
LinkedIn
RSS Feed




Yes, yes, yes, yes, yes, yes. This is absolutely spot on. Also, that flash guru sounds pretty awesome to me…
Hi Arif,
Kudos to Dave! Stripping the app all the way back to pure AS3 removes the need for the Flex framework which no doubt “slicks it up” somewhat.
As you mentioned in another one of your articles though, frameworks are so important – especially for maintenance and growth. In hindsight I would have gone with Cairngorm or some other Flex MVC framework and not tried to reuse any of the previous guys stuff.
From my perspective, the biggest issues were:
– Time was wasted trying to reverse engineer the previous contractors work
– Code requirements were “Create a readable easy to follow solution that newbies could learn from”, rather than “Create a maintainable/extensible application”
– Specifications were mostly verbal (which is fine), but feedback wasn’t always available when necessary (you guys were soooo busy, always in meetings!!)
– Big problems with the AIR certificate when we had to change machines
– Flex styling can be a little clunky (but that is improving: see degrafa and Gumbo for upcoming improvements)
– There were also a couple of classic Flex gotchas
I still think Flex is a fantastic technology that is improving over time, but it is still considered “new”. There still aren’t a whole lot of Flex guys out there!
Regarding the “watch them like a hawk” statement, as I recall you and Scott were very busy and on a couple of occasions it took a day for you to respond to decisions that needed to be made. Perhaps, “make sure your time is made available to them” would have been a more appropriate statement? You imply that “the contractors” were taking the mickey, which I can assure you was not the case for me…. for the other guy however, I cannot comment.
As a side note, I think that 4 hour per day commute also took it’s toll after the first week…. but that just sounds like an excuse
I look back on my experience at Busara fondly, and I really hope I didn’t leave too bad an impression.
All the best,
Matt (The second of the two contractors)
P.S. When exactly did you stop wearing clothes??? Thankfully you weren’t the “Naked CTO” when I was there
Yes I agree it is a two way street, and you need to give people the appropriate time and guidance, especially when they are thrown in at the deep end. We now have a dedicated account director who manages the day to day running of projects, and that means much faster feedback. We also have very detailed project plans and requirements documents.
I do feel though that anyone on a day rate has less pressure to complete the job quickly as someone who quotes a fixed price for the project. This will not apply to everyone but for most people they will probably not finish the job as quickly if they are on a day rate.
Personally I think you did a good job Matt, but over the last year we have had numerous contractors and not many of them were good value for money.
Also I am still to be convinced about flex though
)
Thanks for clearing that up Arif.
I agree that it can be to a day raters advantage if a project runs long. Personally, I prefer to take the longer term approach and (aim to) do a great job fast. It helps to secure you for future roles and boosts the chance of being recommended to other clients.
WRT Flex, I’ll keep you posted. What I can tell you is it’s very well suited to large projects with concurrent developers (if you adopt a good MVC structure). Ultimately Flex is Flash, so if you’ve got a great (team of) AS3 programmer(s) smaller projects may not benefit from big frameworks…. then the argument will all come down to code reuse, libraries and architecture and all that fun stuff.
The Flex discussion here seems to be about speed of development and degree of “clunkiness” on smaller apps. I’ll make a note to blog about the comparisons some time in the future. These days a lot of Adobe consultants seem to focus on creating “custom components” which may have helped reduce the clunk factor in our case, if I had taken that approach.
On another note, have you or David worked with AMF yet (or Flash/Flex Data Services as it is sometimes known)? If you want to soup up the speed of your apps, using this can really make a difference.
Yes we use AMF quite a lot now, it is faster than the old approach of rendering XML and then parsing that with Flash.