View Single Post
  #8   Spotlight this post!  
Unread 26-07-2011, 10:22
JesseK's Avatar
JesseK JesseK is offline
Expert Flybot Crasher
FRC #1885 (ILITE)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Reston, VA
Posts: 3,637
JesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond repute
Re: How do YOU develop software?

  1. Identify the primary reason for the software, and the flow of how it works
  2. Identify any 'fringe' things (GUI, file IO, etc) that are usually already developed as other tools in some capacity, yet will need to be integrated in
  3. Develop a proof of concept for (1), with plenty of debug statements.
  4. Iterate over the flow, using refactoring techniques, until the primary purpose of the software is complete and efficient. Create plenty of hooks, even unused ones, that allow flexibility in control of when methods are called (getter methods, calculate methods).
  5. Develop the structure and control of the main program that the user will see, if it's meant for someone else.
  6. Develop fringe things. Basic GUI, FileIO to save settings, etc. This is actually the most time-consuming and least-fun part, yet it's typically what the end-user complains the most about.

For example, I'm developing a (soon-to-be) open source scheduling algorithm that is supposed to be flexible enough to schedule matches for FLL, FTC, and FRC. Its primary purpose is to develop a schedule subject to parameters such as # of teams per alliance, # of alliances, & min/max match spacing. Honestly, if match spacing wasn't an issue it'd be trivial to make a scheduling algorithm ><. The fringe features are "Alliance Insertion" (pair up titans versus titans, subject to their consent) & scheduling for judging after the match schedule is done. It will have FileIO in case the program quits in the middle of a competition, and a GUI with which to interact.
__________________

Drive Coach, 1885 (2007-present)
CAD Library Updated 5/1/16 - 2016 Curie/Carver Industrial Design Winner
GitHub

Last edited by JesseK : 26-07-2011 at 10:28. Reason: typo