Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
We (a group of 4 students) are planning to create a web-app on Ruby on Rails. I have done some web app projects in the past and one thing I have learned is the initial time devoted to design the app, which was very less, I just start coding with some basic things in my mind.
So, this time, I don't want to do the same mistake and want to plan the app (high level design). But again, sometimes I feel it might be an overkill for a student project which might span for 6 months.
So, what should be the best approach in this case?
My reqs are:
A plan which guides us through the development.
Should the plan be a text doc, a block diagram or what?
Should be clean, crisp and concise.
Would be great if you point me to some sample doc, template etc. Which is not an overkill but effective.
Start making a clone for stackoverflow. Dont go for a full deep functionality for initial stage.
Divide the whole functionality in 4-5 different phases.
Decide your phases.
You can use basecamphq(30 days free) or Fogbugz for planing, to-dos and lighthouse for bug tracking.
EDIT
Just think about the basic minimal functionality SO has:--
Sign-up. (Normal + open-id)
Ask a question, answer a question
Comments on question and answer
Votes on question and answer
tag a question
Question stats like question views, Unanswered question etc
Points
Badges etc
Make a list and divide them in various phases. Don't try to make exact thing in one go. Just start from basic things.
Like for the first phase.
Sign up
Ask question, with tags
answer a question
comments on them
Basic profile page.
For next phase:--
Add ajax for comments (Good for learning ajax)
Votes, Not points
Add things like Unanswered questions. (initial dont try to find the logic how SO is listing unanswered questions, Just do something like unanswered questions means question having no answer.)
Question views
then next phase and next phase. and finally you have a clone. :-)
Ask Jeff to review it. (Kidding)
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
From what I can tell from online forums and posts, one of the main focuses of BDD/ATDD seems to be on discussion and ensuring that the customer, developers, testers and other relevant parties are involved in the understanding what the system must do.
Question 1: Do BDD/ATDD stories replace the need for traditional requirement specifications, such as the those captured using the Volere Template?
Because the traditional requirement specifications are one of the key inputs for developers and testers, traditional requirement specifications tend to be comprehensive.
Question 2: Should BDD/ATDD stories also be comprehensive enough to allow a system to be fully tested?
Question 1: Instead of looking at this question as a black-and-white situation, we should better understand how these two requirements capture methods get along with each other. Writing a story in the BDD/ATDD methodologies, or in Scrum for example, does not imply removing the templates like volere off the table. If we take a look at the volere requirements specification here, we can see that most of the information regards to project-related issues, and the shell used for functional requirements is far from being different to a story. They just have different information, not exclusive one.
Question 2: Here we have the advantage coming from the methodology itself. BDD comes from TDD, we can more or less rely on the test-first oriented process to allow the team to test the system. But, as I mentioned in question 1, making a BDD/ATDD story more comprehensive is not a sin, and wouldn't compromise the general idea of the story. This would also prove useful when interacting with more experienced clients.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
You can find thousands of questions out there about how you develop software and which methodology is the best one. But mainly these are targeting medium to large teams, with people having different roles and responsibilities.
What I'm interested in is what methodology are you using for your one-man-shows? What steps are you doing, what documents are you creating to get the things you want to develop clear and document it well, to share it with the community?
Especially, I’m interested in the following questions:
_Are you using a structured approach even you’re developing on your own or no at all?
_What phases are you using?
_Which documents are you writing before and after coding?
And if you have “your” standardized approach, can you share templates which you are using?
Thanks in advance,
cheers
Gerry
Personally I think it is a matter of making decisions when it comes to the development process (solo). In my case I wouldn't recommend setting up a massive development process but I would pick elements which prevent problems that I have earlier had. My approach for small applications (in the right order):
Always write down what you are going to make and what you are not going to make (define a scope) - Think of functional requirements (Functional Design)
(OO only) Make a class diagram that displays relations between classes. (Technical Design - Sequence diagrams, while usefull, take up massive amounts of time to make)
Write your program according to what you have just written down (or part of it).
Refactor and redesign your application (once in every X hours, write this one down)
Repeat step 3 to 4 until the result is what you wrote in the Functional Design.
Walk through every corner of your application to find every single path and write this down in a testdocument. Identify possible problems in the paths and test them.
When it comes to big applications however (or assignments for someone else) I prefer using the "medium to large teams" approach. Which almost brings a guarantee that you will not be meeting most problems.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
For me to understand the rails project is not enough to see the model or controller diagrams and how many attributes and actions they're having. I understand more if I know where actions are initialized and how they ended. To describe my thoughts more specifically I'll show some example. Let's take nice open project Railscasts. I chose the Comment controller because it nested inside others controllers then it's a little harder to understand how this works. Here's my picture that helps me to understand it.
This isn't well composed diagram but fine for me. On this picture you can see where action is started and what's the reaction on action. The action edit initiates in views/episodes/show.html.erb, comes to controller's action edit, after that shows the edit form, then go to update action and finally go back to show.html.erb. From this picture you can see that a lot of actions initiate in show.html.erb that belongs to episode controller and makes harder to understand how works the comments controller. Now you can easy find place where is action comes.
Here is my questions:
Do you think this idea is useful for you, can make your developer's life easier ?
Do you know some tool that can make such kind of pictures automatically ?
This is quite argumentative, but answering to question 1 :), I have to say that your diagram has a huge noise/signal ratio.
Your diagram only talks me about routing which honestly in a mid-sized scenario is not so complicated to need a diagram. And does it pushing a lot of noise (why I need to see the class of a destroy link?)
Rails is a lot about conventions and to be honest I don't feel the routing mechanism to be so complicated to need a diagram. Just my 2 cents.
To Question 2: I often find RubyMine model diagram to be quite useful, but I think you need a more 'dynamic' view of the project.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm having a difficult time retaining the programming skills I'm actively trying to learn in an effort to apply for a junior developer position.
What I'm finding is that I can easily master isolated topics (for example, details about how Java's Container classes work and the different ways to sort a given container), but I find that when I move on to new topics I forget maybe 80% of what I learned (a few months down the road).
Sure, with good notes, I can get back up to speed much more quickly, but my question to those of you who are already in the professional field - is this common (this constant need to re-learn things you once felt you'd never forget)? If so, how do you get around it? Should I accept that I'll probably only be an expert in the narrow domain that I currently use on a day to day basis?
My father always said:
You don't need to know everything, you
only need to know where to look it up
(roughly translated).
Going with your example, if you find you need to sort a collection very often you will remember after you've done it a few times, if you don't do it for a long time you will forget it again. That's perfectly normal imo.
So what I'm trying to say is there is no point in knowing stuff off the top of your head if you don't use it anyway as long as you know where you can look it up if you need it again.
I hope that made sense.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
The single most effective thing I have done to improve my soft skills is to take an acting class.
What is the single most effective thing you have done to improve your soft skills?
Related questions:
What is the single most effective
thing that you have done to improve
your programming skills?
Advice
to improve programmer communication
skills
Better appreciating just quite how dumb I really am.
Starting from the perspective of assuming that you're misunderstanding what's going on helps a lot.
Started answering questions here - the ability to explain complex things in a way other people can understand them is very useful.
Not to be a smart-arse. People don't like smart-arses.
If you think you are right and everyone else is sure you are wrong, just agree and continue being right. Trying to argue it out just results in a negative outcome when people are not open to persuasion or are being stubborn.
The best way to improve your soft skills is to use your soft skills. Put on a lunch time seminar for your fellow work mates. Nothing too scary, just pick a technology that you think could be introduced in house to make things work more efficiently, put together a five minute presentation and set some time aside for questions and discussion afterwards. You might even start a trend, one day a week a different person can talk about something that interests them.
It's a tie between volunteering as newsletter editor for a local artists' group, and joining a small local theatrical dance group.
A few years ago I attended a workshop about communication. And one thing that I learned there and I will never forget was: Try to understand why people act as they act, try to understand their motivation doing things as they do. That helped me a lot, especially in managing the management...
I took a teaching course and have been doing a lot of teaching.
Where I work currently has some material about improving one's Emotional Intelligence which is something that has been quite beneficial for me as it helps demystify some of how the world works.
In terms of not learning something, working on making small talk and being a bit more laid back has also improved my skills as not everyone wants every little thing analyzed to death and beyond.