pragmatic agility
Looks like a great series of articles here, I look forward to seeing how things progress.
Thanks Ben. I've been bulk posting several days at a time. Enjoy. Wayne
*Groan* :)
BuildIt : ShowUsYour-Blog!
Try Outlook2Rss at http://radio.weblogs.com/0106747/2003/02/19.html#a225
I tried to download it to take a look, but the zip file is empty. I'll give ScottH a shout to see what is up.
Ouch, my condolences :) I actually had two last year. Apparently my childhood doctor filled a cavity w/o properly cleaning it out... and when it started to hurt, they realized this and had to do a root canal!!
Writing Testable Code - Story: Retrieve RSS Feeds : Wayne Allen's Weblog
Anything to save $29.00, eh? :-) http://www.newsgator.com/
Hey, you don't even need to save $29... Check out nntp//rss - <a href='http://www.methodize.org/nntprss'>http://www.methodize.org/nntprss</a>.
Great tips for debugging services : CSharpener's Blog
Debugging onStart for a Windows Service : Loosely Coupled
Thats precisely the method I arrived at and it works really well.
Wayne Allen's Weblog
I've been putting shared libraries into the project, so that the particular version I was using at a certain time is saved into the source code control system as well as code.
I agree -- I'm a big fan of putting the shared libraries under source control in the project that references them, so that your tags and branches are actually what you had at that point. I actually go one step further, and put my tools into source control as well, so that I can pull the entire environment down if I need to (say NAnt or NUnit are upgraded in a non-trivial way, and I change my build files. I should still be able to build version 0.1.12.193 three years later, right? - I do make an exception for VS.NET, as it's friggin' huge!)
I have done two migrations from VSS to CVS. I have put all shared dlls into a top level directory (i.e, ThirdParty directory) and added a file reference in the relative project to the shared dll. We have a fully integrated build process with CruiseControl.Net, CVS, Nant and Nunit. One of the major goals of the migration was not to introduce a new build process to developers. Therefore we take advantage of using a XSLT translation of the project files to nant build files. This allows developers to add references, files, .... and the build sytem will automatically pick it up. Currently in the HEAD on nant, is a solution task that will go one step beyond the XSLT solution. This task will read solution and project files and create the correct references,dependencies and content. I have also created a "NukeSourceSafe" console app that will rid of all sourcesafe residue in a project. Dave
We use VSS, and so have all the companies I've worked with (which were all small-medium size so far). What about Rational? Don't they have ClearQuest? or was it ClearCase? I get mixed up..
I use VSS. It works for us rather well, it takes a while to setup correctly and learn the caveats and also the functionality which really makes it a good source control system, but after that it's ok. CVS on the other hand is hell on earth if you ask me. I tried to work with it on sourceforge for a while when I had a project located there, but it's too much of a burden to work with. You can't even rename files. I heared borland's tool is pretty good, but I don't know if they sell it as a separate product.
http://www.sourcegear.com/vault/index.asp SourceGear's Vault looks like a pretty nice solution, all built with SQL Server & C#
In terms of staying with a familiar environment, and not having to go through too much of a learning curve, you would be hard pressed to go past Vault. CVS is fine though, it just takes a bit of time to get your head around it coming from VSS. There is a Windows version of the server at www.cvsnt.org which is great too. The great thing with CVS (and Subversion) is the Tortoise tools ( www.tortoisecvs.org ). Tortoise is the most useful interface for source control I have ever used. Also, on the CVSNT site, there are some links to scripts to port over your existing VSS repository.
Currently we are using VSS and it works well for some things and not for others. Actually I should say the VSS integration with VS.NET doesn't work well on branched projects (it trys to reattach to the original project). We could turn off the integration, but since there isn't a TortoiseVSS I'd hate to go to the VSS UI for everything. Also we live in fear that the VSS database will corrupt and we'll lose a day or so worth of work.
We use Telelogic CM Synergy it is a nice product (also integrated into the Bug tracking System called CS) It has trouble with mainting Web Projects which also have databse components, but so does VSS Another thing missing is integration with our dev IDE (Visual Studio) but it works great and supports every Version Control Feature I can think of.
SBC DotNet Weblog
Good posting Wayne. See my response in my weblog - http://dotnetweblogs.com/sbchatterjee/posts/6900.aspx SBC
"Failure being defined as over budget, delivered late or both." Wayne: I disagree with that definition of "failure." A project completed late or over budget (within reason) may actually be hugely successful: What if it generates vast amounts of revenue, or creates a community of enthusiastic, satisfied users? Defining "success" solely in terms of schedule or budget is short-sighted and narrow-minded, IMO.
We need to exactly mirror sourcesafe structure in visual studio , rather we want to see the same folder hirarchy in both . Is there a way to do it. Thanks
I also disagree with the definition, I'm just pointing out that this definition is questionable and if we apply it to other industries software doesn't look that bad.
How many QA people? Can you split them, pull a couple of the QA people into the dev team and have them do the stuff that you describe in the 1 team scenario and then have a dedicated QA teamdoing all the stuff you describe in the 2 team scenario. Rotate the QA people from the dev team back into the main QA team from time to time. Maybe have new devs work with the QAs on the dev team whilst they're getting up to speed so they appreciate the need for solid code...
I'm finding that more and more of my 'application' code actually lives in a library and the application itself just wires the objects together and sets it going... Obviously easier if the app doesnt have a gui... Anyway, I find it makes for much more testable code.
Dewayne Mikkelson and his Radio WebDog, Shadow: Thursday, July 17, 2003
Java Extreme Programming Cookbook... Great book, and 95% of it translates to .NET
This is very similar to the User Experience role cluster in the Microsoft Solutions Framework.
Great! Looking forward to updates from your group (which I see you already posted one).
www.merant.com They have a collection of tools they are integrating - configuration and change management, requirements and defect tracking, etc. Main Product is Dimensions, they're going away from the name of the previous product PVCS.
Welcome aboard to the Vault world! I am currently working with Eric (and a few others) on implementing a continuous integration tool similar to Draco.Net for SourceSafe. Details to follow.
I have worked on buildIt , I hve tested it with the small solutions having one or two projects. Now I m testing it on a solution having multiple Project templates and these in turn have multiple projects(There are 4 setup projects included in this solution).As I execute the buildIt.bat file it takes around half hour and the command prompt hangs doing nothing and finally it dislpays a message that the Debug version failed.When I build it manually it goes fine.I need some help regarding this if someone can do it.
Sorry, I can't really help you. I don't actually us BuiltIt as we have standardized on Draco.NET. You might want to give it a try. http://draconet.sourceforge.net/ Wayne
Yup - +1. These 'huge features' don't really sound like a compelling selling point for VSS, do they? Solving VSS' problems will go a lot deeper than tacking on Unicode support.
Thanks for the update. I have not tried the migration tool, as I used Vault early enough in a project without having to deal with that.
I used Together extensively when I designed J2EE based apps in a large development team...however...the theory that it is faster and creates better apps by using that model is just not true (in my experience). What is does do is let the process be more transparent - so if you have a huge development team who otherwise don't communicate all that much, then, yes it is valuable. For quick, small projects such as the ones I currently work on, it is simply overkill.
I have a vision.... a diagram like a visio flowchart that is based on the .Net CodeDOM model.... one model, a GUI that shows the flow and loop / branch structure, a top-lelvel "Class / Type / UML " thing with the list of publics and so on.... the GUI shows a "Block" as a "BLOCK" so that if a While Loop has 50-60 lines in it I just see While (Cond) -- BLOCK and I can click on BLOCK to see the details and I can set a Level Of Detail that controlls how much the display is visualy drilling down past the current level.... like an interactive exploding diagram of my code... and when you debug.... you can "Desk Check" the "Flow Chart" visualy :-) IMHO we are able to do it now.... just need time and cash to write the VS plugin :-)
If Visio's UML integration didn't suck or XDE wasn't ungodly expensive, maybe I would. I believe very strongly in good design, but I find working with Visio to be very painful (at least for UML... database diagrams aren't too bad in Visio, since I get a two way sync). I'd rather use a piece of paper for my diagrams and hand code my interfaces.
Supposedly Microsoft is moving to Model-Driven Architecture, with roundtrip engineering, in future versions of VS.NET. If so, I would definitely model more in UML. Right now, though, Visio is indeed to painful to use with UML, except for reverse engineering to satisfy the documentation nazis.
Good suggestion but I would like to extend further than just the appSettings node. I am working on an post build component to do this but that does VB.NET people no good.
Blah, I'm surprised you could find your way around my code at all. :) I'm putting together an article for how to use our tasks to piece together an integrated build solution using NAnt, our tasks, and Vault. I hope to have it done today -- especially with the incredible increase in traffic on Vault List. One day I will finish this huge project at work and have much more time again to work on stuff like this. :) --Brian
The way how Vault handles labels during migration prevented us to consider move at present. Lets wait if next version with vss style labels will improve.
Interesting subject... I won't be able to attend, but I'd be interested in seeing any presentation material on the subject.
Just came across this while wandering about the internet, if your using any source control it'd look like a good alternative to the problem. http://www.bistrotech.net/weblog/default.aspx?date=2003-09-29 Regards, Alan
Great solution and good reference, thanks Alan.
This is actually the same behavior VB6 modules had, but apparently most VB6 developers never realized this since they worked primarily with Windows apps that serviced only one user at a time. I actually had a hard time tracking down an error in VB6 that resulted from this one time that a predecessor had did. Anyhow, this comes up often in the various forums, so its a rather significant stumbling block in ASP.NET for VB developers.
Yes - management is always the problem. It is because our industry is immature - unlike oil, others most managers did not grow up through the engineering ranks.
Big Call...
How long ago was the code written? Personally, I have discovered that code even I have written perhaps 3-4 years prior often seems crusty when I look at it again. Then again, SOME of my code does hold up, and as I see that, I try to jump onto whatever seems to have caused that code to continue to look OK even years later.
Also, I do concur that programmers who are good are often those who are driven to learn and grow. How many programming related books have they read in the last year? Do they have a development setup at home?
>How long ago was the code written? I agree with your comments, but I am talking about freshly minted code, version 1.0 and all that good stuff. And still the code smells to high heavens.
I quit. Not long before I handed in my resignation ( 3 more work days, and then I start the new job), I said to the new Architect/Manager and Buisness Manager. "Do you know what the difference between me and them is? Last night they were watching the new extended version of Lord of The Rings and I was writing code." My old code sucks (most good programmers will agree that their old code sucks), but it can be fixed, by me or by you, without trouble. There are a lot of people who write code because it is their job. Programming is my craft. It isn't about willingness, it is about hunger.
I experience these same things in our corporate environment. To change this I have started offering my services as a consulting-basis to other teams on an as needed basis. I offer to look over what they are doing or planning and offering my advice. Of course I can't force them to follow it but it does help. Just recently I caught an application going into production that used web services to get all the data it needs. Reason being, just because they could. There was no business need behind it other than they thought it would allow the application span to grow easier. Considering our target audience will be .NET developers there was no need for this. So I suggested they build the business services API for the data access and if in the future we need this data exposed to non.NET platforms or external vendors we can use the API objects to create the web services ... they decided that would be the better way to go. (I only got wind of this because our NT admin team was haivng trouble configuring the web services to work in our environment and I'm the go to guy for all .NET issues in the end) Just one simple example of success. Now one of a failure. We are implementing MSMQ messaging to transport MAINFRAME data to our RDBMs (informix among many) well the MAINFRAME guy that understands a little bit of Win32 environment started setting up MSMQ and wrote the entire communication API without my input ... they didn't do to bad but its still not good .. they won't take any advice on how to code the protocol handling ...its very limited currently and I'm just glad I don't have to use it ... well to get messages around they were planning on using triggering in MSMQ to run instances of programs to process queues ... this is ok but there are some huge downfalls considering we will have thousands of queues with thousands of programs processing them ... the maintanence is going to be huge ... I suggested windows services - 50 lines of code to get one up and running (and installed) ... but they can't see the benefit or are afraid to take the unknown route. I told them that would be better (at the time never having written the code, 30 minutes later I had simple proof of concept) ... they still seem to be pushing me off And the only reason I ever got wind of this? Because they were having security issues and no one really understood the architecture of the infrastructure for the messaging api's ... In my honest opinion our developers are shooting themselves by having too much pride and not coming to someone who is more knowledgable in areas of architecture (especially in correlation to .NET) than they are... I'm not saying I'm a master, but I am at this company ... things are better I convinced them to use VSS and start a weekly training meeting that is optional for learning new techniques and tricks ... addressing issuess ... it has worked pretty good ... except for where they would follow an article in gartner rather than take real-life advice from people who have had experience in this new world (to them). Ok enough rant, that's just me but I'm sure the same scenario is out there ... :) So sadly I can't change jobs and expect to outrun this environment ... there are those who are just there 8-5 and not a second more because it is their job ... on the weekends they spend going out with friends i'm at home reading new articles trying out ideas ... learning ... not because i'm better than them in all things but i have the drive to progress ... the feeling of not yet reaching my maximum potential ...
Just for arguments sake, it *can* be done pixel perfect. Make each page a jpg or gif image! lol
Yes I get this all the time. My current role is pretty much making sure the development teams do things that make sense. We also do code inspections. This is not ideal as it's usually too late in the process to have them change their code. Basically I think it comes down to someone's attitute to learning. If they are not interested in learning, then they won't be good programmers!!
A good company with few layers. Only 2 layers between "Consultant" and "Principal." I work in a consulting company. :)
I would agree that management makes all the difference in the world... Since you know where I work, I think you would agree that our management makes it very easy to enjoy working there...
<disclaimer> I don't know ANYONE posting comments in this section (to my knowledge, anyone can be anyone else on the internet) So I don't know if you can back up your claims of greatness or not. </disclaimer> But you always have to be careful if you think you are a big dog because there is always a bigger dog. I've been coding for around 10 years, playing with computers since acoustic modems were new, probably just a pup compared to some people posting comments here. I've dealt with a lot of prima donna coders, some I was more skilled than, some less. Most coders will always think that they are a better coder than someone else, or that they KNEW the correct way to write an object or method or function. Sometimes there is a better way to do it, sometimes it's just different. Every good programmer I know always thinks they can tweak a little more performance or make a block of code more elegant. I've written code I'm not proud of and that I think I could architect better, hell I'm writing some at my job now. But it's getting the job done and my deadline is "yesterday". You may think the code stinks to high heaven, but it may get the job done. And whether or not you are coding for fun or for a paycheck, at the end of the job you have to SHIP.
Hahahahaha
SHIP !! That's just the sort of attitude that is at the root of the problem. What a terrible reply !
There is always a bigger dog, and the code can always be better. I'm going somewhere where I wont be the big dog, just one of the medium dogs. This is good, because I realy am a medium dog (with the potential to grow). I know more today than I did at the start of the day yesterday. I didn't know the best way to do it, but when you look at what I did, you will say "he did this because he wasn't aware of the ABC123 pattern". Shiping the product is not really the end of the project, you also have to fix the bugs when they come in.
The failure of every project I have been on can be traced to poor management. In only once case was the technical aspects so poor as to cause failure (but the project failed because of management before we got to that technical failure point).
>But you always have to be careful if you think you are a big dog because there is always a bigger dog. I don't think I claimed to be a "big dog", but I will claim that I have lots of experience and can tell the difference between good and bad code. > I've written code I'm not proud of and that I think I could architect better... Agreed, but why do we do that to ourselves? Someone will have to fix/change it eventually. We coders give ourselves bad reputations when we let management bully us into more and more features with less and less time. Coding crap just to get it done is not the right solution in my view.
no, that still won't work ... if it's just a JPG or GIF, you still have the margin issue
My big experience with lazy programmers is that I've worked with LAZY PEOPLE, employed as progammers. They wouldn't want the endless paperwork, support calls, forced social interaction and mundane manual processing that lousy apps deliver, so they'd bust their butts on building something really solid. (Of course, I'm assuming such is a rarity.) Another true lazy programmer I supervised a few years back lent his own scruples into hs design - specifically, being wayy too lax with minor details. On a web project, when we had to store files in a folder, he'd think this was below him and just randomly hit 29 keys on the keyboard without looking, to generate some stupid name for a subdirectory that neither myself, nor he, could find.
I added unit tests to my data access layer, mainly to get notified when the DBAs would surrepititiously change parts of the data model and not notify us. It worked great. After it was installed they would get beat up in the project status meetings instead of me. :)
xyz, You are absolutely right - "SHIP!" is a terrible attitude. The problem is that it's the attitude of many managers. How many programmers are eager to cut corners and release stuff before it's done? Not many, I'd bet - they are the ones who'll have to deal with all the bug reports, after all. In my experience, programmers cut corners and write sloppy code because they are struggling to meet unreasonable deadlines set by incompetent managers. It's a sad fact of life, but you aren't going to get anywhere by blaming the programmers in this situation.
I once worked massive hours of OT on a project. 5 weeks of 6-day a week work followed by 6 weeks of 7-days a week, followed by 2 days off for Thanksgiving, followed by more 6 and 7 days weeks, up to and including missing the company Christmas party because I was at the client's office until after 9 pm that Saturday night. The carrot for me was a large bonus that was coming at Christmas and had been promised for over 6 months. The bonus never came but excuses were given for about a year for why. After that, the bonus magically turned from "just not possible" to "never promised". needless to say, I didn't stay with the company very long after that. It has been hard for me to trust anyone regarding money after that.
Have you looked at writing acceptance tests before implementing the story? I know at least one project at Thoughtworks is doing this, and we're trying to get at least some form of acceptance-driven development going on our project. It can start off with simple scripts hand-written by testers, then these can be automated when people get pissed off enough with a manual process. One big problem for us is that good acceptance-level testing tools for .Net are very thin on the ground. We have yet to find a decent solution to fully automated GUI testing, for example. Jim
In this project the acceptance tests are written either before the story is started, or at the beginning of the iteration. We had a full testing team that was doing their best to figure out agile testing.
RE: GUI Testing We were using Rational Robot and some custom built tools. We didn't use them for acceptance testing, but rather as a smoke test.
Trust is a big issue. I worked on one project where our team trusted management (the technical side of mgmt, anyway), and everyone on the team worked their butts off, willingly. Then, through a series of mismanagement actions, we became aware of how our technical managers acted under pressure. Basically they caved in and kept asking us to give more and more. So we gave less and less as the trust eroded. And, due to a convenient reorganization, no bonuses were handed out. Needless to say, I eventually left the company. But not before having them pay for all my certifications and a bunch of technical books!
Too often this "motivation" is needed to solve the following situation. [rant] 1. We told you it wouldn't happen 2. You promised the client it would happen. 3. We have done what we said could be done, but you never told us that you promised the client what we said couldn't be done. 4. You are blaming us, and you need us to pull your ass out of the fire. [/rant] Trust is a big issue, and the "motivator" person is not really on the same team as the rest. The task will often be given to the least useful, least respected person on the project.
I've just been through a situation which was very similar. A tender requiring a response came out from a customer a week prior to Xmas. We had 7 days to respond (including the weekend). Some members of the "team" said "I do not work weekends." Others said "Let's get it done, whatever it takes." Some said "I'm not working while I'm on leave." Others said "I'll postpone my leave a week" or "hey if you only need an hour of my time, to go over a document, no problems". Why the difference? I can't tell. I think it is an internal thing. When money and prestige aren't involved, people just do things because of how they are wired. I haven't worked with many people who can motivate others to do what they do not want to do. All you can do is give people reasons to do something they may not have thought of by themselves. BTW, I have twins and young twins at home is a reason to work LONGER hours, believe me. :-)
No-one seems to have mentioned the thing which probably gets a lot of us out of bed in the morning - a love for what we do. I work as a developer because I'm passionate about developing. That's my motivation. Put me in a job as, say, an accountant, and my motivation for doing that job would be very different. I might still try to do a good job for the sake of personal pride, or the promise of more money, but I wouldn't be passionate about it. Love is the answer :-)
Early in my career, I would "sign up" for lots of stupid overtime, crunches, pushes to make the date. I postponed vacations, dates, and all kinds of other social events to "give my all" to the project. One day, I realized that working all that overtime just made me stupid and that I couldn't save the project. Now, when a manager thinks that the answer to the project being in trouble is to add more hours, I ask him/her to think instead about what they can remove from the project to meet the deadline. The project can't complete as originally promised, so stop trying to make it that way. Instead, work like the devil (during the normal work week) to complete what you can. Sometimes my clients even do what I suggest :-)
Spot on! There are way too many of the “Programming as a Job” developers around. I think the fact that so many people in this industry refuse to improve themselves outside of the 9-5 workweek cycle is a major hurdle to creating quality software. In a field that moves as fast as this, one simply cannot afford to stop learning. I look at what I did last year and I realize that it was not the best work I could have produced, BUT I have not stopped reading and learning and I am getting better every day. The best motivator I have seen for developers is success. Even if the creation of an application has some rocky times, all is forgotten when the product ships. I look back at the times I felt happy to work in a company and they all center around having successfully delivered a quality product on time.
Well, I have come across this most disturbing phenomena and must say it is driving me insane. I am trying to create a set of "globally" accessible variables from within a page, and any user controls it contains without having to pass the variables back and forth betweent the calling page and the user controls each time. Any Ideas as to how to make this happen, as using the public keyword seems to automatically make them static no matter what I say and screws up my pages between requests.
Global variables...What a subject! I'm currently working in VB6. I'm sure that there are times when a global var is better, easier to use than a local var that must be passed from one procedure to another to another...What a mess. When I find that I'm on my 5th proc or so I usually declare the var globally. I name the vars with gl prefix (global, long) so I know what I've done. Rather than "Don't do it." I'm looking for instances when global vars are best.
> thus testing the domain layer as a result This domain layer is limited by the UI, where FIT would not. Useful if testers want an alternate arena to test (compare?) limits in there own creative (tabular?) space, but not if they're simply looking for system validation. I agree that FIT's an augment not a replacement.
Bad code is due to a couple of reasons... 1) There are sloppy and lazy programmers out there who are just bored or otherwise uninterested in there jobs. Why can some mechanics fix that noise when others can't? 2) MANAGERS and unreasonable DEADLINES. I dont know about any of you but I am never done with a project. I am picking through code up untill the very end, and even then it is never done to my liking!
Any chance of posting a binary for this project? I have added myself to the project and grabbed the source from CVS but piecing together the references and dependencies without a project file is a little tough. Nice to see this work is progressing! Well done.
http://www.sqldata.com/soapclient/soapclient30.htm
Most people write bad code for several reasons -- be it a bad design, insufficient knowledge, boredom, or plain simple stupidity. However, from what I have seen, programmers who think through the problem before writing even a single line of code, code better on an average. Also, programmers who can think of programming without associating it with a language do write better code. These are the folks that think in terms of algorithms before thinking in terms of code.
The source has been updated. See http://weblogs.asp.net/wallen/archive/2004/03/10/87421.aspx
If you're looking for updated Vault tasks, go visit Brian's site. He has Vault tasks that work with Vault 1.x and 2.x and NAnt 0.82-0.85. They're available here: http://www.schkerke.com/nanttasks.html Also, if you're interested in Draco.Net integration, I have some code to integrate Vault w/ Draco.
Very interesting experience report Wayne. You should consider turning this into an article.
I am working in a big company, with lots of projects. When the job is handed out, the deadline is also a few day's or a week. The people who handled the projects must finished it but the boss is never around.. The day when promotions is in line the people who support the company the most is not in line for promotion. You can checked it, 95% it is people who stayed away, 2 time's a week on sick leave. Thank You very much
Thank you. I find this very userful.
I love it :) "Yes, this is an horrible user experience. Why? Well you see, it's ok in other, completly unrelated industry and you accept it, so that's the way it is for us too." This is the worst possible excuse I have heard in a long time :)
your computer slows down after time? Hmmm. strange. my box has been up for the last 2 weeks no problem. running winxp pro, and the board is designed for servers/workstations, but its still windows xp pro. also, mobile technology in the US must not be as good as here in Europe. my phone has been on for, well i dont know. nobody wrote an uptime app for my phone! but it hasent been off in a long time and its grand. i sit in work for 8-9 hours a day, more then likly on the same cell site, and at home for an other 12 hours or so, also on the same cell site, and no problems there. weird!
That's just plain crap, staying in 1 cell makes you unable to receive calls... My phone travels max 1km distance so I guess it's always in the same cell, and it hasn't been turned off for the last 5-6 months, and I always am able to call Call them again, be angry, demand an explenation and to get it fixed, you're the customer. I find his responses rather rude :/
I work in Ann Arbor Mi and I had the same problem with my T-mobile phone. The signal is a little weak here too. I took it back to the place I bought it a couple of times, they opened to back up and re-set the chip - It didn't help. Then one day I made a discovery. If I don't clip the phone to my belt (or place it in my pocket), the phone works fine. (I don't have to turn it off and on periodically like I used to) I keep it about three feet away for me on my desk and I no longer have any trouble with it. Don't know if this will work for you, but I thought I would mention it.
They had "server trouble" and stopped sending out keys a while back. All their customers got ticked off and filed complaints with paypal, who apparently has suspended his paypal account. Most likely, he is busy with legal trouble now from all the people that they ticked off and trying to get paypal to reinstate their account. In any case, I always thought C# refactory was a piece of crap. JetBrains should be releasing a decent one soon. You can download a beta from their site. uid: eapuser pwd: eapuser
" I always thought C# refactory was a piece of crap. JetBrains should be releasing a decent one soon." Amen to that. Refactory was a buggy nightmare. JetBrains' ReSharper is in another league and it's only the first beta (although it has no Extract Method -yet-). Jim
>"I always thought C# refactory was a piece of crap" I have to disagree, I used refactory for nearly a year, and while there was a point release or 2 that had a few issues the 1.2 release worked well all the time. After trying Resharper for a day I'm getting irritated with its modal preprocessing every time I load a project. Otherwise it is only good for renaming (so far).
I agree frequent releases will catch miscommunications earlier than having every developper working in a corner for months, though I think it's a misconception to think formal process as a big "drop box". Validation occurs in both approaches! Miscommunication happens regularly, but at the moment we sit and start coding, it's already late for realising. That's what UML and diagrams exists for. Though, I must admin that even if you write down "We need to use this shopcart system in this other system, so we must build it as a different standalone DLL with documented APIs", if the message isn't cleary passed and validated back, well... always better to start lacing your shoes right.
Miscommunication is a people "problem" not a process problem, so no process will fix it. I do believe that the agile preference for "Individuals and interactions" helps force miscommunication out into the open earlier than prescriptive processes. >That's what UML and diagrams exists for. Assuming they are correct in the first place. UML is primarily a tool for technologists who build them based on interpreting needs/wants from customers, so they are just as likely to be incorrect as any other form of communication.
I do think that things like a common vocabular and reckognized demonstration forms can prevent communcation issues. I've had a lot of communications issues, as anybody else, and it still happens, though having a common understanding of terms did reduce them significantly... Finally, perhaps you're right and it's not processes that improve communication, but simply the fact to know team members. Seen this way, personnal free time with other team members can be seen as a business efficiency approach? What do you think?
Wow, very interesting. It's funny she made a reference to what must have been Win95/98 where memory leaks for certain services were a bit of an issue unless you shut down periodically. I wonder where it would have ended up had you taken this path - Rep: But don't you find that it slows down the longer you leave it on? Its kind of like that. Response: well that's why I write my applications in the .NET framework - you see the CLR performs garbage collection and protects against memory leaks. Rep: Thanks for using T-Mobile
I have to agree with Wayne. I couldn't be more pleased with C# Refactory. Jet Brains is so far a disappointment to me. Maybe it is just all the hype they get from the Java world.
Yes, Xtreme Simplicity has had major problems with the purchase process. On behalf of Xtreme Simplicity I apologise to all who have been inconvenienced. These problems have now been solved and a dedicated person (me) appointed as sales manager and webmaster to ensure the process works and to deal with the backlog of disappointed people. Our development and support of C# Refactory and other products has been reinvigorated and you can all look forward to improved features in the near future.
I am working on a tool to provide just such "explorability" for .NET languages which I plan to release as an Add-In for reflector in a week or two. Watch my blog for details.
Go get it? You're telling us to go get it two months after it was released? Ok then ;)
Take Outs for 19 May 2004
Just what I needed... thanks very much!
THANK YOU
Thank you.
Global varaiables are "Evil" - if you really need the functionality of global variables, create a class (clsGlobals) and add all your globals into that class with property Get/Let (or Set) accesors. Then in a bas module create a single property Get (Not Set - keep the access to the gloabls object read only so you cant destroy it accidentaly) to access a single instance of the new globals class: 8<------Put this in your bas module----- private m_objGlobals as New clsGlobals Public property get Globals() as clsGloabals Set Globals = m_objGlobals end Property 8<------------------------------------------ Now from anyware within the project, you can access your global variables by: Gloabls.PropertyName = "x" This is preferable as you can now set break point on the property Let/Set within the globals class to easily catch when the values are being changed. This is similar to the "Singleton design pattern" and is very useful... just my thoughts joebourne at gmail dot com
I agree 100%! I've worked in a few large organisations now over my looong career, and seen maintenance teams vs project teams... There is not only a huge stigma attached to being in a maintenance team, these teams also always get stuck with legacy systems. They also have the unenviable task of maintaining code that fly-by-night contractors write and deploy to production without a care in the world about how robust or maintainable their code is. And the poor souls in the maintenance teams of large organisations are expected to know enough about every diverse system in production to be able to fix problems in the wee hour of the morning when they're on call. Need I say more?!
Just make sure you can factor out the ui.
20 years? That's amazing. I admit I'm naive and fairly new to the development game (only 4 years experience), but I thought I was optimistic expecting business systems I write & maintain to last 5 to 7 years! It seems that if things work, then they usually tend to stick around and don't get upgraded, while new applications get the new technologies?
I think that many believe there is a continuum between plan-driven and agile methods, with iterative development partially overlaid on such a line. Plan-driven process improvement models such as CMMI have moved to introduce iterative, adaptive development, and agile methods are acknowledging that process must be introduced in order to support anything other than small scale development. And yes, Barry Boehme and Richard Turner (amongst others) have performed similar analysis to you - albeit using different criteria than your own. I'm not sure your identifying those factors critical to discriminating between plan-driven or agile approaches from a project success perspective. They, however, are more helpful when perhaps comparing agile methods with each other. Mixing the two on this basis might not be taken too seriously, by those involved in large scale development ;) That goes to including a "waterfall" method in your analysis. Much better to explicitly include say SW-CMM, CMMI, PSP/TSP and SPICE explicitly. What's a SPIN panel?
Hi Jake... what an interesting diagram. This sounds similar to the kind of analysis Alistair Cockburn does... I'm not sure how your variables correlate to his in Agile Software Development, though. When you're happy with it, if you'd like to package it up with your commentary, I suspect the Agile Alliance would be happy to review and post it. I help out on the editorial team - feel free to send it to me if you like. http://wiki.scrums.org/index.cgi?DeborahHartmann Deb H. Certified ScrumMaster/Practicing
Oh, and: You might get some interesting feedback from the members of the ScrumDevelopment list... if you are interested. http://groups.yahoo.com/group/scrumdevelopment/
I don't get it either. He's not even interesting. I saw him a couple of times on The Screensavers on TechTV and just scratched my head.
Finally, someone has the courage to stand up and speak the truth.
He's a geek with issues that a lot of folks can relate to, he's has had some public successes, and is a contemporary of the first generation of folks to grow up with the personal computer. Other than that, you might as well ask folks to explain "popular culture" in general.
Two good posts in a row. Part of what I dislike about Wil Wheaton is his constant left political speak. If I wouldn't ask George Bush or John Kerry about C#, why would I want to know what a random geek thinks about domestic spending.
I think it's that he's survived a geek hazing of sorts. "Fans" brutalized him when he was on Star Trek, and he came through it in one piece and with suprisingly little hard feelings.
In my experience, geeks tend to have libertarian philosophies. To the mid-90s, when "Democrats == Big Government" was the dominant theme in party choice, as a whole geeks looked "right." Since social issues have come to dominate, the geeks look to be "left".
I think Joe is onto something, he was everyones favorite guy to make fun of on ST TNG, and yet he's kept on ticking. Maybe that has garnished him some grudging respect. =)
Anyway, pretty much the same can be said for any blogger. If it's interesting to you, read it, if not, go read something else.
Why Wil? Good question. I think a lot of people attending Gnomedex were thinking the same thing. He was probably invited because *Chris* thought it would be cool. Chris is a fan of Wil and Wil is a fan of Chris. Anyway, not sure if you realized it or not, but Wil didn't prepare a talk or anything for Gnomedex. He just read excerpts from the books we was hawking. Wil stated at one point, refering to his the profane language, that "we're all adults here". Well Wil, mature adults don't have potty mouths. I had no opinion one way or the other going into Wil's talk. During and after I was thinking what a big disappointment and waste of time his talk was...
Oh, I just about forgot... Wil didn't even take questions from the audience.
Very good point :) RTF only has one 'schema', whereas XML could represent a gazillion schemas. My point is that the creator of each schema will probably be responsible for creating a tool to represent (for editing) the XML of that schema. Kind of like MS Word is the editor of XML that conforms to the (for lack of a better name :$) "MS Word XML-Schema"...
Ditto. I was at Gnomedex and was so unimpressed by Wil Weaton that I would have rather wasted time by shoving Google pins in my eyes until they bled. I’ve made a few blog entries of my own site about Wil. I even took a picture of a box of Kleenex and emailed to him this morning so he could cry about the Bush re-election. He actually emailed me back to say how mature I was. As opposed to crying like a baby, I guess. :)
The ACLU protects everyone's rights. Even Rush Limbaugh's. http://www.foxnews.com/story/0,2933,108140,00.html
I can get on board with the EFF usually, but the ACLU *rarely* comes calling on the side of issues involving conservative values. Rush Limbaugh is no different. They weren't protecting "Rush Limbaugh", they were speaking up on behalf of a drug addict. That sort of thing is right up their alley. Wayne, I'm also proud to have President Bush represent my party. Is he perfect? Of course not. But I do remember shortly after 9/11 saying to myself "you know what? where would we be with Gore in the Oval right now?" and I didn't like the prospects. W is what Michael Corleone would call a wartime consigliere. He may not be as well-spoken as some, but he's an Ivy Leaguer who i'm sure could out-IQ a lot of the people who call him stupid. And as far as I'm concerned, aside from some bad advice from those around him on how to present things like Iraq to us, he's getting the job done better than anyone else who lined up to try to take the job.
I can't speak for Dan, but as a Kerry-supporter, I think some of the changes that were reasonably expected include: Go the UN and eat some humble pie. Erase the current timetable for Iraq elections, admit that current troop levels in Iraq aren't enough and get multiple nations in there (by threatening a "cut-and-run" and bribe^h^h^h^henticing with reconstruction contracts), and develop a strategy for dealing with Iraqi national leaders based on "facts on the ground" (i.e., Shiite power) rather than INC wishful thinking. Given Bush's record, this American doesn't think that his "Iraq's going great, I wouldn't change a thing," mantra isn't just political never-apologizing, it's his _actual_ policy. And I think that "stay the course" in Iraq is clearly a road to high American casualties AND a powerful insurgency that will prevent whatever hopes for a "transformative Democracy" remain in the neocon belief system. Another thing that I think would be different if Kerry had been elected would be a less cavalier attitude towards international diplomacy. And I'm not talking about the rights and wrongs of specific treaties (yet), I'm talking about the gratuitous insults, like the "old Europe," crack. I mean, how can you not even slap the wrist of a senior cabinet member who makes a statement like that? Speaking of cabinet members, I'd like to think that Kerry would have insisted on a little bit more accountability. No cabinet resignations over 9/11, WMD intelligence failures, or Abu Ghraib? Surely a "head must roll" when there is an egregious failure at the level of national policy. Back to international treaties, I would expect Kerry to kill research into new nuclear weapons and take the stance that global leadership in anti-nuclear proliferation requires the US to take positive steps towards disarmament, even if that means limiting nuclear options (such as nuke bunker busters). I'd expect Kerry to have a chance to nominate at least one moderate Supreme Court judge. Domestically, I would have expected Kerry to use the bully pulpit against / veto large-scale deregulation and corporate giveaway legislation...Okay, maybe that's expecting too much... But it would be hard to imagine something _worse_ than the Medicare giveaway to Big Pharma. Kerry wouldn't have been able to pull off major healthcare initiatives or changes in the tax law (given the legislature), but I expect that the Republican branches will accelerate their restructuring of the tax system, continuing their push to shift the tax burden onto earned income and away from capital gains. In my opinion, that's both unfair and gravely foolish. Similarly, Kerry wouldn't have been able to do much about the now-structural deficits, but in the second Bush administration, I expect them to continue running today's Government on tomorrow's taxes, making the bill that will be ultimately paid by today's youth all that much greater. That is, if the lack of financial policy of the US doesn't trigger an international currency crisis in the meantime. In short, I think what people expected from Kerry was a little more responsibility. A little more humility, to use the word used by candidate Bush in 2000. The fact of the Republican legislature mitigating his grand plans is true, but not necessarily lamentable. With a Republican exec and legislature, there's not a brake on an Administration whose policies are clearly not centrist. I'm not sure what you're saying when you decry "the tired left mantra of increased debt, poor environment, big corporations." As a "tired left" guy, what is "provably wrong" about what is said about these things? All of these things are legitimate issues, aren't they? I mean, clearly they aren't and shouldn't be as important to voters as Iraq and terrorism, but surely no one's happy about, say, the depletion of global fish stocks?
Shannon, apparently they don't protect everyone's rights: In 1988 the ACLU barred a doctor from telling a Kansas man’s former wife that her ex-husband had tested positive for AIDS. In the words of the director of the ACLU’s Privacy and Technology Project, “The benefits of confidentiality outweigh the possibility that somebody may be injured.” Since when did the right to provacy trump the right to life?
I personally "overreact" because I believe republican policies have a much larger irreversible negative effect on our country. Just consider the issues for a moment: 1.) Finance - Middle America is much more likely to support tax cuts than increases - it's obvious. Therefore, it is harder to pass Democratic tax legislature than it is to pass Republican legislature tax. I firmly believe trickle down economics simply does not work. It takes a short time for Republicans to cut taxes and, a very long difficult time for Democrats to raise taxes. 2.) Gun control - If Republicans win, and things like the assault ban are allowed to retire, automatic weapons or unregistered are allowed to flood into society. If a Democrat wins, and gun control laws are tightened, it takes 10-20 years to clean up what's out there. 3.) Environment - If Rupublicans win, and Alaska is drilled, forests are cut, and commercial whaling is allowed to be reopened, we lose thousands of acres of forest, and countless wildlife. All of which is either impossible to reverse or takes years to do so. 4.) War - Typically Republicans take a tougher stance to foreign relations. They like to beef up the military and stick their chests out at other countries. It's what we have done for the past 4 years. This causes irreparable damage to foreign relations, treaty talks, and the general initiative toward world peace. It's taked Democrats years to undo this damage by opening up peace talks, working with other countries to produce weapons treaties, etc. Don't misunderstand, I personally support a strong military - I don't want to be a sitting duck for attack, but I do not agree with how foreign relations are usually handled under Republicans - with the exception of Reagan (with the exception of Iran :)) I just seems to me that Democrats work harder to pass the type of legislation we believe in. So when we lose the presidency, we see a decade or longer of tough work and undoing. It took Bush about 2 years to undo about 10 years of Democratic work. There is no reason to think it won't take 10 more years to get it back.
By overreact of course I mean secede or move to another country, not be disappointed and wish things were different and morn the loss of what could have been. I think you sum it up well when you said "Democrats work harder to pass the type of legislation we believe in". Of course I would replace Democrats with Republicans and make your arguments in reverse. But that is what makes our nation great, we have difference opinions and can talk about them and from time to time elect people who represent most of our point of view. However, if you just claim the other side is "evil" and want to leave the playground you are overreacting.
Well, from my point of view, I am looking at 4 more years of bad policy and an continuously degrading standard of living. This time is especially dissappointing because now Congress is republican controlled and the Supreme Court is soon to be heavily biased for republican views. Combine that with the idea it will take 10 years to fix it all, and the idea of giving up and moving away starts to look nicer. I mean, why put up with spending a good portion of your life where you will miserable. I am not saying I am ready to take off, but I can understand the feelings. I am not sure I understand how you would reverse the parties to make the same argument. For example: 1.) Finance - Democrats pass tax increases. All Republicans have to say to middle America is "I want to put the money in your pocket and not in the hand of 'big government'" and people will be rallying to pass those cuts. It's easy for Republicans. 2.) Gun control - Democrats win and stricter gun regulations are passed. Assault weapons are banned - which really means you have to convert them to semi-automatic, and new clips hold less rounds (old ones are still legal). What have you really lost? - not much and reversing those laws are instantaneous for republicans - you can buy your automatic weapon the next day. Police officers can now be worried what they are coming up against for a long time to come. It's been opened up, and it will take a long time to close it back up again. 3.) Environment - my point here is that Democrats want to conserve the environment. Nothing is lost, and republicans always have a chance to take it back and drill it, cut it, etc. If republicans pass legislature and are allowed to do what they want, forests, wildlife, endangered species are lost FOREVER. There is not reversing it for Democrats. 4.) War - I don't think you can argue that it takes longer to wreck a relationship than it does to create or fix one. It's the nature of the world since the beginning of time. Good relationships are broken in an instance and take years to patch. I know the general American population loves it that after years of policing the world and helping everyone out and getting nothing in return that we are now telling everyone to piss off, but it's damaging relationships all over the world. It's not a good idea, it has set back peace efforts many years, and it's dangerous. Bush is out of excuses now. After 4 more years, he won't be able to blame anything on Clinton, or a democratic congress or even a democratic slanted Supreme Court. He has everything in his favor now, and can pass almost whatever legislature he wants. If he can't improve the state of the country in the next 4 years, he should just admit he was not fit to run this country. As for the republicans being "evil". I honestly have that feeling some time. In particular the tax issue bothers me. Most politicians make enough money to enjoy the kind of tax cuts republicans like to pass. I know everyone else got $300 and $1000 per child, but that's pennies compared to what the rich got, and Bush has never denied that. The fact democrats want to raise their own taxes tells me they are doing so because they believe it needs to be done for the greater good of the country. Republicans continously want to lower taxes for themselves and big businesses. I believe the years have shown trickle down economics don't work - so why keep doing it? Economists have shown over and over that big businesses and the wealthy do not allow that money to "trickle down". They keep it, and the income gap between the middle class and the upper class widens just as its done for the past 4 years. It hurts the poor and middle class, and it makes republican politicians richer, and they know it. That seems evil to me.
42? Seriously, fixing a problem, even a fairly severe and obvious problem, is a thankless task. If you succeed, then it's "why didn't you do it sooner?" or "better" or "more"? If you fail, God help you. Orginizational survival dictates that you duck existing problems and try to work on sexier projects.
Someone would have to admit the mistake of having hired him in the first place. It could cost you a lot of money that you may or may not have to get rid of someone depending on their contract.
the rev share salary model inspires the developers to produce better quality work than the 90K guys... I've only had the high salary/no bonuses, and likewise with collegues around me. I think that devs/engineers should be more like the sales people of a company whereas more work translates directly to more money... then the typical engineering block gives way to developing what the Customers want, instead of what some arbitrary project manager wants to implement Microsoft is beginning to develope under this strategy with expanded ms-employee-to-3rd party devs/general programmers, and look at what we've accomplished: - vs2005 has C# Edit/Continue now instead of some other silly features that a handful of people wanted. - vs2005 has much better refactoring for both VB/C#. thats just the tip of the iceberg of market driven developement, instead of project manager driven. (Is this agile developement?) Personally, I like the new Microsoft way (in regards to the dev tools). Incidentally Microsoft's dev tools have always been top-notch over any of the competitors (Sun/Borland/etc) and I congratulate them.
"Has anyone participated in a salary scheme such as these? How did it work and what did you like and dislike about it?" I got a job offer a few years ago from a company that did something like this. Their compensation model was that each employee got a particlar base salary and no bonus at all. For more risk tolerant employees, there were two ways to convert base salary dollars into riskier forms of compensation. First, up to 25% of your salary could be put into a bonus 'fund'. At the end of the year, based on the performance of your group and your own ranking, you got anywhere from 0x to 5x the amount you put in the bonus 'fund'. The other alternative was a little more controvesial: you could convert up to 100% of your salary into stock options. If you were really risk-tolerant, you could therefore take all of your salary as stock options. Unless you really believed in the company's valuation the economics of this were a little dodgy. You still had to pay the strike price of the option when you exercised it, there was not a definate date to go public, and you had to be willing to find another way to fund your life, as well as pay the opportunity costs of not having the cash around. A side note to all of this is that there was one group in the company that went through years of hard times, lots of attrition, and no bonus payouts. At the end of the dry spell, there were only three or four of the original people left. As a sort of bonus, the company randomly awarded _one_ of them a Jaguar XK8. The idea was to maximize the impact of the compensation spend by focusing it. Anyway, years later, most of the company's staff has been laid off, for those still there, the word is that the base salaries got cut in half, and the company never went public.
The way I see it, salary is how much the company values your future contributions. A bonus is a reward for your work in the past year. A great year deserves a great bonus, but not necessarily a great raise. However, consistently good-to-great work deserves high raises.
I think option 5 (option 4 with a provider model) is the way to go, *unless* the client is absolutely, 100% positive they won't be moving away from the given model for forever and ever! My take on the "simplest thing that could possibly work." :)
Both comments are valid, and are a result of most corporations desire to avoid mistakes than to react quickly to them. At least Microsoft places bets on the table, instead of trying to blame who lost their poker chips.
Eric, you wrote: <i>I think that devs/engineers should be more like the sales people of a company whereas more work translates directly to more money... then the typical engineering block gives way to developing what the Customers want, instead of what some arbitrary project manager wants to implement </i> I'm not sure what you mean. How do the engineers know what the customers want directly, and how can they respond directly? Can you tell me a little more about what this looks like. It sounds like a great idea.
I have issues with the sales people idea as well. Having worked as an internal developer and as a contractor in a pro services firm I can't see this working. As an internal developers I build systems that are an indirect cog in a large machine. I'm at least 2 levels removed from direct customer contact. As a contractor I'm in direct contact with the customer, but all the details have been "worked out" ahead of my appearance. As an independent consultant I get both sides, but my salary package is $0/year and whatever I can get as bonuses.
I agree. Goldratt's book about project management is pretty good as well.
Love ya bunches, honey
Score, we're 5 for 5!
Amen, brother Wedgebert!
I can't say that I understand that particular visualization, but I'm sure if it came from Ed Tufte that It's brilliant. Wayne, we haven't met, but I felt the need to comment since you are the only other person I have ever seen comment on E.T.'s work in the software industry. I attended his 1 day seminar in 1998 and it completely changed the way I viewed graphical presentation of data. It was one of the best spent days of my life in terms of day to day impact on my career. Cheers, Scott
"Product managers' rule #1: The best product managers follow the Pragmatic Marketing maxim: Your opinion, while interesting, is irrelevant. Always use market facts to decide the best course of action. " -------------------------------------------- 1. If that were the case, there wouldn't be any innovation, which I define to be creating something that people never knew that they needed. Once they have it, they need it because they can't live without it. When the market doesn't understand the product or feature yet, you can't trust "market facts". Who would have predicted the commercial success of the Internet and online shopping? If you would have asked consumers 10 years ago: "Would you shop online and buy products, sight unseen?", I bet 90%+ would have said no. And yet, in the last 5 years, I've spent more $$$ online than I have in brick and mortar stores.
#1 struck me a little strange as well - the story of the Aeron chair comes to mind. However, not that many product are innovative, they are incrementally different than their predecessor/competitor in which case #1 makes more sense.
i don't agree with such rules...just simply look at google!
I'm not sure what you mean. Which rules does Google not apply?
If someone told you "Oh, we're making this new search engine, Google, want to invest a few bucks?" before Google launched, what would have been your reaction? You probably wouldn't have given it a second thought and moved on. I think that the most successful ventures in life are the unexpected ones, not the ones that are "planned by committee". Just take Microsoft as an example. There was a time when computers were relegated to scientists and hobbiests, now just about every household has one.
I wish you and all who read this a very Merry Christmas! Please don't forget the true reason for why we celebrate Christmas! God bless, David
Google for me is not as interesting as the aeron. When Google started they could do anything they wanted because they didn't have to make any money. How many other "innovative" search engines never saw the light of day because they didn't have a university backing them. The aeron was so innovative that nobody liked it when it was first released. It took 3 years before it became the icon it is now. But, they collected market facts. They knew everyone who mattered hated their chair. They chose to reject the facts and proceeded anyways. Many product managers don't have any facts to accept or reject, they just "feel" like it is a good/bad idea. Rule #1 dosen't say "don't innovate", it says "check your facts, not your opinions"
And what I'm saying is that sometimes the facts are unknown or the market is simply unaware, which is when you get true innovation. True, this may be rare. How many times in a generation do we get a Google or an Amazon or a Microsoft? But the fact is, saying that you should always use "market facts" to drive your product strategy is somewhat limiting the boundaries of innovation to what people already know. This all stems from an interesting slide I saw from one of my friend's business/IT classes, blah, can't remember the exact details off the top of my head now.
Once again, the rule doesn't say "do what the market says" - it says "use the facts to make decisions". You can decide to proceed inspite of/because of the market's negative reaction. But at least you know what you are doing.
> Somehow people get to the point where what they believe is more important. This doesn't mean you have to ask people what they like, you can observe what they use, which is probably more accurate anyway. Whatever we say is always a theory. It's a question of how well we *support* that theory with evidence, facts, etc. Don't forget the "science" part of Computer Science.
your stupid dumbass
Or use GhostView to view PDFs via GhostScript (available on all platforms from http://www.cs.wisc.edu/~ghost/)
I also liked this lecture a lot - it's a clear, honest, Feynmanian approach to science. Lubos Motl, Harvard U.
got it! thanks!
Apparently there is more to it than that. Darrell Norton posts some exerpts from the FireFox Tweak Guide: http://www.testingreflections.com/node/view/1549 Original post: http://codebetter.com/blogs/darrell.norton/archive/2005/01/28/48720.aspx Firefox Tweak Guide: http://www.tweakfactor.com/articles/tweaks/firefoxtweak/1.html
You can find some more comments on this here: http://www.testingreflections.com/node/view/1594
I have a nice set of scripts here that also demonstrate sql creating sql. http://www.jerradanderson.com/index.php?sectionId=17&pageId=28
Nice link. Thanks Wayne!
Awesome, congrats!
Thanks for the plug! As a self-publishing expert, I'll have to get you to review the finished book, as a product.
Thanks, This was very helpfull
I think there is an "Art and Craft" aspect to software and IMHO thats part of the attraction to it.... sure if we were just punching out standard bits you can get fairly cut-and-dry with that. but when you need to build a system for real people to use you *HAVE TO* be able to step into the realm of Art and Craft and things like use of Color, screen layout and a number of other things that are hard to give sharp definitions for.... you can have general rules and guides but at some point you have to focus on who the user is and what will work best for that user / group / environment.
True, that the craftiness appeals to many developers. But what is an example of cut and dry standard bits? Developing TV's? Cars? There is a craftiness to each of these. But less so. And that is where the communication comes into play with the many more informalities. And it is not just color or layout... it's also "What does a user want to do with this purchase order?" There are formal things to do with it, but also informal. I think software is informal all the way down to the bits on the wire. Only then does it become informal. TV's and cars stay pretty much the same with inflection points here and there (e.g. Tivo, HDTV's, hybrid cars).
Not sure I agree with your comparison. How is developing a TV different than developing software? They are both soft skills that require domain knowledge and user/customer input. Both have constraints of costs, infrastructure, market demands, etc. You can choose to be as formal or informal as you want for either product.
hello, there seems to be an invalid character in this post which produces XML parsing error with Sage (for firefox). The character appears just after the word embraced "me that when your industry embraced quality it ". Please could you fix this so the RSS feed works correctly. BR, Jukka
> what is it that we, the software development discipline, are envious of from the "other" engineering disciplines? The fact that other engineering disciplines are based on physics instead of "a bunch of stuff some random guy decided was a good idea"? God didn't create x86.
Fixed!
>The fact that other engineering disciplines are based on physics... Physics is no more than thinking of a good idea and then doing experiments to see if you are wrong. How is that different than software?
Physics hasn't changed in the last bajillion years. How would building architects react if gravity changed every ten years? Or the fundamental properties of building materials were radically redesigned every five years? And yet that's exactly what happens in software. I suppose it's the price of playing God in those little Universe Boxes on our desks.
>And yet that's exactly what happens in software. Still I have to disagree. The fundamentals of the Turing Machine haven't changed since 1937. If you mean things like language syntax, frameworks and the like - then sure things have changed. But have you looked at the amount of new products comming out of materials science? Even "basic" things like framing materials are undergoing constant change.
Ahh, you miss the underlying meaning of 1 in o1 = 1. When you tell a C++/javascript/php/perl/every other high-level language that a variable (o1) is 1, you are only telling the system that it's true, not that it actually equals 1. When you tell two variables that they are "true" this, in no way, means that o1 == o2. If you figure that when you tell a variable that it ="a string", you are only giving the string an alias. Two different aliases with the same string are equal, but those two aliases by themself are not equal.
My post was not specific enough regarding the language. The language was C# and although I didn't show it in the screen shots, the debugger/quickwatch both thought that o1 and o2 were Int32.
And don't forget that the filename can be specified as |DataDirectory|filename - this certainly works for AttachDbFilename (eg AttachDbFilename=|DataDirectory|foo.mdf). I don't think many people have discovered that yet.
Check this out: http://www.connectionstrings.com/
I've seen www.connectionstrings.com before, but it dosen't have all the gory details (at least that I've found).
Hmmm, it's the same table both places except for the |DataDirectory| part :)
Indeed, except that both tables come from msdn. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassConnectionStringTopic.asp
Thanks so much, been lookin everywhere for this. -darren
^_^,Pretty Good!
Visual Studio Team System Richard Campbell has announced that he and Carl Franklin will tape an episode...
But why should I have to go to a store (his big scenario with stores having hard drives and little carrying costs)? Sure if they are selling CDs I should be able to grab a digital copy, but what if I'm at home? I should be able to grab a copy but iTunes adds copy protection. Right now the key blocking factor is limitations on my right to use music. That's why he (and I) still buy CDs.
I didn't see a way to add comments to Jim's post, so I'll comment here. Jim seems to imply that his builds don't break: "if your build is failing a lot, you have a clear opportunity to improve...Try to get to the point where, like me, you don't like CruiseControl... because you don't need it" I'd be interested in how he ensures that his builds don't break. As you say, Wayne, people are fallible. I see CC as the runt developer in the corner, who has to be hand-held through every build step. If CC can build it, then anyone can. As for slow builds, I absolutely agree that every effort should be made to speed them up. It's one of my biggest gripes. But sometimes things really do take time (end-to-end testing with full data setup/teardown for one) and aren't much fun to watch. I think in those cases, developers should run an "express" build and the rest should be handed off to the build server. But the real issue is: why *not* have a build server? The answer at the moment seems to be that they're all a bit clunky to set up and maintain, but what if they were idiot-proof? Jim (ThoughtWorks, for the record)
Well if you're going to check in code that you know works then you have to run the tests locally first. So why bother doing it again on a build server? I tend to agree it doesn't make a ton of sense.
Yes, but how many times have you heard the comment: "But it worked on my machine"
[how many times have you heard the comment: "But it worked on my machine"] zackly. Jim
I don't think of my CruiseControl server as being there for the developers, but more for the management. Build servers put the "Assurance" in "Quality Assurance"
"And back to satellite radio? Are you kidding, Howard Stern? You don't think that people are going to go out and actually spend a few hundred dollars to buy a satellite dish and tuner, plus pay monthly subscription fees, when they can most likely get your show pirated over the Internet for free do you? " This guy is obviously an idiot. Satellite dish for satellite radio? Second of all, HDD DVD is still a physical delivery medium. As long as we remain with a physical delivery medium, nothing changes but the amount of data that we have. Want to see what the future is *really* going to be like? Start here: http://www.dyske.com/index.php?view_id=688 If you look at what Mark Cuban is doing http://wired-vig.wired.com/wired/archive/13.04/cuban.html, you can see how any sort of physical medium is just a bottleneck to real progress.
This is awesome! Thanks for the link...
Hope it's useful!
The section on the UK made me laugh - gotta love how complicated we've made it!!
Kind of interesting that you cann't comment on James's blog :-) Yes, In a perfect world our unit tests would run instantaneously after an instantaneous compile on our desktops. Of course our code would include all the latest sourcecode from the source code respository. Oh, yeah, and when a unit test did fail due to a dependency of someone else's recent check-in (say maybe 200+ components) the developer that just attempted the build will somehow be responsible? Because I view the build process as the manufacturing step, the build server should be viewed as automating the factory. It clearly documents what it takes to manufacture the source into a deployable product. In our world the build scripts are versioned as part of the build process. A build server solves another problem for us. We use third party components that have developer licensing restrictions (node locked). The build server allows us to centralize the licenses for the components that only 1 or 2 developers have a need to work on. Every desktop does not need a license to perform the compile. The point is... it's not a perfect world. Software development is messy and very human process.
need this persons address
Fancy joining the boys and girls of the London DotNet user group on the 323rd: http://www.dnug.org.uk/ I'm sure you'd be welcome - just drop Ian Cooper a message via the website above.
I guess you figured I meant the 23rd, still recovering from the Solaris 10 open saucery that occured just now :-)
Just drop a line to meetings@dnug.org.uk if you want to come. We would be happy to see you.
I'm going to do my best to be there. Thanks for the invites!
just ensure that the developers always specify the alt attribute and testing becomes easy
great post. thank you for all of the great information.
I justify not taking a vacation by pretending that I am on vacation all the time with work sprinkled in between. I probably end up working more than 40 hours a week but it doesn't feel like that since it's not in 8 hour blocks of work. I work for a couple of hours, watch a movie, work some more, go riding/skiing/do whatever, work more, go out to dinner, work more. Not much of a stress, not much of feeling like working at all.
I'm more of a "Helen like" person....I do a lot of "fun work after work" :D. Is that something bad???
I am "None of The Above" I make difficult to reach me on the weekends and do not carry my cell or a laptop while on vacation. My personal time is just too important to me. Work stays at work and in return I leave my personal baggage at home.
I am available in my vacation time for two reasons: (1) I am a team player - I am lucky enough to work with a bunch of great people in a great company, and if something important happens and they need my help, I want them to know that i'm available 24/7. (2) it's an unspoken ballance. My bosses don't bother me if i occasionally do personal stuff on company time (pay some bills, look for an appartment, etc), and in return I don't bother them if they occasionally call me at 7:30pm if there is a problem with a build. I've only been on one vacation where I explicitly said i am unreachable - don't even try; it was my honeymoon =).
I do take vacations. (One begins Saturday!) But I am increasingly aware of a work-centric focus within me. Specifically, I am increasingly aware of a part of me not feeling safe, good, or "OK" in general when I am not engaged in some productive activity. I suspect that this is a deeply-engrained, partly conscious driver that many of us share. I bet that your William, Ellen, Charlie, and Helen above all share it. Deep down, if they stop working for very long, it just somehow feels bad, wrong, not OK. So without really understanding why, they begin working again. On something. Perhaps anything.
Wayne: What sort of background do you seek for the interaction designer? Developer? Human factors/HCI? Does the position involve coding, or just spec-writing? Thanks!
"Playing Defence" pretty much undoes everything that goes before it.
Care to expand on that thought a little? I don't quite see where you are going.
YES!!! Thank you very much!
It sure seems that way sometimes. One of my interview questions is "describe to me the HTTP request/response mechanism". I once had someone answer "What's HTTP?".
The flip side of this question is are you paying in accordance to the skill sets requested ??? ASP.net developers need to spend 25% of their time for new learning, refreshing existing skills and keeping abreast of ever changing technology from MS. True developer skill sets are a moving target.
How about SSL? I'm so sick of "web developers" who don't know how to configure an SSL web site. YOU ARE NOT A WEB DEVELOPER IF YOU CAN'T CONFIGURE AND DEPLOY A BASIC SECURE SITE!! Bryan
>The flip side of this question is are you paying in accordance to the skill sets requested ??? In this case I believe so. Everyone has their opinion about appropriate salary, but we certainly don't pay poorly.
I think it all depends on what exactly the responsibilities of the senior developer will be... you can be a kick ass developer without any knowledge of the internals of http, iis configuration / management, internationalization, etc. For instance, why in the world does it matter for someone to know anything about internationalization if they are developing a single language application? Why must he know the inner workings of HTTP if the web application he is working on assumes that the HTTP stack is fully functional like most web applications do? As far as basic computer science knowledge... a computer science degree is a waste of time for most modern day application programming, IMO. A software engineering degree is a much wiser choice for a web developer, and they aren't the same thing: http://dailybytes.blog.com/8287/ Personally, I would rather have a senior developer with a solid grasp of the .NET framework, application architecture, and framework design than one that can map out all the inner workings of ISAPI DLLs, HTTP, TPC/IP, etc.
Jesse- OK, I can see that I might want to redefine "web developer" to "web framework developer". However, how can you be "kick ass" without understanding at a basic level the systems you are using? You prove your worth when things go wrong and if you don't know how something works you can't diagnose the problem. I'd rather have someone with a Software Engineering background as well - my fault for not being clear. I never said you had to be able to map out the inner workings of anything - I said "general understanding" Thanks for your comments.
> Why must he know the inner workings of HTTP Does he need to know the inner workings? Maybe not. Does he need to know how a POST versus a GET works? Does he need to know what HTTP headers are? Yeah, probably.
My point is that being able to develop a good framework doesn't really require any knowledge outside of things that the framework does not deal with. With the amount of information available via any search engine, you can find answers to fringe problems fairly quickly. Personally, I've never seen a web framework have issues that would be solved by knowing more about how HTTP works... all that stuff is at the OS / IE level... not the level that the framework is running. Maybe for an AJAX framework that knowledge can help a bit more, but its just going to go unused for 99.9% of all projects. That said, I do agree that some times it seems like 90% of developers are dumbasses. I've had to do the whole interview process before, so I know how frustrating it can be when dumbass after dumbass applies.
As for SSL -- developers don't configure and deploy ANYTHING into the production environment. If they are doing that, they aren't developing software.
We are going through exactly the same problem in our project! We've been trying to implement what you proposed here as a solution to remedy the problem we faced. It's good to hear the solutions are working out for your team. -BH
For GUI automation try the following: WATIR <http://wtr.rubyforge.org/> SW Explorer Automation <http://home.comcast.net/~furmana/SWIEAutomation.htm> Selenium <http://www.openqa.org/selenium/>
In other words, read the book :^)
http://www.dorsethouse.com/books/dl.html>http://www.dorsethouse.com/books/dl.html.
I hope this works.
try NunitAsp(nunitasp.sourceforge.net/) a tool which uses NUnit. This tool can be downloaded at http://prdownloads.sourceforge.net/nunitasp/NUnitAsp-1.5.1.zip?use_default=easynews
Adds the given namespace to the collection.
[Visual Basic]
Public Overridable Sub AddNamespace( _
ByVal prefix As String, _
ByVal uri As String _
)
[C#]
public virtual void AddNamespace(
string prefix,
string uri
);
Parameters
prefix:
The prefix to associate with the namespace being added. Use String.Empty to add a default namespace.
However, if the XmlNamespaceManager will be used for resolving namespaces in an XPath expression, a prefix must be specified. If an XPath expression does not include a prefix, it is assumed that the namespace URI is the empty namespace. For more information about XPath expressions and the XmlNamespaceManager, refer to the XmlNode.SelectNodes and XPathExpression.SetContext methods.
uri:
The namespace to add.
Thank you very much. This is really help full.
Use String.Empty as First paramenter in AddNamespace method to add a default namespace.
thx..
Very many thanks for a good work. Nice and useful. Like it!
wow, thx. that really helped.
Awesome! Very useful - that ones going straight to my "snippets", thanks!
In case you're interested I wrote a script that takes advantage of this and uses the XMLHTTP IE Object to store the results back to a database. I'm not sure how much of a security hole this is, but you'll definitely be suprised by what you find in your IE visitor's clipboards. Here's the link if you want it: http://webchicanery.com/2006/10/08/clipboard-suck-demonstrational/
I use SqlConnection connection string founded on http://www.connectionstrings.com/ but no one of these strings works. An error occurs "Data source name not found and no default driver specified". What should I do? Please help me!
Could you provide a little more information? What is the connection string you are trying?
I have used it, I feel it is good except one disadvantage. When it run the following code in Buildmanager.cs BuildSolutionAndCopyOutput function it is asking for the VSS password can you help me to automate that without asking the vss password. solution.Open(solutionFileName); I want to automate can any one help me in this regards.
hi this is very usefull to me....i enjoyed a lot.
Just what I need, Thanks
Thanks very much, but I'm wondering how to get every column in a seperate row or column space without building up a string. Is this possible?
Exactly what I needed. Thanks so much
thanks
i was facing the problem of declaring public variables and their scope.. this help provide me to customize my apps.
chandan bhakuni
Not able to identity images which is nested inside a frames. Used src parameter to identify it.
I don't beleive this is exactly the same problem as in VB6 (maybe Alex can convince me I am wrong). We had in VB6 this exact same problem only when we declared variables in a module Global the problem does not occur at our site when we use Public in VB6 modules.
I was interested in this article because as a tech writer I face a similar problem as do testers in an Agile environment... my end-user documentation Stories and/or Tasks are usually not complete at the end of each iteration... so should the Dev group be able to "close" the story or not? Sounds like your team decided that the Story had to be customer-accepted before the story was considered done... but am I reading it correctly that your solution was to have developers help out QA, and add automation where necessary, and that's it? And did you dispense with the final week-long "release" iteration? So far, such a "hardening" iteration has been my only saviour... that and a patient Dev team who allow me to carry over Stories from previous iterations. We have decided that a story won't be complete until the doc tasks in it are done... but that does mean a lot of carry-overs, as you found.
thanks for any insight, and if your tech writer(s) has any inclination to correspond, I would be very interested.
tana
thanks, really helped.
Known bug, using String.Empty does not work to set a default namespace.
See the following:
connect.microsoft.com/.../ViewFeedback.aspx
Thanks!! I had exactly the same issue with the default namespace, and the MS documentation suggests using string.empty for the prefix. Your tip did the trick!
Why doesn't the Application Name parameter work? I want to use it so the SQL Server Activity Monitor will identify my application instead of showing .NET SqlClient Data Provider.
I have an alternate solution that you can add onto easily enough.
I wanted to dynamically create the data contract objects I was using so that whenever I built my solution in visual studio, a build step would execute this sql statement and use the dataSet to dynamically write the dataContract classes.
Here's the stored proedure I wrote for it:
create procedure GetAllTableColumns
AS
-- select all user tables
declare @select_string nvarchar (4000)
declare @table_name varchar(50)
declare table_cursor Cursor
FOR select name from sys.objects where type='U'
set @select_string = 'select name from sys.objects where type=''U'' '
open table_cursor
fetch next from table_cursor into @table_name
while (@@fetch_status = 0)
begin
set @select_string = @select_string + N'select top 1 * from ' + @table_name + ' '
end
close table_cursor
deallocate table_cursor
exec sp_executesql @select_string
return
The first table returned is a list of all the table names (the names of the classes i'm going to write) then each other table has all the column names (accessable through the DataTable.Columns[index].ColumnName property).
Your idea is a little nicer, putting the data into rows, plus mine can return junk data in the rows too.
How would you combine these?
Wife and I do not like the same destinations. She serves on many committees and boards. Never have a time when she can get away. We have very different vacation ideas. I like the beach. I get six weeks. Spend it at home doing projects around the house. I need to get a hobby, or join some boards. Training to be a workaholic.
does .net framework come on every computer standard.
I've found the more you do, the harder you work, the more capabilities you add to your arsenal you only get more pushed your way. You also become the example that everyone else should begrudgingly strive to be. In my business bonuses are mute since everyone gets them whether or not they've earned them and there is ALWAYS a 3-4% cap on yearly increases which everyone gets as well. Hardly noticeable on your paycheck. Don't waste your life pushing yourself. I did the 10-12 hour work days for 4 years. Now I'm out the door at 5 and, just because I love my work, I sit back at home and create what I want when and if I want.
GREAT!
The signatures of almost all great (not good) companies are a commonality of purpose and belief in the product/service your provide. Will all hands working toward the same end with the same purpose, failure in not in the equation. This commonality starts at the top and resonates throughout. The key is communicaitons and message.
The book is a must read!
Hmmmm.... not as high as I'd expected. I'm a bit concerned about this, Wayne. We need to get you out to some Nerd Dinners, I guess.
Thanks!!! Nice, simple explanation - exactly what I was looking for.
Most of the worst code I have seen has been by the programmers who were trying to be the most clever. Usually it's those guys who write code that is complex... to show off how smart they are. In fact it is the opposite. The more complex the code, the dumber the programmer.
Just the other day, I saw a class that had manager type duties. Something that was in charge of a whole bunch of functionality. Well, it had a member, a hash map I think that kept some stuff. And guess what that hash map kept? That idiotic hash map kept instances of it the manager class!! Yep, it kept all these pointers to the manager class that was kept on the heap!! It was a piece of shit, that really should be torn out and redone from scratch. Like I said this stupid code was written by a guy who was really too clever for his own good.
Oh, and the comment about how the product has to ship? Good call!! NOT!! Unfortunately it is always the business managers who determine when the product ships, and not the programmers... or QA. So even though a critical mass of bugs are still in it, management doesn't care. Just fix the critical ones, and leave 90% of the rest in there. Makes me want to quit and start my own company.
Thanks a lot for sharing this.
Proved very useful.
Sheron
Thanks for sharing! Google is also my best friend. Cheers!
Phew, I finally solved a problem I'd been stuck on all morning with this nugget!
NICE!
i did not want to use cursors i got one more way
DECLARE @c varchar(4000), @t varchar(128)
SET @c = ''
SET @t='clusterattributedetails'
SELECT @c = @c + c.name + ','
FROM syscolumns c where [id] = OBJECT_ID (@t)
ORDER BY colid
SELECT Substring(@c, 1, Datalength(@c) - 1)
very much the same just that i access only syscolumns!!
CREATE procedure [dbo].[RetSp_ColumnList]
(
@tablename varchar(128),
@columnlist varchar(4000) output
BEGIN
/* *****************************************************************************
Procedure : RetSp_ColumnList
Function / Purpose : To gives column list of a particular table
Trigger :
Package Name :
Source File :
Name of Author(s) : Shivam Yadav
Phase No :
Start Date : 30/10/2007
Called By Dataset : GRD_ASSORTMENT_CANDIDATES_DIRECTINPUT
Called By Business Process : BP_COLUMN_LIST
Calls :
Tables involved :
Table Name :
Maintenance History :
#No. Modified By Modification Date Purpose
*****************************************************************************
*/
SET NOCOUNT ON
SET @columnlist = ''
--SET @tablename='clusterattributedetails'
SELECT @columnlist = @columnlist + c.name + ','
FROM syscolumns c where [id] = OBJECT_ID (@tablename)
/* declare @list as varchar(4000)
exec [dbo].[RetSp_ColumnList] 'clusterattributedetails', @list output
print @list
Select @columnlist as COLUMNSLIST
END
drop procedure [dbo].[RetSp_ColumnList]
call their geek friends :))
usually everyone know one or know someone who knows one...
Pingback from Gidfood.Com » How do normal people do it?
Hi,
There's also some good content (including video of Ken Schwaber) in the process guidance for Scrum for Team System:
www.scrumforteamsystem.com
Excellent - Google now links directly to this so I didn't have to search as much as you all those years ago!
Pingback from PMI Roundtable Retrospective
Pingback from How do normal people do it?
ARGH! I missed this didn't I. :(
I gotta start attending the PADNUGs!
Excellent!! Thanks alot...
This is exactly what I wanted & it has become my one stop look up for XPath isssue..
Thank you...
--This will return a table of all your column names for a database
declare @t table (tbl varchar(50), col varchar(50))
insert into @t
SELECT @table_name,name
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE name=@table_name)
select * from @t
A Tester can save an organization time, effort and money.
One new subscriber from Anothr Alerts
Honestly, here goes. People skip the basics. Do they learn programming logic first? If not do they go back and pick up a book on generic logic? I know many programmers that have years of skill sets and projects completed, that all say...I would have done that so different, or been faster, made less mistakes if only I learned or read this years ago. Also the advent of the script kiddy. "This looks good, so lets copy and paste" It was not honestly good, you just did not know any better.
Programmers and coders also need to start looking at the bigger picture more often. Security is not a check box. It is an ever changing way of life and there is no one way destination. Many programmers have the I built it, it worked, I am done attitude. It worked on your PC or your small controlled environment, now what about a large network or world wibe web? Lets define what "it worked" actualy means. You made a form. It passed data on. Is that data safe? Is it reliable? Is it a copy paste one size fits all, and you just changed the text? Are you reading about exploits and understanding how many months of your work may need a simple adjustment to stay viable to your work environment.
Bad code will happen. Bad programmers keep using it. Good code is the result of always researching, learning, and adjusting. There are no finished projects, unless they are retired from service.
Not sure if you are seeking one our solution architects to assist (Internal to iAnywhere / Sybase) or an external alternative.
I'd be happy to help on both fronts for your project. Note, our professional services folks are housed at our Waterloo HQ.
Shawn McEwen
Territory Manager
Sybase / iAnywhere
Waterloo
smcewen@sybase.com
519-883-6448
If you're interested in a slightly more robust set of features, check out the YUI "DataTable" component. It does sorting, paging, custom scrolling, and a whole lot more. Plus great documentation and a good community. developer.yahoo.com/.../datatable
I'll check into the YUI stuff. I remember discussing this with you in the past, but it slipped my mind. Thanks!
A whiteboard with paper post-its... Isn't it great how far software engineer has progressed in the last couple of years, that we can now store this essential data digitally? ;)
It's also so easy to backup... just take a picture with your 1megapixel cellphone! ;)
Sounds like you're one step away from using the agile method scrum.
Pingback from no more iterations « silk and spinach
I wonder if it would be beneficial to measure total of business points (like story points, except a measure of business value) completed in a given time period?
I've been researching agile PM tools to decide if we want to continue using our existing tool, switch
Hi Max. In fact we were using scrum and have modified it to the point where we are now.
Hi Hank,
We thought about using story points to limit the WIP, but we are no longer doing any significant estimating. Look for more detail in a future post.
Pingback from Synesthesia » Links roundup for 2008-02-05
You've been kicked (a good thing) - Trackback from DotNetKicks.com
SearchSoftwareQuality.com recently posted an article on agile tools that provides an overview of some of the tools mentioned here and explains how one company manages its agile projects -- searchsoftwarequality.techtarget.com/.../0,289142,sid92_gci1287345,00.html
We're practicing Scrum and we are using http://www.wrike.com/ for it. It's a pretty agile tool, VERY flexible and it's integrated with e-mail. It's worth checking out.
Jerry,
Thanks for the pointer to Wrike, I'll check it out.
Michelle,
Thanks for the link!
Check out the post . Thanks to Jerry for the pointer.
Please note that this is for HOSTED tools.
We did a similar research not long ago for inhouse tools and results were different. I will try to recover our results and maybe post them here?
Cheers,
Oliver,
Yes, these are hosted tools. I did the same for in-house. I'll publish them shortly.
Another hosted solution, aimed at Microsoft Office users, is ActionThis. This is an online task and project management service designed for teams, particularly those who work in remote locations.
In addition to providing an easy to use web application, ActionThis produces a client for Microsoft Outlook that lets people seamlessly create and manage ActionThis tasks alongside their email messages.
In other words, people don't have to invest in learning a totally new tool.
More information is available at www.actionthis.com.
Pingback from Interesting Finds: February 7, 2008 « Hank Wallace
If anyone knows the exact steps and tools to be used to convert VSS to CVS please let me know..It will be helpfull for those are tring for the same.
Thanks in advance
(Updated 2/6/08 to include Wrike, also see the list of self hosted tools ) I've been researching agile
In my initial post No More Iterations I mentioned that estimating was a factor in the change we were
Pingback from Agile PM: JIRA « Tales from a Trading Desk
Pingback from Project Shrink Links 11-02-2008
Can you expand on why you estimate bugs at all? In my experience, bugs are non-estimable. Either you will fix it easily, or you will not - you cannot know without actually identifying the problem code!
Regarding your t-shirt sizes, I think the most important size is "large". Because it really means "we do not know". Often you can find some smaller sub-feature that can be delivered in a single iteration. You could even devote a portion of the sprint to design-work. Once completed, you can re-estimate or break-down the larger item. The message to the client is "we need to do some real work on understanding this feature before we can commit to how long it will take".
We would never accept a "large" into a sprint, because that would imply that we could finish it in a sprint, which, while possible, was not something we could promise.
Post is a waste
Thanks for your comments Steve.
re: Can you expand on why you estimate bugs at all? In my experience, bugs are non-estimable.
In our particular application we've found that we can estimate the bugs pretty reliably. Either they are "small" or "large"
To your point about "large" stories we look at them with a very critical eye to see if we can break them up as well.
We don't worry about completing within a sprint as I described here:
weblogs.asp.net/.../no-more-iterations.aspx
Yeah, seems pretty close to our survey.
We came to choose JIRA/GreenHopper since it answers our Issue tracking as well as our project management (Agile) needs. One thing good to know as well is that it is for unlimited users.
Thanks Wayne!
Hi Yash,
Can you expand a bit on your comment?
Pingback from Finance Issues » $1,000 of Free Consulting Advice
Pingback from » Daily Bits - February 13, 2008 Alvin Ashcraft’s Daily Geek Bits: Daily links, development, gadgets and raising rugrats.
One question: If you do not make any estimates, how can the Product Owner prioritize the backlog. When I am prioritizing development work, I always try to get the most bang for the bucks. I can often guesstimate the bang, the value of a particulare feature or bug fix, but how would I know the development team's best guess for the bucks, how much getting the feature or fix would cost, if you do not estimate any work?
Hi Gustaf,
We didn't stop estimating completely, we just simplified greatly. See my post on 30 Second Estimating.
Check Mingle, it's good and cheap: studios.thoughtworks.com
Celso,
I included Mingle in my list of hosted tools. For teams greater the 5 users it is quite expensive.
Pingback from Project management Mashup ?? Project Shrink Links 11-02-2008
Great artilce it saved me a lot of time :)))
I mentioned in my No More Iterations post that we didn't really know how support requests were going
Sharepoint Using NAnt to Build SharePoint Solutions [Via: Bil Simser ] WPF Drag drop library updated...
Link Listing - February 26, 2008
iclemartin !
really elegant code :) without resorting to cursors.
Pingback from New Technology » Blog Archive » 12 Learnings From My First Turn As Startup CEO
Thanks, it really helps.
Awesome, really clear. I was scatching my head over this one. Thanks for sharing.
Very nice! I even like the colour!
hi
i m also facing the same problem(public variable being accessed by all the threads) ...
have you got any way to solve this problem.
its driving me crazy
Sivabalan K
The easiest way might be to use session variables or thread local storage. It depends on what your code is trying to do.
what about allowed values for the 'mode' attribute?
I'd be glad to add the mode attribute, but I can't find any reference to it, other than in ODBC 1.0.
Pingback from Пространства имен в XML c привлечением .NET
I've been experimenting with various project management tools and have discovered an excellent site. It is a very user friendly, web-based application that is well worth taking the time to explore. Take a few minutes and look at Projjex.com. The tutorials are excellent & you don't need to be a Rocket Scientist to figure out how to use it. It even offers a free version so you can try it on for size.
All woking like a dream! Thanks for that.
--This allows for schemas and same table names within different schemas
declare @t table (schemaId int, tbl varchar(50), col varchar(50))
declare @objectId int
declare @schemaId int
FOR select name,object_id,schema_id from sys.objects where type='U'
fetch next from table_cursor into @table_name,@objectId,@schemaId
SELECT @schemaId as schemaId,@table_name,name
WHERE id = @objectId
select ss.name as schemaName, t.tbl, t.col from @t t inner join sys.schemas ss on t.schemaId = ss.schema_id
Check ScrumDesk - reach UI, storyboards with index cards, integrated reporting and unique retrospective voting subsystem. It is integrated with Skype, Office Communicator, bugtracking systems and email. It is free for small teams. http://www.scrumdesk.com
This puts me in mind of the beginning situation in Glodratt's "The Goal". Requests for expedited production were killing normal production. Until bottlenecks were identified and remediated, not much progress happened. One bottleneck in development is bug fixes. A long-term fix would seem to be producing a better quality system that simply has fewer friction points that get identified as bugs. I wonder whether a taxonomy of bug types might help to identify major sources of these bottlenecks, so that each source can become a known constraint, and a Drum-Buffer-Rope solution could become its own Kanban...
We have identified a bottleneck in our ability to test features we have developed. We are taking a 3 pronged approach to relieving this bottleneck:
1) Have the developers help with testing (short term)
2) Hire an additional Tester (medium term)
3) Develop more test automation (long term)
Pingback from session variable in vb net
A colleague has been asking how to do this and I've found a great post written years ago. I've linked it here...
I try that code but why it shows an error?
nsMgr = new XmlNamespaceManager(feedXml.NameTable);
nsMgr.AddNamespace("rdf", "www.w3.org/.../22-rdf-syntax-ns);
nsMgr.AddNamespace("doc", "localhost/.../");
XmlNode dateNode = rdfXml.SelectSingleNode("/rdf:RDF/rdf:Description", nsMgr);
Here is my RDF file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF xmlns:rdf="www.w3.org/.../22-rdf-syntax-ns xmlns:doc="localhost/.../">
<rdf:Description rdf:about="localhost/.../Policy2.pdf>
<doc:desc_id>048/26/SMD/HRD/9/00</doc:desc_id>
<doc:title>Kebijakan2</doc:title>
<doc:dates>3/21/1999</doc:dates>
<doc:author>Smart Co</doc:author>
<doc:file_name>Policy2</doc:file_name>
<doc:type>pdf</doc:type>
<doc:category>memorandum</doc:category>
<doc:status>tidak_berlaku</doc:status>
<doc:year>1983</doc:year>
<doc:keyword></doc:keyword>
</rdf:Description>
</rdf:RDF>
Thanks
Regarding page: weblogs.asp.net/.../268574.aspx
Why did you select the function name main()? That makes me think of main() in original C programs.
From the first paragraph, which function cannot be called and under what conditions. I think you mean that foo() cannot be called when there is no instance of class MyApp, but am not certain at all.
Is an instance member one that exists only with an object has been created? If so, I understand this to mean and Main() is not an instance member while foo() is. Is that correct?
Thanks for posting this page.
Bryan
b2Wbkelly.ws
tinyPM Community version is free for small teams (5 users) with unlimited projects. Supports iterative development based on backlog full of story cards. It has also taskboard similar to the real whiteboards used in agile projects and a wiki.
Pingback from Digital Media, Internet and Tech stuff » Blog Archive » Distância ainda é importante
Previously I posted about my new V-Strom which is a nice bike. However, after taking it on something
Pingback from jamesladdcode.com » Blog Archive
Cory has a great post titled: Scrum-ban | Lean Software Engineering. In it he describes how a team can
When it comes to refinancing there are some negative points or risks that should be mentioned to protect consumers against unprompted expenses. Attention should be given to the fact that an ever increasing number of financial institutions have begun to
« Obama’ s June fundraising revisited, plus organization notes[ Karl] Home The“ NYT spikes McCain’ s Op- ed” post[ Karl] » \"... Once in a while he\'s really, really, really funny. But the other 90 percent of the time it\'s like reading Hokusai translated
Why go the extra mile? In what other areas of your life do some of these attitudes and behaviours show up? Do you likewise view people who go the extra mile for you in your relationships with distrust? It is not all about the money. It (life) is about relationship and contribution. This does not mean you have to put in 10-12 hour days all your life. But do you just put in what is required for your 38-40 hours each week? If you only put in what is required you will only ever be paid what you are worth. If you are only worth 30 hours of that 38-40 hours then as an employer I would be reluctant to pay you any more than what is required. However those in my employment that go the extra mile are compensated.
But as stated previously it is not necessarily about the money or putting in extra hours but in your approach to all the things you do in your life.
So I ask again how do you all show up in your lives? Be honest. If you were the boss how would you show up? If you had to pay the bills and salaries how would you really reward people?
In what ways in all the other areas of your own lives are you going the extra mile? How about your kids, your wife, your mother? Do you do what is needed or beyond expectations. Try going the extra mile in the important areas of your life and then change your relationships at work to how you would treat your own family and see the difference.
I dare you!
Pingback from Darren Hobbs » Blog Archive » JDom, XPath and the saga of the invisible namespace
Target Process provides excellent functionality as well as bug tracking. The reports are simple and planning and tracking is easy- reasonable cost- $25US p/mth per user for hosted, 5 free option as well.
Like it more than V1 and Jira
Hello,
Agilefant is an open source tool for agile project (portfolio) management, check it out!
Best regards,
Jarno Vähäniitty
Helsinki University of Technology
www.agilefant.org
anyone who reads this - the max you can set it is 8
Simply use the following way for storing and retrieving a value accross your ASP.NET pages:
*****Storing a value*****
session("myVariable") = "assign value here"
*****Retrieving a value*****
textbox1.text = session("myVariable")
Remember: By Default, these session variables lose their values after 20 minutes since this is the default timeout in ASP.NET. To change this timeout length, simply modify your web.config file accordingly.
Happy Coding!
Pingback from thekua.com@work » Why timeboxing is important
how can I know the connection string parameters for a given database?
When I open a data grid in .NET it would identify the available servers. There should be a way to get this string in other means.
I can not use data grid to access the database because it complains about login.
DECLARE @t TABLE (schemaName varchar(255), tableName varchar(255), colName varchar(255))
INSERT INTO @t
SELECT
S.[name],
T.[name],
C.[name]
FROM
sys.objects T
JOIN sys.schemas S
ON S.schema_id = T.schema_id
JOIN sys.columns C
ON C.[object_id] = T.[object_id]
WHERE
T.type='U'
SELECT * FROM @t
I was playing around with projectpier
it seems really good so far. Any thoughts?
Newbie here and I really want to learn.
I need to extract all the TABLE names along with their column names in sql as a CSV file.
From that file, I wanted to use this information to create a webservice (that I would have to create or find in google), that would probe each table for the user ID so that I could display to said user all information connected to them in a dataview or datagrid or table in VB.Net
Could someone help me with this?
Thanks so much i was desperate for this, because connection string effects much in SQL transaction performance.
<a href='studios.thoughtworks.com/mingle-agile-project-management'>Mingle</a> has had a free offering for less than 5 users. It has had this since it's release in June 2007.
<a href='studios.thoughtworks.com/mingle-agile-project-management'>Mingle</a> is primarily self hosted.
LOL..Cant believe I am one of the so many with the same issue....Thanks for the great info nugget
its very nice.
but i have a problem....
scenario of my application is that whenever server is down or dere is no connection then my application run in the specific defined way else work in the mentioned way....
but m unable to do this if and else
kindly how the connection will be cheked except
"connection.state"
coz i think it searches for connection.open or connection.close to be implemented
Pingback from Default Namespace and XPath in VB.NET
Thanks for the update. Somewhat surprised this isn't documented, very helpfull.
You've made some good points about the JDBC differences between Linux and Windows that we should be documenting better.
One note though. JConnect does actually work with the SQL Anywhere high availability option. The issue is that because of how JConnect works (using the Open Client libraries) you must use a different URL to connect when failover occurs. This makes using HA a little more difficult, but not impossible.
Jason Hinsperger
Product Manager
SQL Anywhere
>JConnect does actually work with the SQL Anywhere high availability option.
While I believe you, the support group doesn't know how to make it happen. Maybe you could provide a URL that explains how to do this.
It is always interesting how when you are working on a problem, someone else in your sphere is solving
agile project management
studios.thoughtworks.com/mingle-agile-project-management
Mingle, an agile project management and project collaboration tool, provides a shared workspace for your entire team. It is designed to suit the way agile management teams think and work, making it the best agile software project management tool
Its basically brute force.
url1 = primary server url location
url2 = mirror server url location
if connect using url1 fails, then use url2
Not pretty, but it works.
Incidentally, some of my colleagues here are surprised that you had to use different URLs on Windows and Linux. As of version 10 you should be able to use the same URL. I'll see if I can reproduce your problem so we can track down what is going on.
Pingback from Triggers | hilpers
Check out the latest from www.agilebuddy.com. Agilebuddy just recently released and is available at a really good price of $9.95 per user per month. It's built on a rich collaboration framework and is really very easy to use.
RD
Agilebuddy also has a full free version available for official open source projects.
Hi
Check out WoodRanch Agile Projects. It is a full featured, enterprise level tool built by people who have many years of experience running Scrum and Agile teams in the industry.
http://wrap.woodranchtech.com
google it, like you...
even the average joe can find the solution to any computer problems by googling it... :D
Awesome - sorted my problem in a minute,
Cheers!
Check out privotal tracker: http://www.pivotaltracker.com
The same can be done using information schema for SQL 2000
declare @StrColSql varchar(2000)
declare @StrSql nvarchar(2000)
declare @TableName varchar(200)
declare @ColmNames varchar(800)
set @TableName = 'Phases'
set @StrColSql = ''
select @StrColSql = @StrColSql + column_name + ',' from information_schema.columns where table_name = @TableName
SET @ColmNames = Substring(@StrColSql, 1, Datalength(@StrColSql)-1)
select Datalength(@StrColSql)
print @ColmNames
visit www.codepal.co.in
I found this page quite useful.
And yet, I'm still going about trying to establish a connection between a Linux Sybase IQ client to a Sybase IQ server, using the iAnywhere driver. I was hoping whether you could help out with the following scenario -
Our setup includes Sybase IQ version 12.7. Although this is the latest release, the installed files appear only as version 9.
Added to the class path is the jodbc.jar, required for registering the jdbc driver, and under java.library.path the path to libdbojdbc9.so.
The connection string is as follows:
"jdbc:ianywhere:driver=libdbodbc9.so;ENG=host;DBN=database"
But when running the program, I get the following exception (with the relevant stack trace) -
Exception in thread "main" java.lang.UnsatisfiedLinkError: no dbjodbc9 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at ianywhere.ml.jdbcodbc.IDriver.try_load(IDriver.java:247)
at ianywhere.ml.jdbcodbc.IDriver.<clinit>(IDriver.java:216)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
I'd appreciate any feedback regarding this issue.
Thank you for providing this much needed documentation,
Noa
Noa,
Forgive me for stating the obvious, but the JVM can't find the libdbodbc9.so. However, I will also say we had some challenges finding a location for libdbodbc9.so that the system would find. A little experimentation is required.
Also we ended up using the ODBC version of the connection sting:
jdbc:ianywhere:driver=SQL Anywhere 10;DSN=SQL Anywhere 10 Demo
Where "SQL Anywhere 10 Demo" is a ODBC DSN.
Hi Wayne Allen
I am santosh from INDIA
Thanks For the Qurty Which u have posted It's really USe full For All
Cheers
san
Check out Silver Catalyst: http://www.ToolsForAgile.com
Pingback from PADNUG Talk: Kanban presentation - Wayne Allen's Weblog « Presentation
Nice presentation. Some bits look familiar :-) Could you add a reference to my blog?
Does anybody know a good agile tool set
that incorporates
1) requirement tracking (doc management and versionioning)
2) project tracking of individual and group tasks
3) release planning (charts, content, most critical path)
4) issue/bug tracking
5) supports distributed teams
Into one seemless (hopefully not too expensive) system. We are looking for one.
Pingback from Different connection strings - SQL Server « Systems Engineering and RDBMS
Pingback from Using XPath to select nodes with namespace in C# / 在C#中用XPath選取具有namespace之節點 | Phanix's Blog
Thanks! - Whops, but they moved it! I spent the last 10 minutes banging at MS's own search engine on their own site looking for "Visual studio 6 service pack 6" and "Visual studio 6 SP6" and other variations (without the quotes) and you think I could FIND it?? ACK! Sp5, and the Sp6 readme(s), Sp6 for VB6 (not C++ which I'm looking for, or the full thing!) argh.. amazing that either of the two stated search terms above don't have the link in the top ONE or TWO results!
C++ is only included in the full download. There isn't a separate one like there is for VB.
Thank. I wanted to confirm my understanding of module variables. This post confirms that my understanding was perfect.
Lovely, saved me boatloads of time. Thanks dude.
Dear Wayne... Thank you for raising this very important topic. While I realize your initial post was from several years ago, it still contains relevant and important information. I believe that I have added some important thoughts on the matter in my October blog post. Thanks for your thoughts
you can get all the columns of a table by following query..
select COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table_name'
Thanks Vicky. At the time of the original post the information_* tables didn't exist.
it looks great..
but will it work with selectNodes? im tryin to access gml data from geoserver`s wfs service..
the DOM object is created well..
but when i try to select nodes according to schema doing the following:
var xmlDOM = xmlhttp.responseXML; // geting DOM through URL
//alert(xmlDOM);
var tasNodes = xmlDOM.selectNodes('/wfs:FeatureCollection/gml:featureMembers/topp:tasmania_water_bodies');
-----------------
the error i get is tht wfs is undeclared namespace..
Imran,
You still need to create a namespace manager with the appropriate uri.
var xmlDOM = xmlhttp.responseXML;
var nsMgr = new XmlNamespaceManager(xmlDOM.NameTable);
nsMgr.AddNamespace("wfs", "http://correct.uri");
var tasNodes = xmlDOM.selectNodes('/wfs:FeatureCollection/gml:featureMembers/topp:tasmania_water_bodies', nsMgr );
Pingback from Manage Your Metrics Before They Manage You; Nelz's Blog