7 Replies - 366 Views - Last Post: 21 October 2017 - 02:35 AM

#1 KevDaCoda  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 20-October 17

Iterative and incremental development

Posted 20 October 2017 - 03:24 AM

Hi all,

I am new to this forum and the field of software engineering, so please go easy with me here. I am considering conducting a project to build a software system for my friend. The system is going to be a very basic, desktop based, CRM system for a small business. I wish I could be more specific, but I am considering basing my final project for my Bachelors on this so I don't want to fall fowl of my universities policies.

I have been reading up on development life cycles and I particularly like the idea of iterative and incremental development. However, I am struggling to conceive how this project could be broken down into iterations with incrementing functionality. I am a complete novice at all the stages (analysis to implementation), which is why I probably can't even vision how the project might unfold. I would really appreciate it if anyone was able to offer any general advice about how they approach such a development.


Is This A Good Question/Topic? 0
  • +

Replies To: Iterative and incremental development

#2 andrewsw  Icon User is online

  • the case is sol-ved
  • member icon

Reputation: 6376
  • View blog
  • Posts: 25,761
  • Joined: 12-December 12

Re: Iterative and incremental development

Posted 20 October 2017 - 03:44 AM

Presumably you will be doing this alone? In which case it will be a challenge to enforce iterations and incremental development, and self-review.

It is not a question of breaking down the project, but to approach it incrementally and allowing it to evolve.
Was This Post Helpful? 0
  • +
  • -

#3 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 5073
  • View blog
  • Posts: 13,697
  • Joined: 18-April 07

Re: Iterative and incremental development

Posted 20 October 2017 - 11:03 AM

I don't think it is really going to be a challenge to the do the iterations and incremental development. In fact I think most of us should be doing iterations and incremental development. The problem I see most often on this board, and in general, is that people try to do too much all at once and when something goes wrong they don't know where. At least with iterations and incremental dev work you get a chance to see when a problem is introduced.

Now I will agree on the fact that if you are doing it alone that self-review is a problem. You are just too close to the code to see the obvious problems with it. But if he can get a mentor or someone familiar with development from an architectural point of view to review his work at key stages then he could do it.

As for the poster, the only advice I can give is that before you touch a key that you simply ask yourself some serious hard thought out questions including the purpose of the software, what are some features needed for a minimal viable product (MVP) and how you can take the large problem crack it in half then take the halves and crack them in half and keep doing it down until you can say "Oh to implement this step I just write a basic function or class". Once you are at that point then you should have a good blueprint to start from. It is just a matter of priority and organization from that point. It will be easy once you see all the pieces broken down.

:)
Was This Post Helpful? 0
  • +
  • -

#4 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 13485
  • View blog
  • Posts: 53,843
  • Joined: 12-June 08

Re: Iterative and incremental development

Posted 20 October 2017 - 11:08 AM

Sit down with your buddy.
Hash out all the functionality.
Figure out what is minimally needed to get it out the door.
Figure out what the GUI should look like, what fields should do what, and how big is too small of a font size.
Figure out data storage options.. MSSQL server, a flat file, or what.

Agree on all that jazz.
Start getting a plan on what data representation will be.. and organize the tasks so they make sense.
Do the work.
Was This Post Helpful? 0
  • +
  • -

#5 jon.kiparsky  Icon User is offline

  • Chinga la migra
  • member icon


Reputation: 10681
  • View blog
  • Posts: 18,294
  • Joined: 19-March 11

Re: Iterative and incremental development

Posted 20 October 2017 - 11:27 AM

Before you do anything else, sit down with your buddy and tell him this:

"We're about to start doing something that will take a lot of your time and will almost certainly provide you with no benefit whatsoever. There are probably off-the-shelf packages to do what you want right now, which will be cheaper, after your time and aggravation and risk are taken into account, by a factor of at least 100, than anything I will be able to provide you. You would be doing this purely as a favor to me, which I would greatly appreciate, but if the idea of getting nothing out of this bothers you then we should not start, because it would suck for both of us if you were to find this out midway through the project. Are you sure you want to continue?"

Use those exact words, and make sure he knows you're serious, because every word of it is true.
Was This Post Helpful? 0
  • +
  • -

#6 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 13485
  • View blog
  • Posts: 53,843
  • Joined: 12-June 08

Re: Iterative and incremental development

Posted 20 October 2017 - 11:56 AM

If you can play a little squeeze box while reciting jon's lines it may help with the over all presentation.
Was This Post Helpful? 0
  • +
  • -

#7 ndc85430  Icon User is online

  • D.I.C Lover
  • member icon

Reputation: 587
  • View blog
  • Posts: 2,471
  • Joined: 13-June 14

Re: Iterative and incremental development

Posted 20 October 2017 - 12:10 PM

It's also interesting that you've not had practise at doing this during your degree - I'd have thought this would be a standard part of a computer science (assuming there were some modules on software engineering, of course) or software engineering degree by now.

This post has been edited by ndc85430: 20 October 2017 - 12:10 PM

Was This Post Helpful? 0
  • +
  • -

#8 KevDaCoda  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 20-October 17

Re: Iterative and incremental development

Posted 21 October 2017 - 02:35 AM

Thank you so much for your realistic comments/advice. I really appreciate the time people have taken to deliver such rich and helpful feedback. I appreciate it would be difficult to pull this off on my own and friend is fully aware it is likely to end up with nothing or something that is unusable. My tutor says that the university's marking scheme is less concerned with the product and more concerned with self review and reflection.

Having said that, I would still like to at least try and produce something that is of use to my friend. I have spoken to my tutor about having a third party to perform a review (as Martyr2 suggested), but this is strictly against university policy. Based on your comments, I am going to walk into this expecting that I am going to make a lot of bad decisions and try to allocate extra time for self review. I am going to try and design the system to be as flexible as it can. The intention is that once I finish my degree, I may be able to repair my bad decisions and end up with a workable system that my friend can use (I can dream!).

If I am honest, what my friend actually needs is a more complex architecture as his boss actually owns two business in separate locations. However, I did not want to dive into something as complex as this for my university project as it would increase the chance of failure even further. His boss has informed me that if I manage to develop something simple that he can use, then he would consider using it in his other, more larger, branch. Considering this, would it be likely that this desktop system I develop for my university project would be later written off anyway (even if usable)? Do you think there is any possibility of being able to transfer the business logic from the desktop architecture over to a MVC framework such as Spring? My gut tells me that it would just be better redoing it from scratch at that point. I could also then think about bringing others onboard which will be able to review my decision making.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1