Page 1 of 1

Beginning Big(ish) Projects

Posted: Sat Oct 29, 2011 11:33 am
by RCA86
Hey guys, I work as a web developer, so I have a decent amount of experience developing on large existing systems, as well as some smaller ones. But I'm about to start a personal project, which is bigger than anything I've ever developed from scratch. I'd like to do it 'properly' with database diagrams, and using an IDE (probably using Eclipse at the moment, but open to suggestions).

So for any of you who do things like this regularly and work on projects from the beginning, do you have any advice in terms of software that would help me out and keep everything organised? Or would you even recommend a different approach?

I'd really appreciate any advice you can give me! :D

Re: Beginning Big(ish) Projects

Posted: Sat Oct 29, 2011 4:09 pm
by Christopher
I would recommend taking an Agile attitude toward what you actually know and don't know about the design. Identify what is most important and start with that. Then use TDD to develop it, spiraling through the design/development process.

Re: Beginning Big(ish) Projects

Posted: Sun Oct 30, 2011 7:46 am
by matthijs
Keep the code in version control, a good bug tracker seems handy and a TDD approach are the main ingredients.

And an agile approach as Christopher says. I can't speak for others, but my own (big) mistake with larger personal projects is that I didn't focus on the core issues. If you have the mindset that "this is a big project", it's easy to get lost in the details. That's because every "detail" in the scope of a big project looks like an "important piece of the project" at that moment. However, if you're on your own and have 100 of such small details to work out, you aren't going to make much progress for the project in it's entirety. So, instead, focus on the absolute minimum, on the most important thing to build first. Build that and only then move on to the next thing. In a way this also means you don't need special software to manage everything, besides the version control.

Re: Beginning Big(ish) Projects

Posted: Sun Oct 30, 2011 4:38 pm
by RCA86
Thanks for the replies guys. I'm still not totally familiar with what the Agile approach is, though I've seen it mentioned all over the place. I'll look up some articles on it and see what I can make of it. TDD is definitely the only real way I've ever worked, so I'm on board with you there.

@matthijs: yeah I agree, I definitely have to have a firm idea of what exactly Version 1 requires before I can start working on the many, many (ridiculous :/) features I want to put into this thing.

So when you guys are doing your own projects, do you find that you do a lot of data modelling and software design first? If so, do you have any tools that you use to do it? I started taking a note of some of the classes and tables I plan to use, and as it grows, it's a bit of hassle to keep it all up to date. I've started using the MySQL Workbench to model some of the data, but it doesn't really allow for more advanced UML (that I can see).

Re: Beginning Big(ish) Projects

Posted: Sun Oct 30, 2011 10:01 pm
by Christopher
RCA86 wrote:So when you guys are doing your own projects, do you find that you do a lot of data modelling and software design first? If so, do you have any tools that you use to do it? I started taking a note of some of the classes and tables I plan to use, and as it grows, it's a bit of hassle to keep it all up to date. I've started using the MySQL Workbench to model some of the data, but it doesn't really allow for more advanced UML (that I can see).
It think it is important to have an overall understanding/plan for the Domain of the project. However, I would not try to over design it. Are there legacy databases that are known quantities? Are they data that you know right now are absolutely required? Those will anchor your Domain and design.

Re: Beginning Big(ish) Projects

Posted: Mon Oct 31, 2011 8:36 am
by RCA86
Hmmm, I see what you mean. If the design is too heavy, the more testing cycles I do, I'd spend as much time updating documentation as writing code.

The MySQL Workbench thing is quite cool though, as you can generate diagrams from databases, and vice versa, so that will help. And maybe some good old Word documents for lists of classes/functions etc.

Thanks for your replies.