We have all been there, a big job to start - a bespoke system to develop or build or integrate or what ever it is that you do. You know what has to be done but where do you start? That blasted blank whiteboard in front of you, mountains of notes and sketch UML diagrams. Putting a pen to paper for the first time on a large project can be so looming, making that first jump into building what seems like a skyscraper of technology can be so off-putting that you procrastinate and digress until you are dangerously running late into the project and have to start hacking to make things work properly instead of building them right from the start. It’s an occasion I have faces many times. My team and me have recently started such a project and well I think I should share how we started and you can tell me if I did it right or wrong on your opinion. The Scenario: Develop a bespoke booking system for a large chain of hotels that allows both Java based desktop applications and existing CMS powered website to interface with, also linking into to existing (ancient) terminal based reservations system. The Problem: Three different technologies, two of which can interface beautifully (PHP/Java) however the third system can barely understand TCP/IP let alone XML. Internal hotel systems are ancient, Internet access is limited to port 80 via a hub located hundreds of miles from terminals. How we got past blank paper system syndrome: Well, we looked at the data that needs to be stored and retrieved; a crucial element in my opinion, after all, all that programs do is manipulate data in some way. We drew up a database structured and worked on it until it contained everything we needed (or could need). After that we started building UML diagrams for the classes that would represent that data. Including all the relationships between data types, getters, setters, calculators and manipulators. We now have a data structure and a model for managing it programmatically. To start working on the application we started with a process from, from application start until the first mouse button click. What happened? In what order did it occur? Where did that data load? Was it working in its own thread? By this point we had a solid foundation to start working on, it’s at this point that most people feel the pressure fall away and application building can commence. Now was that wrong? Did we commit a pitfall by doing this? I have never found a better way to break that ‘where the hell do I start?’ feeling than by starting at the very beginning (the input and output of the application). What do you think? How would you start?
09
Oct
06
salutations gentlemen…after a few seconds of googling and wondering what happened to the old crew…i found your new little corner on the web…
anyway…i just wanted to send me love and greetings…and i hope you are all happy and well…
- hexy
Hexy! Long time sir. Shoot me an email cjsollien@gmail.com Been looking for you and the other old members, glad you ran across us
Sorry Dave, not really a comment on your article but I might get to that later today.
CJ
Sigh, I am suffering from this right now as I attempt to produce our new site.