Application development workflow

I once developed a simple engineering application (Excel / VBA) for the company I work for. Recently, other companies are interested in this software, so I am tasked with making it more user-friendly. I am planning to port my VBA / Excel application to winForm C #. Since this is going to be a tedius task, I would like to set up a UML or a step diagram so that I don't forget something during development. So my question is: Can anyone please let me know if there is an example of an application development workflow that includes, among others, an upgrade process with versioned versions, etc.

+2


a source to share


1 answer


First of all, congratulations on the adoption of the development project. I hope you find it useful. I also recommend that you sign up with Stackoverflow so you can give yourself a meaningful name (or at least something more meaningful than user339481) and keep track of your Q&A easily. I'm sure you will have more as the process goes on.

To get to your question, software development methodology is a very VERY broad topic, so giving you an in-depth look at all of them will be nearly impossible. I would suggest that you look at things like Agile and Waterfall and SDLC (Software Development Life Cycle) for a big picture.

Positively, waterfall works best when you are dealing with well-defined static requirements that exactly match the wishes of the end user. Agile (and other iterative, dynamic methods) work best when you are dealing with reality.

Completing of the work


As a very high level overview, consider the following:

  • Collect all the requirements that you can first.

Requirements can and can change during development (especially for internal business applications, which is somewhat less for shrink wrap products), but you want to minimize this as much as possible. Try not to let your sources dictate how the app will look (they will definitely want to, so be careful) unless the particular look really impacts usability. This is almost universally not the case. There is a "best design" and it is very likely that the user has no idea what it is. Gather information about what the system should do and what the results are. Luckily for you, you probably have a lot of this information since you have an existing product.

  • Do your overall design before coding, but don't fall prey to analysis paralysis or over-engineering.

It's just as tempting to retrain a decision as to jump with a gun and start coding without a well-defined direction or goal. Keep things as simple as possible without getting in the way when it comes to future expansion. If what you write is good, you want to do it better in the future! I say this alone, but these two things are two of the hardest things in software development. The saving grace is that it is easy to make them acceptably good, it is just very difficult to make them very good. Use your judgment and don't be afraid to kick back and lay out if it looks like you're headed in the wrong direction.



  • Test your software yourself, but test it by someone who knows what they are doing

You need to rigorously test your software, but even if you are an expert on a subject in the field (in other words, it was something you wrote to make your job easier), you need more than your own eyes in doing this and testing it ... Let the people you trust do the job to help you use your software and give you feedback.

Work planning


It sounds like you want to create a UML diagram on how to write software, which I would recommend. It won't help and you will spend much more time writing this than writing software.

What can be useful, however, is a UML diagram of how the software is supposed to work. Although it depends a lot on the application you are writing (it works well in automated processing systems, where everything really consists of a series of steps performed in a loop, while it is not quite as useful for applications with a UI) but even if it is not useful for displaying the entire system, it can be great for displaying parts of it. If you choose to use UML to describe any part of your application , you must keep it up to date and accurate.... A diagram will not be useless (indeed, it will be a hindrance) if it does not reflect what is about to happen. If you've done your job correctly, this should also reflect what's actually happening!

Closing ...


I'm not sure how much I helped you here, but hopefully this provides you with some useful information. If you have more specific questions, then take advantage of the more knowledge we have here on SO: find your question, then post it if no one has thought to ask it yet. There are many knowledgeable people here, including people who work in the Microsoft C # team and others who write books about this stuff for life. You will find no shortage of answers to everything you can think of.

Good luck!

+1


a source







All Articles