Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Where to start?

Where to start?

Scheduled Pinned Locked Moved The Lounge
questioncomdesignbusiness
54 Posts 36 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Fernando A Gomez F

    Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

    A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

    B Offline
    B Offline
    brianwelsch
    wrote on last edited by
    #9

    I'd read through the user docs, make notes and a list of questions and find someone to talk to about them. Make sure you understand what's really being asked of you before you delve too far into the nitty gritty.

    BW


    If you're not part of the solution, you're part of the precipitate.
    -- Steven Wright

    J 1 Reply Last reply
    0
    • B Bassam Abdul Baki

      What's the system? :)


      "Patriotism is your conviction that this country is superior to all other countries because you were born in it." - George Bernard Shaw Web - Blog - RSS - Math - LinkedIn - BM

      F Offline
      F Offline
      Fernando A Gomez F
      wrote on last edited by
      #10

      A competitor for this[^] software. It's a system for managing restaurants. :)

      A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

      B N 2 Replies Last reply
      0
      • B brianwelsch

        I'd read through the user docs, make notes and a list of questions and find someone to talk to about them. Make sure you understand what's really being asked of you before you delve too far into the nitty gritty.

        BW


        If you're not part of the solution, you're part of the precipitate.
        -- Steven Wright

        J Offline
        J Offline
        Jeremy Falcon
        wrote on last edited by
        #11

        brianwelsch wrote:

        Make sure you understand what's really being asked of you before you delve too far into the nitty gritty.

        That's a good point.

        Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]

        1 Reply Last reply
        0
        • F Fernando A Gomez F

          Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

          A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

          J Offline
          J Offline
          Joan M
          wrote on last edited by
          #12

          1. document with specs. 2. diagrams like uml. 3. divide it in several blocks. 4. document with specs for all blocks. 5. diagrams for like uml for all blocks. 6. start to program. Of course this is not as simple, but you can start with that. Of course you can even make time approximations and make a gantt chart. hope this helps...

          1 Reply Last reply
          0
          • F Fernando A Gomez F

            A competitor for this[^] software. It's a system for managing restaurants. :)

            A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

            B Offline
            B Offline
            Bassam Abdul Baki
            wrote on last edited by
            #13

            There seems to be quite a few of those. I actually submitted my resume a while back to a similar company. Never heard from them. If you have the user requirements, come up with a couple of test scenarios to see how the system will work and create a couple of use cases for that. Seems to me that the number of use cases for that is pretty simple, even though the number of input and output parameters probably isn't.


            "Patriotism is your conviction that this country is superior to all other countries because you were born in it." - George Bernard Shaw Web - Blog - RSS - Math - LinkedIn - BM

            Z 1 Reply Last reply
            0
            • S Shog9 0

              Fernando A. Gomez F. wrote:

              And I have no clue where to start.

              Write yourself some fun little stories based on the user's requirements. Then whip up some prototypes that fit into your stories. Then base your design on the prototypes. Or, i guess, draw pictures. Whatever helps you build a mental model, see?

              ---- Do you see what i see? Why do we live like this? Is it because it's true... ...That ignorance is bliss?

              G Offline
              G Offline
              Gary Wheeler
              wrote on last edited by
              #14

              You sneaky, agile dog, you.


              Software Zen: delete this;

              1 Reply Last reply
              0
              • F Fernando A Gomez F

                Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

                A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

                realJSOPR Offline
                realJSOPR Offline
                realJSOP
                wrote on last edited by
                #15

                To hell with documentation - write the code and then create a document that describes it.

                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                -----
                "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                _ J F J M 5 Replies Last reply
                0
                • realJSOPR realJSOP

                  To hell with documentation - write the code and then create a document that describes it.

                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                  -----
                  "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                  _ Offline
                  _ Offline
                  _Zorro_
                  wrote on last edited by
                  #16

                  Very professional... :doh: Like in school :rolleyes:

                  1 Reply Last reply
                  0
                  • realJSOPR realJSOP

                    To hell with documentation - write the code and then create a document that describes it.

                    "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                    -----
                    "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                    J Offline
                    J Offline
                    Jeremy Falcon
                    wrote on last edited by
                    #17

                    John Simmons / outlaw programmer wrote:

                    write the code and then create a document that describes it.

                    That's why God invented doxygen! :->

                    Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]

                    1 Reply Last reply
                    0
                    • F Fernando A Gomez F

                      Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

                      A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

                      M Offline
                      M Offline
                      Marc Clifton
                      wrote on last edited by
                      #18

                      Fernando A. Gomez F. wrote:

                      Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start?

                      Start with storyboarding the UI and user interactions. On paper. :) Marc

                      Thyme In The Country

                      People are just notoriously impossible. --DavidCrow
                      There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
                      People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith

                      J 1 Reply Last reply
                      0
                      • realJSOPR realJSOP

                        To hell with documentation - write the code and then create a document that describes it.

                        "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                        -----
                        "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                        F Offline
                        F Offline
                        Fernando A Gomez F
                        wrote on last edited by
                        #19

                        :-D:-D:-D I'm really tempted to do so. However, the customer is requiring full documentation of everything :( and so my bosses.

                        A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

                        realJSOPR 1 Reply Last reply
                        0
                        • M Marc Clifton

                          Fernando A. Gomez F. wrote:

                          Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start?

                          Start with storyboarding the UI and user interactions. On paper. :) Marc

                          Thyme In The Country

                          People are just notoriously impossible. --DavidCrow
                          There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
                          People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith

                          J Offline
                          J Offline
                          Jeremy Falcon
                          wrote on last edited by
                          #20

                          Marc Clifton wrote:

                          On paper.

                          I have to admit I'm surprised you say this. Not that I disagree, but I thought you were a Visio buff. Seeing that I've never used Visio (I'd rather put my money in a diff dev tool), this does leave me wondering if it's really good for anything outside of code generation.

                          Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]

                          M M C 3 Replies Last reply
                          0
                          • realJSOPR realJSOP

                            To hell with documentation - write the code and then create a document that describes it.

                            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                            -----
                            "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                            J Offline
                            J Offline
                            John M Drescher
                            wrote on last edited by
                            #21

                            Well for me the time requirement usually prohibits me from ever spending any effort on documentation or planning so I usually start a new project by 5 to 10 consecutive days where I write 1000 or more lines of new code each day. From there I discover what problems need further looking into and what optimizations need to be made. Then in a few weeks a prototype is made and a demo is given then new requirements are given to me and I spend time working on the changed specifications. Then debugging starts...

                            John

                            1 Reply Last reply
                            0
                            • F Fernando A Gomez F

                              Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

                              A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

                              M Offline
                              M Offline
                              Member 96
                              wrote on last edited by
                              #22

                              I would start by extracting out in as few words as possible, in point format, all the TASKS that the users want to accomplish, then look for parallels between them and try to compact it into as few tasks as possible. The game is to find ways to accomplish all the needs of the users in as few tasks as possible. Once that point was reached I would mock up a UI on paper considering different ways to fulfil the uers needs to accomplish those tasks in as few steps as possible. I.E. "How can I get the user from starting the program to accomplishing the task in as few steps as possible?" Rework that over and over until you have the smallest possible user interface that accomplishes the tasks the users need to as simply as possible. Make that into a mock up of some kind you can present back to the users so they can see the flow of the different tasks being accomplished and get their approval on it. Then sit down and extract out all the business objects you will need to accomplish those tasks. Do not touch a database at this point or think at all about the data itself, only in the sense of abstract business objects required. When you've whittled it down to as few business objects as possible, only then think about the data required and at that point you're pretty much ready to start coding. The worst possible mistake is to take an initial set of requirements and start making a database for them, this is why a code generation tool that works off a database schema makes such crappy software and why it should be avoided at all costs. Users don't think in terms of data, they think in terms of tasks, jobs they need to get done as quickly and easily as possible. Programmers often think of data first and that will limit them to writing software usable only by other programmers. What you get when you design by user task is a program that the user finds easy to use, intuitive and you will find much easier to maintain. It breaks you away from thinking like a programmer and producing a bloated hard to use program that has a UI tied way too tightly to the technical underpinnings of the system and instead an elegant UI tied to the way the user is already thinking.

                              S L 2 Replies Last reply
                              0
                              • J Jeremy Falcon

                                Marc Clifton wrote:

                                On paper.

                                I have to admit I'm surprised you say this. Not that I disagree, but I thought you were a Visio buff. Seeing that I've never used Visio (I'd rather put my money in a diff dev tool), this does leave me wondering if it's really good for anything outside of code generation.

                                Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]

                                M Offline
                                M Offline
                                Marc Clifton
                                wrote on last edited by
                                #23

                                Jeremy Falcon wrote:

                                but I thought you were a Visio buff.

                                Well, I am, once I've got a plan in mind. I often find it easier to do initial design work on paper, especially UI storyboarding.

                                Jeremy Falcon wrote:

                                this does leave me wondering if it's really good for anything outside of code generation.

                                I actually don't use Visio for code generation. :) Marc

                                Thyme In The Country

                                People are just notoriously impossible. --DavidCrow
                                There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
                                People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith

                                1 Reply Last reply
                                0
                                • B Bassam Abdul Baki

                                  There seems to be quite a few of those. I actually submitted my resume a while back to a similar company. Never heard from them. If you have the user requirements, come up with a couple of test scenarios to see how the system will work and create a couple of use cases for that. Seems to me that the number of use cases for that is pretty simple, even though the number of input and output parameters probably isn't.


                                  "Patriotism is your conviction that this country is superior to all other countries because you were born in it." - George Bernard Shaw Web - Blog - RSS - Math - LinkedIn - BM

                                  Z Offline
                                  Z Offline
                                  Zoltan Balazs
                                  wrote on last edited by
                                  #24

                                  I'm doing something similar... and it can be quite complex. I would recommend for you to: 1. fully understand the user requirements 2. design the input-output part (know what you're expecting from your users and what are they expecting from you) 3. sit down and draw, sketch a couple of designs with others... until you refine it to your needs. I would say that the database part would be the most important because if you design it the wrong way you have to make structural changes later... which could prove to be one of the hardest things. Also seek for help from others that did something similar or check out similar software's. It's pretty hard to design something if you haven't done that before.

                                  company, work and everything else www.netis.ro

                                  J 1 Reply Last reply
                                  0
                                  • F Fernando A Gomez F

                                    Hello fellows. Last week, the company I'm working on finally decided to create a new system from scratch. However, because of compromises with other projects, I've been left alone to design this new system. The bosses told me to start today (I already have the user's requirements for the application). So here I am, sitting at my laptop. And I have no clue where to start. Shall I start making UML diagrams, or should I start by making a document with the specification? What would be your advise? Where to start? Thanks for your comments. [EDIT] Uh, by the way, hope this is not taken as a programming question :~ [/EDIT]

                                    A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #25

                                    Although you are to create a system from scratch, this is not always the best way forward for any organisation as it can become very disruptive, and this disruption doesn't get better should the company think that abruptly ending one system and starting a new one is the way forward. You have the requirements for this user. Even though you are to create a system from scratch, do your user requirements show any inheritance or dependency from any pre-existing system, if yes, consider starting from that viewpoint. Then establish use cases that encompasses the existing system (as an actor) and establish from user requirements the other actors. From that point you should have a general overview of the system to develop after which you can consider the verbs and nouns found in the user requirements from which you might be able to create proposed classes and sub-classes. Everything said above can be done either using a pen/pencil + paper or using a UML diagramming tool such as StarUML. Take your time, don't rush else errors and mistakes are guaranteed will happen.

                                    1 Reply Last reply
                                    0
                                    • M Member 96

                                      I would start by extracting out in as few words as possible, in point format, all the TASKS that the users want to accomplish, then look for parallels between them and try to compact it into as few tasks as possible. The game is to find ways to accomplish all the needs of the users in as few tasks as possible. Once that point was reached I would mock up a UI on paper considering different ways to fulfil the uers needs to accomplish those tasks in as few steps as possible. I.E. "How can I get the user from starting the program to accomplishing the task in as few steps as possible?" Rework that over and over until you have the smallest possible user interface that accomplishes the tasks the users need to as simply as possible. Make that into a mock up of some kind you can present back to the users so they can see the flow of the different tasks being accomplished and get their approval on it. Then sit down and extract out all the business objects you will need to accomplish those tasks. Do not touch a database at this point or think at all about the data itself, only in the sense of abstract business objects required. When you've whittled it down to as few business objects as possible, only then think about the data required and at that point you're pretty much ready to start coding. The worst possible mistake is to take an initial set of requirements and start making a database for them, this is why a code generation tool that works off a database schema makes such crappy software and why it should be avoided at all costs. Users don't think in terms of data, they think in terms of tasks, jobs they need to get done as quickly and easily as possible. Programmers often think of data first and that will limit them to writing software usable only by other programmers. What you get when you design by user task is a program that the user finds easy to use, intuitive and you will find much easier to maintain. It breaks you away from thinking like a programmer and producing a bloated hard to use program that has a UI tied way too tightly to the technical underpinnings of the system and instead an elegant UI tied to the way the user is already thinking.

                                      S Offline
                                      S Offline
                                      Shog9 0
                                      wrote on last edited by
                                      #26

                                      John Cardinal wrote:

                                      Programmers often think of data first and that will limit them to writing software usable only by other programmers.

                                      Boy, howdy, is that ever true. And even there, "usable" is being kind - you might just find the programmers writing SQL instead of using your interface...

                                      1 Reply Last reply
                                      0
                                      • J Jeremy Falcon

                                        Marc Clifton wrote:

                                        On paper.

                                        I have to admit I'm surprised you say this. Not that I disagree, but I thought you were a Visio buff. Seeing that I've never used Visio (I'd rather put my money in a diff dev tool), this does leave me wondering if it's really good for anything outside of code generation.

                                        Jeremy Falcon "It's a good thing to do and a tasty way to do it." - Wilford Brimley[^]

                                        M Offline
                                        M Offline
                                        Michael P Butler
                                        wrote on last edited by
                                        #27

                                        Jeremy Falcon wrote:

                                        I have to admit I'm surprised you say this. Not that I disagree, but I thought you were a Visio buff. Seeing that I've never used Visio (I'd rather put my money in a diff dev tool), this does leave me wondering if it's really good for anything outside of code generation.

                                        Visio tends to suck the enjoyment out of the early design phase. A pencil and paper are still the best tool for thrashing out thoughts and ideas. Visio is very useful when you want to start formalising the design.

                                        Michael CP Blog [^] Development Blog [^]

                                        D J 2 Replies Last reply
                                        0
                                        • M Member 96

                                          I would start by extracting out in as few words as possible, in point format, all the TASKS that the users want to accomplish, then look for parallels between them and try to compact it into as few tasks as possible. The game is to find ways to accomplish all the needs of the users in as few tasks as possible. Once that point was reached I would mock up a UI on paper considering different ways to fulfil the uers needs to accomplish those tasks in as few steps as possible. I.E. "How can I get the user from starting the program to accomplishing the task in as few steps as possible?" Rework that over and over until you have the smallest possible user interface that accomplishes the tasks the users need to as simply as possible. Make that into a mock up of some kind you can present back to the users so they can see the flow of the different tasks being accomplished and get their approval on it. Then sit down and extract out all the business objects you will need to accomplish those tasks. Do not touch a database at this point or think at all about the data itself, only in the sense of abstract business objects required. When you've whittled it down to as few business objects as possible, only then think about the data required and at that point you're pretty much ready to start coding. The worst possible mistake is to take an initial set of requirements and start making a database for them, this is why a code generation tool that works off a database schema makes such crappy software and why it should be avoided at all costs. Users don't think in terms of data, they think in terms of tasks, jobs they need to get done as quickly and easily as possible. Programmers often think of data first and that will limit them to writing software usable only by other programmers. What you get when you design by user task is a program that the user finds easy to use, intuitive and you will find much easier to maintain. It breaks you away from thinking like a programmer and producing a bloated hard to use program that has a UI tied way too tightly to the technical underpinnings of the system and instead an elegant UI tied to the way the user is already thinking.

                                          L Offline
                                          L Offline
                                          Luis Alonso Ramos
                                          wrote on last edited by
                                          #28

                                          :applause: (what? no applause emoticon?) Sometimes it is easy to forget that users will actually use your software. You have to take their point of view every step of development. Great post, my 5! :cool:

                                          Luis Alonso Ramos Intelectix Chihuahua, Mexico

                                          Not much here: My CP Blog!

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups