Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been programming a new iOS app for about 5 months, and I'm pretty much on the final stretch. My team and I agreed to make the app more simple once we were at this point of the development process. This question doesn't really apply to a whole team (where there are people who do design for a living), but more about from a programmer's mind.

I tend to dig into every little detail about a personal project, and figure out a way to create a feature for it as I'm sure most other programmers on here tend to do. While that's definitely not bad, it has to be controlled.

So what I'm asking is what you all use as far as technique's and tools to help yourself keep things simple. Or in other words, how you control your programmer-type mind from not getting out of hand :P

share|improve this question

closed as not constructive by Robert Harvey, Jim G., gnat, Glenn Nelson, Martijn Pieters Jan 24 '13 at 8:16

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Are you asking how one would simplify the app from a UE perspective, simplify the code (ie. refactor), or prevent feature creep? –  Steve Evers Jan 24 '13 at 1:01

4 Answers 4

up vote 5 down vote accepted

I find that taking a single day and refactoring in the things that I did not know when I started the project -- cleaning up the cruft -- can pay big dividends over the remaining life of the project.

share|improve this answer
I ended up trying this with a personal project of mine that was extremely verbose, and it totally worked! I'm really proud of what came out of using your technique. –  jsksma2 Jan 26 '13 at 13:21

I try to get a prototype in front of users.

They will have ideas / issues / suggestions that I didn't think of or think to focus on, so they help guide my development. I sometimes find my 'elegant' solution just doesn't work well for them, sometimes I've created something too non-standard or with issues in one particular display device.

share|improve this answer

I try to evaluate things from a true cost/return point of view. The programmer mind often tends to be a perfectionist mind.

How many of us would be doing exactly the same thing if money was not needed? We might be programming, but likely on something more interesting.

Therefore, since we, and the businesses we work for, are doing it for money, I try to think ahead to a reasonable degree and see if the refactor, improvement, simplification, or leaving it alone would pay bigger dividends. I try not to be shortsighted, but looking out too far can be equally destructive.

share|improve this answer

Define "Simpler"

  • simpler for the user to use? - minimize clicks/actions, above all ask the users!
  • simpler to maintain? refactor with an eye for DRY (Don't Repeat Yourself), but don't go overboard (with interfaces, helpers, et al)
  • simpler in structure? see DRY refactor above, also look for unifying/generalizing concepts to smooth out the 'rough edges' of the conceptual model
  • simpler to test? decouple with interfaces, use mocks and unit tests
  • simpler to understand? subdivide into conceptual layers/modules, each of which can be explained in one sentence of 10 words or so
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.