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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|