It has been a while since I last updated the blog. This is mostly due to my computer being in peices. I had to send my motherboard and cpu out for replacement, hopefully they will return shortly. The blog will be moved from MT to SnipSnap in the very near future. I am awaiting a Java update and the creation of blog.sixty4bit.com.
I am looking forward to finishing my migration from Torque to iBatis. I just need one more weekend and I should be finished. But before I can even get started, I will need a working computer again :)
My primary job is working on an application that tracks things that the users think may be true. This means that the user should be able to enter alternate information about some things and select from that list of alternates, one that they believe to be "the most true". This alternate information thing is a new requirement and creating the UI is killing me. We have gone through about 4 revisions now and have yet to all agree that "This is the way to do it!" We haven't even come up with an example that everyone looks at it and go, yeah, I know how to use this.
My original idea was to use a massive amount of pop-up windows, but everyone said the users hated that idea. Which makes sense. My problem is that I don't think the alternate information feature is going to be used that often and I think it will be less painful and easier to understand that way.
All of the other ideas we have come up with so far, stink. Any one out there have any good ideas, or any sites where I could learn some UI principles?
This article is very timely. I will probably re read it every day for the next month. My favorite quote:
5% of the programmers are 20 times more productive than the other 95% ... snip ... the majority (probably that other 95%) of programmers don't read books on programming
This really fits in with my whole "corporate programmers" thought process. It is a sad reality that we have to live with. Most programmers are not geeks. Most programmers don't live and breath computers. Humorously this idea was introduced to me 3 years ago when I met my friend Megan. She wasn't a brilliant programmer, but she got the job done. She stepped up and really made a difference when no one else could. But that code was not pretty. However, she really didn't have much to work with, or time to fix all of the problems. We ended up rewriting the whole thing because it was such a mess. But she got it working.
So, even though the code may not be pretty, it still gets the job done. Even though the programmers don't know everything there is to know about OOP or UML or whatever the latest craze is, they probably know enough to make a working application.
There was a link to a real gem about interviewing in the article as well. It was as informative if not better than the original interviewing masterpeice.
I want to write some more, particularly about Project Greenlight on HBO. During the Monday Morning Meeting today I wrote down a little lesson that I learned from Greenlight last night. Even the smallest change in plans can make a huge impact on the schedule. Now if we only had a real plan. :)
As I have mentioned in the past, corporate developers frustrate me greatly. I have started to learn a bit about why we have to put up with their idiotic ways, so let me see if I can enlighten myself and possibly some others. My employer has a large set of Lotus Notes developers that are still actively developing new Notes applications. However, my employer is now seeing (corporately) that Notes is not very robust and begins to break down at X number of users. They have decided that it would be better for larger projects to use J2EE so some of those Notes developers are going to have to learn Java and how to apply Java in a web environment. So, I would like to answer the "why build tools that create pretty Struts pictures" question.
At my company there are a large number of developers who are not geeks. They don't go home at night and sit down at their computer and develop new tools or work on open source projects. I would be willing to be they don't even go home and sit down in front of a computer. Their job is left at work. Any learning they need to do will be done at work, on the employer's dime. This means that the company must act in some very "ungeeky" ways.
I hate JBuilder. I don't like to be forced to use a mouse to get to certain functionality. I don't like slow development environments. I REALLY don't like licenses. And to top it off, I don't like being forced to click check boxes to create getters and setters when ALT+INSERT, UP, UP, ENTER, SHIT+DOWN (for each property), ENTER will do. Hell, it took me longer to type out how to do it, than to actually do the action. *side note* Is it possible that JBuilder's gui was built to make it is easier to explain how to do things? */side note*
My employer must standardize their tools, and everyone must use them. That way, when you work on one team and then go to another, you will know which tool to use. There will not be any bickering on which tool is better, there will not be a learning curve to get to know the new team's pet tool. The company can order a single product in bulk, and possibly work a deal that will bring the price down substantially and every developer will use it. This saves money and eases transition in several ways.
But it also begs the question, what would happen if the company put the responsibilty on the developers to bring their own tools? Corporate provides hardware (but now the argument moves to Mac vs Linux vs Windows), network connectivity, telephone and a desk and it is up to the developer to know how to use the tool. By forcing the developers to bring their own tools, train on their own time, and be smart about writing code, the company will significatly reduce the workforce. Does this increase productivity? Would this force the company to look twice at a proposed new "application"?
I work for a company that doesn't care about ROI or the bottom line, so this is a "fantasy" arguement for me. There is no way my employer will ever force developers to actually be geeks. There is no way my employer will ever purchase IDEA for me or my team. I have made significant change by introducing CVS and some other Open Source tools. Struts was already starting to take hold, I just kicked it up a notch by singing its praises to anyone who would listen.
New technology in big companies requires baby steps. Big companies and small development houses are very different animals and will never execute change in the same way. Big companies avoid change at all costs where small companies embrace change if it will give them an edge. Humorously, if a small company stays good at what they are doing, at some point in time, they become a big company. When that happens, it becomes less important what technology they use and more important about how flexible their workforce becomes (Microsoft being the perfect example).
I try to treat my team as a small company inside this monster company so that we can stay flexible. But reality is, corporate will send more developers to me as my project becomes more important. And the more developers I have to deal with, the more important it will be to have a standard IDE and standard work environment. Which brings us back to my side note. Corporate must be able to easily train developers on new technologies. Which again points to standard tools, "pretty Struts pictures" and seldom changing ideologies.
Chaos doesn't scale to the enterprise level.
As documented here, the reboot problems are over... because my computer is now dead :( I will have to wait until next month to buy a new CPU/MOBO. I am going to try to RMA the CPU/MOBO, but it is almost a year, so I am not very hopeful.
It is going to suck not having a computer that I can call "mine". But I bet some other parts of my life are better for it. We shall see.
I have been out of the loop for the last three days. My system was randomly hanging whenever I started making it sweat. I could kill it anytime I started up WarCraft III, but it would die when I was compiling or just starting a webapp.
Since I had just installed a new DVD burner, I thought maybe it was a driver issue. So, I tried to reinstall Windows. I couldn't get past the part where it copies the files to the harddrive. So, I bought some new RAM because that fixed the problem last time I encountered this situation. Reinstall of Windows went alright, but the system would lock up or reboot whenever I stressed it. It would reboot while running dxdiag. I had been googling for the answer for the past three days. I was starting to fear that I would have to replace my GA-7VAXP motherboard.
I got a hint from here and here that the problem could be related to power. So, I unplugged my new DVD burner and what do you know... WarCraft ran just fine! It seems that the VIA chipset based motherboards have a problem routing the juice to the parts that need it (can you say CPU?). So, my random reboots, sound looping, video locking problems were not in any way related to drivers or hardware malfunctions. It all came down to my power supply not being beefy enough to handle 1dvd player, 1 dvd burner, 1 cd burner a harddrive, a GeForce FX 5200, Athlon 2200 XP and 512MB RAM. All running on Windows XP. I hope this post helps some poor slup that has this problem in the future.
I have been looking around for a good Bliki for work because the idea still intriques me. SnipSnap seems to be the most integrated and easiest to install. Not to mention the only one I have found :) I have been using SnipSnap at home for a couple of days now and I am REALLY starting to like it. I am considering replacing MovableType.