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 5 years ago.
Improve this question
In a continuous integration, agile environment, if I make a change in class A (e.g. change attribute names) which I have created and have been working on, that affects class B, which "belongs" to someone else, who modifies class B whenever I want to check in my change? Me or the class' B owner?
I suppose is more agile if I modify it, so that I don't have to notify other people, but at the same time, people working on it are more aware of the impact of modifying it...
In an agile environment, class B (like all classes) belongs to the team. We call this Shared Code Ownership. You should check in working code; if that means you need to adjust class B to conform to the changes you make to class A - adjust! Better yet, pair.
"Individuals and interactions over process and tools." Communicate the change upfront with the other people impacted. Unless the code is trivial, you may not understand the full impact of the change. Even if you do, you owe it to your other teammates to keep them informed.
"Don't break the build." Checking code in that you know will break the build is not a good idea. Once you have communicated with the others that are impacted, work with them to get the code changes completed. Attempt to get the code changes checked in so at least the nightly build is not broken.
Just my opinion....
Bob
who modifies class B whenever I want to check in my change? Me or the class' B owner?
With no disrespect, I think your question is so basic that it clearly suggests that you do not have even basic understanding of what being Agile means. Well, maybe that's why you asked this question.
Here are my suggestions:
In this kind of situation you really should walk up to the other developer who might be impacted by your change and have a quick face to face conversation about this, this quick conversation may lead to you guys pair programming to make sure the build does not break, and no one gets affected.
Please read all the Agile Principles again, and write down what you understand from each one of it. Implement those principles in your day to day development life. This is the only way to become Agile. There is no certification or book to refer to, to make someone Agile magically. Being Agile has to be self realized, hence practice them daily till they become a habit.
So the "Information" is conveyed using the most effective method i.e. f2f conversation. The problem is solved on the basis of the collective responsibility principle, most ideal way to fix it is pair programming.
Reference:
Agile principle
"The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation."
Also a general Agile Guideline from the manifesto:
"Responding to change over following a plan"
Agile includes team code ownership, communication
As #Carl Manaster said, the code belongs to the team. And as #rcravens suggests, agile is about communication. Have a quick meeting with the author of B and let them know your proposed changed to be sure you understand your impact. If it's complex, pair with B's author on the change. When the change is complete, if you think it might affect other developers on the team, call a brief team meeting and let them know of the change.
By the way, how's your design?
Your question may aslo be revealing a design issue - A and B might be too tightly coupled. After your tests work and you've implemented the change, I suggest that you examine your code and see if something needs refactoring. (Remember, TDD is Red/Green/Refactor) In particular, if changing class A means you have to change class B, then you might not be following the Single Responsibility Principle (SRP) arm of SOLID practice.
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.
Closed 11 years ago.
What's your opinion of the following job interview question?
In the requirement it never mentions about to have classic ASP experience.
But the question is "What are the differences between ADO.NET DataSet and ADO Record Set?".
I'm not an asp programmer, but since you've asked for opinions, here's one from Joel
Just for fun, here is the worst interview question on Earth: "What's the difference between varchar and varchar2 in Oracle 8i?" This is a terrible question. There is no possible, imaginable correlation between people that know that particular piece of useless trivia and people that Fog Creek wants to hire. Who cares what the difference is? You can find out online in about 15 seconds!
This is my favourite answer to these questions:
I'm sorry I don't know that; but
give me 5mins and Google I'll find
out for you.
I'd say it's a fine interview question.
Active Server Pages (ASP) != ActiveX Data Objects (ADO)
Some people ask what they know - and if you know it too maybe they like you :)
Well, they can even ask you whatever they want. About Perl, Python and Ruby, it is an Interview, they might be measuring your knowledge in other languages (if you heard about them, or if you know why .NET is better/worst).
The important thing in an interview is that you answer the questions to the best of your abilities, so what's my opinion, if you don't know then just say you don't know about ADO Record Set, but you list the benefits/features of a .NET DataSet
The best thing I've found in an interview if you don't know the answer to something is not sit quietly and then try and blag it. Be up front, say you don't know, but if you'd hazzard a guess then it would be insert educated guess here. The interviewer will appriciate the honesty, not everyone knows everything. People want to see confidence but also humility :-)
I'd say it's fairly pointless these days. Anyone who doesn't know probably just hasn't worked with old applications. All the ADO functionality has been out of date for about a decade now and there are some fine devs with years of experience that will just never have seen ADO.
I've hired a lot, and the difference between the really excellent candidates and the average ones is not what obscure things they know now, but what they can go pick up quickly when they need to.
In short a really good developer might answer this with: "I've never worked with ADO, but I could go find out", which isn't that useful for you as interviewer.
A more useful question would be
In what circumstances is it better to use a DataSet rather than iterate the rows of a table?
That way you get the important stuff - actual usage and technology application. They could answer in the context of Linq or a SqlDataReader or any other tech that they've worked with. What you get is what they understand and know how to use, not what they could Google in a few seconds anyway.
Probably they have some legacy code using the pre .NET version of ADO, and are testing to see if you have some knowledge of it.
I think knowing about the differences between ADO and ADO.Net is probably very useful in some positions.
If you've never done any classic ADO then you should probably just say so at the interview and move on to the next question.
Awful question if their goal is to test your capability as an engineer.
Reasonable question if your resume claimed you are both an ASP and ASP.NET guru, and they just want to see if you're telling the truth.
Of course if you work for a big corporate firm, they are more likely to just build their own DAL from scratch and use stored procedures instead of..........well, this.
I've asked a similar question at an interview although it was probably a bit more high level. I asked the candidate what he liked better about Java and what he liked better about C++. This was not some sort of "standard question" The candidate in question, in his resume and the interview up to then stated experience with both. I asked the question for two reasons. To check that the candidate actually has the knowledge he states (which could be a valid reason for the question on the ADO data/record sets). The second reason is to have the candidate show a degree of reflection and ownership of his tools.
In short, the appropriateness of the question is dependent on the profile of the candidate. If the candidate stated knowledge of both, let the candidate show his understanding. If this knowledge is critical to the job, same.
I'm wondering building a website like StackOverFlow (approximately the same features using ASP.NET ) How much Work-power and time does it take in your opinion .
My boss has asked me to estimate for work-power , time , cost and suitable technologies .
I appreciate any direction .
I believe that the site would take plenty of time to implement. If I'd have to pull a guess of thin air I'd say somewhere between 800-1200 man hours.
Then comes the setting up servers, ensuring scalability, testing, fine-tuning algorithms.
So depending on how good you or your team is it could take anywhere up to a year to write something like this.
Disclaimer: I am just talking based on 10 years of experience with web-development. But I could be COMPLETELY wrong.
Buddy, there is a website similar to this called http://startups.com
You can probably ask this question there. Its specifically designed to answer questions like this. Whereas stackoverflow is intended for programmers and programming related questions. I see this question being asked here a bit isolated.
People come to this site and think wow stackoverflow this is an easy site to create.
I mean all it is is post a question then people submit an answer. I think that is a big misconception. Maybe just maybe the database is quite simple, a question has multiple answers and an answer has multiple comments associate with it. If you dig deep into it the questions and answers could actually be stored in the same table...with some indicator as to whether it is a question or an answer. But to answer your question, I don't think it is as simple as one might think. It's definitely not difficult in the logical sense (it's doable). What I am saying is it is more then a one week job :).
it is not that hard to do the site. the design is nice but simple. the engine isint THAT complicated (or so it looks). biggest problem is the load that falls on this site and the hard task of moderating/maintaining it. and the best part of it is the idea ;)
I think that the diffuclt of stackoverflow is to get community (very good quality community, not like yahoo answers).
Not only that, also use cases from stack overflow are pretty cool and adapt very well to get a good community.
About work-power a good skilled programmer could start it, if at full time like a month or less could do it. BUT! the programmer should have the idea,not a freelance or something like that, freelance or slave monkey coder could take a more time to do it.
But there are more problems, like money to invest at very begin of the app for example in hosting / server power costs.
Also stack overflow, could be compared to forums...its like a forum evoled or something similar.
Someone said that requires a lot of work power, I disagree if you start something to get the best scability,etcs (like project of big scale) you are going to death of that project.
Start something simple, very simple when there are scability problems start with that but no at begin!
Probably longer than you expect:
Code: It's Trivial (by Jeff Atwood)
Let's say I've come up with what I think is a clean and elegant solution to a common generic requirement in coding projects. I'm happy to share my code but my main motivation for publishing it would be to get feedback from a quality audience about my solution and to determine if it has been done better elsewhere, if it could be done better, if it is buggy, etc. The normal sorts of reasons a programmer would want feedback for.
The Code Project - ugly forum/comment interface and a serious pain when you want to update the article after it has been categorised. Can also be horribly slow at times.
CodePlex - not really a general code community; people would have to know what they're looking for in advance to find my code.
It would be fantastic if something like a simplified version of The Code Project were produced by the Stack Overflow team with a view to allow users to show off pieces of code and get feedback, thus leading to general skills improvement of everyone participating. A bit like Scott Hanselman's Weekly Source Code blog posts, but with more of a communal purpose. In the mean time, however, what do you suggest?
It would be fantastic if something like a simplified version of The Code Project were produced by the Stack Overflow team with a view to allow users to show off pieces of code and get feedback, thus leading to general skills improvement of everyone participating.
There's now a sister Q&A website exactly for this purpose — Code Review.
You could post your solutions here, as an answer to a question describing the problem that it proposes to solve.
You're likely to get at least a little feedback, and see other edits/version of a similar solution.
This question is not coming from a programmer. (obviously) I currently have a programmer making a website for me and I am realizing that he isn't going to completely work out.
He has already done quite a bit of work and the site is almost there but I need someone who is better to take it the rest of way. The site has been done in asp.net and I am wondering how hard it would be for a more experienced programmer to take over and finish the work he has already done?
In general, is it hard for an asp.net programmer to come in towards the end of a project and fix what needs to be fixed?
There is five different pages on the site with two overlays for a signup and sign in. (Five pages with many different versions) There is a database and client-side scripting. AJAX was also used. It's a site somewhat similar to SO only not quite as complex and about something completly different. I would say think of something that falls somewhere between Stackoverflow and Craig's List. Thats all I can say now as I don't know the technical words.
You'll probably find that the new programmer will want to rewrite most of the code from scratch. If you are on a tight deadline or tight budget and can't accept a complete rewrite then you will need to hire someone that is not just good at writing good code, but good at reading, refactoring and improving bad code. It is two completely different skillsets and the second is much rarer. Depending on the quality of the existing code (and I'm assuming here that it is not good), your new programmer may end up rewriting much of the existing codebase just to understand what is going on.
Depends on how good the previous programmer was and on the complexity of the project. It might be anything between trivial (well commented source, some high-level docs, unit tests, modular or simple project), to "this crap needs a complete rewrite" (no docs, custom "let's try this" solutions, etc.). If you're not a developer it might be really hard to tell. And other people won't be able to answer without more details.
I'm no asp.net expert, but I suspect the ease with which the replacement will be able to finish the project will depend mostly on just how bad a job the first programmer actaully did. Bad code is painful to fix in any language. :)
A good idea will be to have them work together,for say, a week or two. This will help the new programmer get some much needed training about your current system.
You may find that although the site is almost complete, the successor will have to spend more time than anticipated when performing alterations, as this person will have the mental model of the software that the current developer has. Hence the need to next developer to "re-write" the code base.
If you can, you'll want to ensure that the code base that you have built is maintainable. That is, the solution is built in such a way that it can support alterations easily. As Mark Byers suggested, you'll want to get someone who can not only program but can also re-work your existing code with the goal being that someone else will inevitably implement future changes. If the software is something that you need to keep working for an extended period you'll want to make the investment in making sure that it new functionality can be added easily.
Remember this experience described at The Daily WTF. Take appropriate precautions.
Generally if the site is set up in some sort of standard fashion then another programmer should be able to pick it up easily. if the existing programmer did things to obscure the code then it will be hard for another programmer to pick it up. Basically the question is how readable is the code?
If the current programmer is unwilling to communicate the true status of the project in a professional, non-technical manner, then give him an ultimatum - your way or the highway. Odds are he will be more forthcoming if he knows you mean business. Make sure you have a copy of the latest code before broaching the subject.
It sounds like you are going to end up hiring someone else anyway, especially if you're asking these kinds of questions at this stage, so you might as well go for broke.
As Mark Byers said, it takes a seasoned developer to take someone else's code and resist the urge to "pretty it up" in order to bring the project to a working conclusion!