I'm doing a bit of database migration and other software tweaks. But things are getting so complex, it's such a headf*ck to keep it organised in your mind. Scrap paper is useless as well since things change so often. Spreadsheets etc. don't cut it either. How do you visualize your ideas? Does any of you use software like MindJet or wahtever? http://www.mindjet.com/uk/products/mindmanager_basic6/index.php?s=2 I was once 15th in the Dutch Nationals with Draughts so I'd consider myself pretty good at thinking up multiple combinations and iterations but when you are re-jigging 92 interlinked MySQL tables it just gets too much. Especially when you need ot make conceptual changes like "When does stock get subtracted? When the order is placed or when you send it?". My mind is going mad; what can you recommend?
I still use pen and paper by means of a flip chart. I find splitting the application and database into smaller parts makes it easier to maintain, just follow OO principles really. My largest project is 2+ million lines of C++ and at least 200 tables. A big problem with this approach is lack of electronic documention.
I write so little, I can hardy ready my own writing so I'd like it to be electronic (and searchable). Besides prgramming I also need to visualize loads of events and probable outcomes. Like "if this happens, there's these 3 possible results, then if this happens" etc. etc. more in a verbal sense. I found a free Mind Mapping deal called FreeMind now here which I might check out. Anyone have experience with such packages?
As my specialty is working on practice management system, I am no stranger to large datasets. On my largest project there are well over 200+ tables, 500+ stored procedures, 300+ views, 100+ crystal reports and 30+ ASP.NET applications. Although we do have a staff of 4, 99% of the development work is done by 2 of us. Not to mention all the applications are mirrored 4 times to allow for development, testing, training and production. So what happens when we get a call there is a merger and we have 1 week to import all info? Planning, really just that: DOCUMENT EVERYTHING, INLINE AND IN HELP DOCS Diagram your database, a large tag board or whiteboard can be helpful with this. Diagram your system and how it works; this can be a great way to root out inefficiencies Logically organize your database into functional groups: i.e. client info, contact info, order info, shipping info. Look at the big picture, then cut project into manageable tasks Complete your planning phase before you start development Delegate tasks if possible Tackle one task at a time Group tasks and functions. Database schema, application, interface, functionality, business level directives. If am issue comes up, or you think of a way that the application should work better, you can pinpoint which section will be affected. There isn’t a real good answer I can give you on this, I know your pain. It’s a never ending cycle of improvements. Just like the painters of the Golden Gate Bridge, once you get done with one side, you just have to turn around and start over on the other. As far as your order questions, this would really be a business decision. The safest is to adjust the value when the order is placed and approved. Better to have a few to many in inventory, than a backorder.
Thanks, some good point. Only thing is, I'm nearing the end of the whole project These 'final tweaks' span so many parts it becomes quite difficult. I am confident I can answer all remaining questions (not really looking for the answers now, just the means to get there) and solve all remaining 'problems' but it's just too slow to think up in my mind. One distraction and you need to start over again. Or you change one thing and that affects what you previously 'finished'; that can be finished in code, a finished decision or a finished 'trunk' of your thought process. All of this is no big deal if I can just write ir down in an organized manner. Playing with this FreeMind, seems pretty good... A colleague of mine used UML but that seems to be sort of restricted to flows and processes rather than being able to handle just odd ideas etc.
I will have to look into this app you suggested. As far as your completion issues, I am under the firm belief that even in the maintenance phase a large application is never done. One important thing I have done is cutting development in into smaller tasks. This allows you to have a set goal and a finite amount of other tasks that are affected by the outcome. The only thing worse than knowing you will never complete is knowing that everything you do will create more work. Set milestones and celebrate the completion.
Mind Mapping software doesn't seem suitable actually since it's all gathered around a central idea. Everything is in a Parent - Child - Sibling type of relationship but it doesn't always work that way in software and business development. But maybe I don't know enough about this yet.
I downloaded MindJet and that is a very useful bit of kit. And on my 3 screens it works even better. You can connect anything with anything, comment it, have arrows, icons, whatever you want to plaster on there. Too bad it's £149 for the full deal but the 21 day trial should take me through it anyways.
Right... You are old-fashioned! MindJet seems to work well for me, you can also import Excel ranges to neatly display table representations. Besides that you have all your topics, sub topics, call outs, symbols and whatever you imagine. You can import images as well. It seems to do the job for me. And everything you type is fully searchable so finding your thoughts back is easy.
I use FreeMind a lot, but not for anything really complex. Just my basic notes. It works well, and is quite intuitive. I don't know how well it would scale for something truly complex.
Heh, you've almost sold me on trying this one out Even though it looks as though it's Windows-only, which makes it pretty much useless to me.
I did consider UML, my colleague showed me some of his project visualization for something he did at uni. But it seems like UML is useless if you want to capture something not programming related. Like a couple of scenarios, or just some ideas. Is that correct?
Hi I bought mindjet about 18 month ago and live by it. I used freemind until i outgrew it (really quickly). Even though it is inhrently hierarchical it also allows for grouping and joining seperate items. There is a brain dump mode where you can fire in a stack of words and phrases just to get them down and then sort them out afterwards. There is also a bunch of icons you can apply to different areas to give them more meaning and a notes pain to put in the details. Finally there is a presentation view which i use at meetings on a projector to show people around an idea and make sure I don't forget anything. Almost every meeting I go to is managed by this software, you should have no problems managing a complex implementation through this as well. My suggestion would be to get organised using the product then check things off with the map markers as you complete things. Also get used to the keyboard shortcuts, they save stacks of mouse time. Jay
I might just give Mindjet a whirl although I doubt it can ever replace the trusty plastic flowchart template.
I've been using it for a week now and I can highly recommend it. I'm pretty sure I'll fork out the £150 to keep it as well; I'll have that back in no time due to improved planning etc. The 'maps' become really big so I have it run on two screens, then code the implementation on a 3d. But yeah, it rules. you can import Excel ranges and other Office data. you can search all the text so you can easily jump to sub topics in complex maps. Apparenlty you can make good presentations from it as well but I probably won't use it for that purpose. I've definitely sped up some decision making both on concepts in general as well as coding/database specific. The trial is free for 21 days without any limitations it seems. Do I look I sell that software? I should blog about it in return for a free license. Might drop them a line...
pen, paper and Borlands TogetherSoft as for databases i still havent found any programs that do a better job at E-R diagrams than pen and paper