On my wife's recent trip to Seattle to visit a friend she stopped by the Microsoft company store for a little geek shopping. One of the gadgets she brought home was a Microsoft Touch Mouse.
Google finally released a beta version of Chrome that includes bookmark sync and extension support on the Mac. Chrome can now become my primary browser on Windows and Mac. One problem I'm having with this latest Chrome beta on the Mac is that my Square Space Create a Post functionality crashes the Chrome Tab as soon as I start typing in the body.
Aside from that crashing on square space, I really like Chrome on both platforms and plan to continue to use it.
On Janurary 5th, 2010 I start a new job. I've been reflecting on the past 6+ years at my former job, mostly around what to write on the exit interview paperwork. I think I've got some pretty honest truths to share with who ever reads it.
As a Software Development Manager one of the biggest changes the company must embrace is listen to your customers. More then that, the employees of the company must interact with the customer. I'm not suggesting that they aren't talking to customers but I am suggesting that there isn't a lot of listening and consideration of what is being said.
I have seen a lot of features released that really have little or no value to the customer. The feedback that does make its way to the software team is rarely what the client asked for. Any context related to the problem is either withheld or ignored and useless information. This is the wrong approach!
The folks building the software need the opportunity to interact with the customer directly. I'm not saying that Software professionals should be account managers or maintain client relationships. What I am saying is that Software professionals should have the opporutinty to interact with the customer so that they can build the best solution for the customer.
The final point I'd like to make is that simple is better. Build the most simple easy to use feature you can, put it infront of customers and then listen to the feedback and adjust accordingly.
With that I wish you all a Merry Christmas and a Happy New Year!
This is a great article. It does an excellent job at explaining the difference and pointing out the impact poorly timed meetings can have a on a Maker's productivity.
http://www.paulgraham.com/makersschedule.html
I recently read an article by Tom DeMarco. I agree with the points he makes about control over software projects.
I frequently see the desire to control every aspect of a project from the number of hours the team works on any given day to listing every detailed task for the project before the project ever starts.
There is far too much focus on the end date of a project which causes everyone to forget what the more important goal; transformation of the company or how it does business.
Here is a link to the complete article (PDF) http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf.
I spent far too many hours this week in meetings about how the software development process can be maniuplated or shortcut (read: ignored) to meet some arbitary date.
This scenerio starts about a month ago when a critical issue in an application is identified. The issue was escallated as a data corruption problem and that it needed to be fixed immediatly to be able to service a major client. My team jumped on the issue, worked to find the causes and implement a solution. The problem turned out to be an AJAX related UI problem and not a serious data corruption issue. A workaround was also identified and apparently used while the fix was implemented and tested.
We turned around the fix, QA testing and a release in about 3 weeks working nights and weekends. After the release we had to retest a previous build after merging in the emergency fixes. We completed this on time and are ready for the originally scheduled release date.
Now we turn our attention to the next effort. The next business day after the above items were delivered the hammering about the next effort begins. It starts out with "We need a schedule by the 3pm meeting!" which is only 3 hours away. The main problem with producing the schedule was that the 2 weeks of planning and confirming scope we were going to have available to us was consumed by the emergency.
This past week everyone seems to have forgotten about what the team spent the past month working on dispite the daily updates and bi-weekly status reports.
The result of the meetings this week was that extensive overtime would be required an expected to meet a deadline that someone outside of the software team made up and committed to. I'm sure said individuals will not be the ones working nights and weekends away from their families.
On top of this they are terrified of showing the client what has been built until it is imposisble to make changes with out impacting the release date. This cuts against agile development and my personal best practices.
I hope that someday I get to work for an organization that embraces modern software practices and puts building quality software above politics and feelings. An environment where software productivity is measured by delivery rather then the number of hours would be a big plus.
I hope this can serve as a learning experience for the less seasoned readers or at least a bit of humor for the well seasoned.
Several years ago in a design review a developer was given feedback about a particular table design. The design was fairly simple. It looked something like this:
In the design reivew, the developer was instructed by his manager to modify the design to the following:
The design was modified as instructed.
The impact was that anyone writing a query starting at the top of the structure would have to remember to use 'type = 1' or risk displaying incorrect data. As it turns out even the original implementor frequently forgets about this requirement. Numerous bugs have been and continue to be caused by this design due to frequently missing the need to specify the type when joining to this table.
A fiend and colleague recently linked to my original type = 1 post which got me thinking about a potential solution for the problem.
A fairly simple and hopefully not too painful solution would be to create a SQL view for each type.
For example, MyTable2Parent and MyTable2Child. The view would contain the type specific qualifier and allow developers writing other queries to explicitly join to the desired entity.
This change would make the SQL statements easier to read as well.
Those of us at my day job that have company laptops have a pile of security software on them. I do not dispute the necessity of such software, only the software chosen for the job. All of our laptops are still running Windows XP.
- Symantec
- eEye Blink
- ESET
I downloaded my copy of the Windows 7 Beta (x64). Microsoft did a great job with the installer. Very hands off isntallation. It went fairly quickly too. I spent about 45 minutes on the installation.
I have formatted my Windows 7 Beta drive and installed the Windows 7 RC. This new build is very solid. I have been running it since it was released on MSDN and have had no problems or complaints. I am impressed by the quality of this operating system. Microsoft has stepped up their game.
I look forward to dumping Windows XP and Vista when Windows 7 is released. Window 7 is more solid at RC then XP or Vista was at release.