Thursday, May 12, 2005

Write a business case

 I’ve been a software developer for over eighteen years.  I’ve seen a lot of success during that time, I’ve also seen failure.  As many of you who follow my blog know, I have a strong belief that software quality has a positive relationship with start-up success.  I have presented information to support this belief.  What I also believe is that to have software quality you need strong leadership and a well articulated product vision.  The whole company needs to know where the product is going and why. This allows people to work hard and with creativity, yet also know the bounds of their endeavour. They also know what is on the horizon and what the technology needs to be able to do to meet product and customer needs. Writing a technology strategy is not easy task. It takes an understanding of the future, and that’s tough. What can help with articulating the company vision is to write a rock solid business case.  And their a couple of places to help get you started.  First, query your government, they are always interested in encouraging innovation its good for the national economy.  Check out the Government of Canada’s template for “Creating and Using a Business Case for Information Technology Projects“.  Also, there are always a number of companies who put together competitions for innovation. Check out Telus’ offering in support of the technology start-up.  Either way, do your homework, create a strong vision, articulate your business plan and don’t get bogged down with it, start running… 

Friday, May 06, 2005

Bidirectional Traceability

I was busy studying for one of my Masters courses and I’m having to describe a teaching scenario that I have utilized in the last few years and identify if it would be considered behaviorist, cognitivist or constructivist.  All very interesting and it got me thinking about a course I taught about software development methodologies.  This was a two term course where we covered Rational Unified ProcessMicrosoft Solutions Framework and Capability Maturity Model.  And yes, a great course in my mind. I was reviewing the learning outcomes of the course and reflected upon them.  I came to the conclusion that two of the most important factors in methodology for software development are; strongly defined roles and responsibilities and bidirectional traceability.  The roles and responsibilities keep people motivated cause there is no question to what they have to do and the traceability forces quality.  The course I taught would be considered constructivist. It build on ideas taught in the first course and forced the students to participate together in problem solving activities.

Wednesday, May 04, 2005

Look at AJAX and Greasemonkey

So I’ve been teaching a course on ASP.NET.  And it’s a funny thing that after all my time spent learning about code behind forms, server side controls and Microsofts’ view of the MVC pattern I can no longer see the benefit of ASP.NET. Just to note I was a huge ASP fan! And certified in four MS certifications.  I’m a believer in XML / XSLT and feeding these via business tier (or fa├žade tier) components.  All this pushes me into AJAX and Greasemonkey.  AJAX is Asynchronous JavaScript And Xml. gMail uses it and so do other popular sites. Its essentially JavaScript acting upon the browser DOM with provided XML data to render the UI. It allows the browser to do things against the server without hitting the submit button. Cool and very, very powerful when you wrap your head around it.  Next is Greasemonkey, this is a huge innovation which could render business models ineffective, or so some think.  Greasemonkey is best explained by plagerizing the mozzila site, “Greasemonkey is a Firefox extension which lets you to add bits of DHTML (”user scripts”) to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page’s style, user scripts let you easily control any aspect of a web page’s design or interaction.” Either way, the UI is going through another iteration. In my mind, its one of the technologies which changes most frequently. Enjoy the added user experience this iteration is providing.