Re: How do you get started?

I probably should start using CRC cards and/or stories. In my pre-TDD days, I did a lot of design work at various diner type places. Now that's only useful if I have a tricky refactoring to figure out, or an optimization algorithm.

I have a huge whiteboard where I start to list stories and/or major functional areas, with a scrap of paper for the immediate to-do list. I'm in the process of tackling a new functional area right now, and came in with an overdesigned plan, so I'm backing that out and building it in tiny steps out from a more approachable base.

All the writings on flow are so applicable... I think that my recent obsession with developing test libraries is that they hit the sweet spot while rails doesn't... A lot of Rails is too easy to be rewarding or too cumbersome to TDD, so....

Re: How do you get started?

I think that my recent obsession with developing test libraries is that they hit the sweet spot while rails doesn't... A lot of Rails is too easy to be rewarding or too cumbersome to TDD, so....

By all means keep working on improved test libraries - it helps me a lot more than your app code :-)

I've got this huge page of newspost paper that's marketed to editors laying out magazines and newspapers. It has massive real estate for sketching and drawing lines and I get to clip things out when I want. I'm thinking about moving to CRC cards though - I like the idea of comparing different models side by side and seeing how they match up.

Re: How do you get started?

I just write out the model, either in UML, or a kinda of psuedo schema format. Then I'll draw out a screen flow diagram, and draw some of the screens. By that time I'm usually ancy and want to get started, so I whip up a schema and start coding.

Re: How do you get started?

I often just use a text file. I start writing down the ideas, features, objectives, problems, schema, pretty much everything goes into the text file. Forcing myself to write down every thought regarding the application really helps me get a good perspective on the project. I sometimes refer back to this document while building the app, but that's not the reason for it. After I'm done writing I usually have a good enough grasp on the project already. I just use it as a method for talking to myself - I know, it's weird, but it works.

Re: How do you get started?

I call my method a "textual analysis". It inherits very heavily from UML. First, I list all the possible actors, and detailed descriptions of what they are/do, and ideas on how to seperate them from the others in the database. Next, you take your scope document (or your napkin your boss gave you, or your idea) and find all the database tables (nouns) mentioned. Create a few pseudo-class diagrams of your database, I say a few because there are many diffferent ways of solving a problem. Find a bunch of solutions, it will help out tin the long run. Now, start listing functionality, this may be straight out of thr scope docs, just list every feauture you can think up. Make use case drawings for some of the more complex ones, and underneath the drawing, write down what should happen in the application/database. Try and structure these use cases into classes (controllers), and make a diagram of them too. Now get a three ring with tabs. You need: Classes (Models), Use Cases (Controllers), Actors, Functionality notes (those ideas you have that you don't want to use case out or are not sure about), Documents (your scope doc, your contract, a to-do list), and Documentation (general notes about the app, a copy of the schema, etc...). This is the book. Make a coversheet with the codename, your name, and your business name. Load it with posty notes, index cards, and a decent pen. This is all you wlll ever need .

Re: How do you get started?

I like my good ol' whiteboard. I come up with a basic flow of how the site will function first and then, from there, come up with a basic schema plan. I like to just get the basic plan down and then start going at it.

I find that when I over plan, I make life harder on myself by trying to think of everything as a whole and end up worrying too much about small details. Instead I prefer to just come up with the basic idea and refine as I go through.

Re: How do you get started?

I start off with MindManager to get a map of the idea out in the open, then I start sketching the UI to discover how I want the user to interact with the app. Once I have some wireframes that cover the majority of the functionality outlined in my mind map I start modelling/coding.

Re: How do you get started?

Write out every idea I have using Writely.com and then grab a whiteboard and start mapping out the user interface. Next is the HTML mockups, then domain objects, then database design, then on with the rest of the app.

Re: How do you get started?

I tend to use a mix of whiteboard and paper. I like the whiteboard to sketch out navigation, and then on paper I'll start drawing up the UI (I like the detail/control you can get with a pencil over a whiteboard marker). Usually I'll realize functionality I forgot and it's back to the whiteboard. After a few itterations, it's time for the digital camera to record the structure, and I'll do a basic ERD on the whiteboard (I need another one). I'll show the paper drawings to users before I start writing a line of code and often add in a bit more functionality, modify things appropriately then start coding.

Re: How do you get started?

I used to outline everything in a text file and start from there. I still use the text file to get down my intiial ideas, but recently I've started sketching things out on paper first, too, not os much how it's going to look, but now things interact and relate to one another, etc. I first did this for my online billing system (also my first rails app) and it made sorting out and setting everything up much easier.

Re: How do you get started?

I am along the lines of cdcarter, I think of actors and model those.e.g. typically client/customer and admin for my apps.

Then I think about what they will do and what models that requires.e.g. "My clients need to make an order"

Whilst writing the order I will think many items and put "has many items" in, which leads me to my next model (item), etc.

When all the obvious things are done, I go back to what the user will be doing (imagining them browser the site, where they would go, what they would do, etc.) to see if there is anything else I have missed.