I have used Visio before, but tend to go back to the analog whiteboard. I have often thought of a 'correct' way to plan and map software (at least Perl-centric software).
I have worked a few places in my time, and find that a 'correct' way one place wouldn't work somewhere else. It all depends on the people on the team, company policy, etc...
In general, however, I think there are a few things that always help, and are staples for planning software.
- Clear 1000 foot view of software. It will do X, and be used by Y.
- Map of any integrations. Interfacing with existing database? Need new database? Need new tables?
Interfacing with software? Is there an API? etc...
- General bubble chart (flow-chart without real flow) of 500 foot view. Can this be modular? Can sub-teams work
on various parts (ie. Admin section, backend, front end, UI, etc...).
- SPECS!!! SPECS!! SPECS!! The specs should have specifics and details of how things will work. These should be worked on by
management AND development.
- Final specs should include list of technologies being used (XML,Perl, Apache, Oracle, etc...) so they can be installed.
- Now, have fun on the whiteboards. I see things work well when sub-teams create DETAILED flows of their bits, then
explain their bits to other sub-teams. This helps you see how the bits will touch and mesh and allow for people to know
what API's to make sure they have for other bits. Then, revise flows and details as needed.
- Develop! Changes will be made, things will be added/removed.. there is no permanence in software design.
There is a lot in between (I could probably do a book on dos and do-nots of real-world software design), but those are some highlights I have seen work well. Generally I don't like to use any
flowchart software (unless someone else will maintain the flowcharts) because whiteboards are better (if you are luckly, you have
a whiteboard that prints). I love walking into a room and seeing all the whiteboards marked up with the flow of
a big piece of software!
Cheers,
KM
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|