Jump to content
xisto Community
Sign in to follow this  
FirefoxRocks

Tackling Large Projects

Recommended Posts

I know that for large projects in any programming language, we break it down into small sections to build it easily (actually, this applies to a lot of tasks in life, not just programming). But I was wondering how to do this exactly?Do programmers write down the sections and features that the product requires? Or do they just start typing code and add to the code as they go along?There are 3 types of systems I am particularly wondering about here. phpBB, Drupal (or Joomla) and WordPress. I am wondering how the programmers initially started developing the systems. Where did they start? Do they start with the login first, or the main functionality? Did they have a database set up at first, or is that one of the later steps?I'm considering making something myself, and I need help on how to start and finish the job successfully. I know you need patience and determination as well as a lot of other attributes, but for now, it's still planning. :rolleyes:

Share this post


Link to post
Share on other sites

There are a number of different ways that you can approach things, each one has its advantages and disadvantages, in all honesty, the best place to look up various design methodologies is on Wiki, top down, bottom up, rad among other systems are a good place to start. The way i have approached The Oriental Dojo design was to start with pen and paper and outline with specifics what the aim of the project was and slowly broke it down into smaller more specific elements, all the time asking the question does this element fit with the original project goal. If something did not fit the projects goal it was not included into the design. As for implementation, i started from quite a high level of sophistication by using a preexisting project, removing parts and modifying others to fit my general goals, this allowed me to fritter my time away with whatever took my fancy at the time. Most importantly, tackle things that you can achieve in a session that can be complete, start with critical functionality and work out form there. Large projects can be very daunting when your the only person who is working on it and it is easy to be discouraged when you do not see any progress.Hope that explains some of your questions :rolleyes:

Edited by The_Fury (see edit history)

Share this post


Link to post
Share on other sites

In the third semester of our software engineering course, we were taught about Unified Modeling Language (UML). It is used to create models for the software. Using UML, you look at the problem through different perspectives and come up with a design that can be translated into code. Before this, though, you need to perform a number of analysis and summarize the features of the software.In Object Oriented Analysis & Designing, you identify the various entities, their functions & the relationships between them. This represents the various classes that will be written during the coding process.On a personal note, I have not created any software utilizing the knowledge of UML. The model I use comprises of developing one feature/page at a time and then modifying the design if required.

Edited by turbopowerdmaxsteel (see edit history)

Share this post


Link to post
Share on other sites

There are a number of different ways that you can approach things, each one has its advantages and disadvantages, in all honesty, the best place to look up various design methodologies is on Wiki, top down, bottom up, rad among other systems are a good place to start. The way i have approached The Oriental Dojo design was to start with pen and paper and outline with specifics what the aim of the project was and slowly broke it down into smaller more specific elements, all the time asking the question does this element fit with the original project goal. If something did not fit the projects goal it was not included into the design. As for implementation, i started from quite a high level of sophistication by using a preexisting project, removing parts and modifying others to fit my general goals, this allowed me to fritter my time away with whatever took my fancy at the time. Most importantly, tackle things that you can achieve in a session that can be complete, start with critical functionality and work out form there. Large projects can be very daunting when your the only person who is working on it and it is easy to be discouraged when you do not see any progress.
Hope that explains some of your questions :rolleyes:

Where can I find different methodologies on Wiki? I need a good approach to the "problem" I should say, one that will have a high chance of making progress.

Share this post


Link to post
Share on other sites

I tend to start with the most core of the components. Dealing with many database projects I tend to develop the reporting, for example. With some reporting funtionality accomplished this gives me a center to work out from. Additionally given that this is the main thrust of many Data driven apps I then have a good part to show the client.

Share this post


Link to post
Share on other sites

Where can I find different methodologies on Wiki? I need a good approach to the "problem" I should say, one that will have a high chance of making progress.

Your old friend wiki is great for this sort of information, i would suggest this page as a starter and to just follow the links provided as there are a lot of different systems mentioned there. https://en.wikipedia.org/wiki/Software_development_process

Edited by The_Fury (see edit history)

Share this post


Link to post
Share on other sites

The problem with planning on paper is that most of us think far faster than we can write, and thinking isn't linear start-to-finish either. The whole process seems to come out in a confused jumble, which needs constant reworking, which is tedious and can take much longer than the initial planning stage ever did.

 

I would thoroughly recommend you look into Mind Mapping. My school grades went from straight D's (in most subjects) to near straight A's when I did. I can honestly say getting those A's is achieved with a lot less effort than I was putting into those projects scoring the D's.

 

Basically, Mind Mapping is a brain storming structure, which is what you really want when planning large projects. The idea with a good brainstorm is that you can float ideas around the page, and shuffle them freely into better groups (put similar ideas next to each other or even merge them when you spot a double up) and you can skip back and forth from one thought to another (like what happens when you think of a big topic) without fear of losing quick thoughts as they randomly appear.

 

Using Linux, I find that kdissert is sufficient for my brainstorming needs. As a bonus, it has the ability to convert the mind map into a structured word processor document (writes everything in order with sub menus, bullet lists etc). What this means is that while I am comfortable working from the map itself, I can quickly print of a formal looking summary for any paperwork-obsessed administrator... without having to start all over just for their copy.

 

I use kdissert for everything from lesson planning (I am a teacher) to helping someone write a CV (they give me all the details they can remember, and in any order - I just map them out and the word-converted version becomes their first draft... all in one session!) right through to planning a sequenced plot for a weekly newspaper comic strip!

 

You don't have to use kdissert though, search for mind mapping software for your OS... there are plenty you can use... probably some of the free ones are all you need. (You may want to look at Freemind or VYM)

 

Mind Mapping can be done at a higher level than mere brainstorming... when combined with Mnemonic and Visually centric learning techniques (lots of drawings) it becomes the powerful tool that got my D's to A's... I recommend the book "Use Your Head" by Tony Buzan if you want to explore this kind of detail.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.