Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 114539
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T02:52:36+00:00 2026-05-11T02:52:36+00:00

I’ve started working on a fairly complicated software. It is for a personal project,

  • 0

I’ve started working on a fairly complicated software. It is for a personal project, but nonetheless I’m putting a lot of effort into it. Now, I’m used to work on other people’s solutions / designs or on projects that grow in a very controllable way.

This time, I started twice to code the basics and I rapidly found myself stuck. So i took a rest and decided to write down the complete solution before coding a single line. What I’ve done (in order) is:

  1. writing the use cases in the form of CLI commands (this is a command line application)
  2. write some help
  3. design the classes, the structure of the data files and the functional workflow for the various parts.

Now, I’m going really slow in this whole part. I’ve set up a personal wiki and I’m using it to write those specifications, but i clearly feel my lack of experience and a clear methodology.

I’m aware that software design is a very complex subject and that a pletora of books have been written about it, but I’d love you to share your experience / advices / methodology.

When working on personal, middle-sized projects, what do you specify before starting to code? How?

Thanks in advance

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T02:52:37+00:00Added an answer on May 11, 2026 at 2:52 am

    When working on personal, middle-sized projects, what do you specify before starting to code?

    I specify the functional specification:

    • I feared that it might be too easy, if I just started coding (which is the ‘how’), to forget ‘why’ and ‘what’ I wanted to code (for ‘fairly complicated’ software, over the months or years that it might take to develop).
    • I also wanted to understand, more or less, the ‘scope’ of what I would be developing: in order to assess approximately (to an order of magnitude):
      • How big it will be
      • Whether I could finish it
      • Whether it was worth starting
      • What subset of it can be developed first

    For the sake of risk management I’ll add that some of what I wanted to develop implied using some software that I wasn’t familiar with; to minimize the risk associated with that, I also did a little throw-away prototyping.

    How?

    I outlined a functional specification, using pen a paper. Some of what I wrote was high-level (a business-level ‘vision’ document), and some was lower-level, more like design (some of the UI details). Sometimes I stopped and puzzled about how to organize it, but then went on, reasoning that each page is more-or-less cohesive about each topic, and that I can puzzle later about how to organize the pages (much like your wiki, perhaps).

    I both did and didn’t specify the software architecture in advance:

    • I start development with a basic architecture (a few small components) in mind, and then add code; and, as I add code, if any component gets too big and complicated then I subdivide it into several smaller components … it’s an evolutionary process … as it says in Systemantics, A COMPLEX SYSTEM THAT WORKS IS INVARIABLY FOUND TO HAVE EVOLVED FROM A SIMPLE SYSTEM THAT WORKED.
    • I’m not documenting the architecture; or, rather, the only documentation of the architecture is the code itself: for example, the way in which source code is arranged into source directories, namespaces, and DLLs.

    I do have a theoretical justification for the architecture as it is now, but I haven’t documented these reasons:

    • I’m the sole developer
    • The actual architecture is documented by the code
    • The reasons for the architecture are in my head, and are [re]discoverable by things like the naming conventions in the source code, and the various components’ dependencies

    If (only if) I weren’t the sole developer, then I might think it worth documenting the architecture and its rationale.

    What I said above about the architecture of the software is also true of the data which the software processes.

    As for testing, I code a bit and then test it; or write a test and then code the functionality which will pass that test. I’m not doing ‘big bang integration’, i.e. months of writing without any testing.

    One of the biggest weaknesses in (or thing missing from) my process is estimating effort in advance, and then tracking implementation against the estimate … this is one of the differences between this ‘personal’ project process versus a paid project that I’d do for someone else commercially. I doubt whether this is good though: if estimation is a best practice commercially, then perhaps I ‘should’ be doing it too on a personal project.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 115k
  • Answers 115k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer wsdl.exe is the only core .NET proxy generator other than… May 11, 2026 at 10:24 pm
  • Editorial Team
    Editorial Team added an answer Here's a question (and good answers) about singletons. You could… May 11, 2026 at 10:24 pm
  • Editorial Team
    Editorial Team added an answer This will do it: #define NEW_LINE "\n" // Note double… May 11, 2026 at 10:24 pm

Related Questions

I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I am currently running into a problem where an element is coming back from
Seemingly simple, but I cannot find anything relevant on the web. What is the
Configuring TinyMCE to allow for tags, based on a customer requirement. My config is
Is it possible to replace javascript w/ HTML if JavaScript is not enabled on

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.