| Profilo di BryanBryan Hinton's spaceFotoBlogElenchi | Guida |
|
21/07/2006 Tables in Excel
It is a common joke at Intel about how Excel is used to run the company - in my experience that often doesn’t seem to be very far from the truth. I have been evaluating Office 2007 recently and have found a lot to like about it. The new UI was expecially nice and it seemed in my limited use to make it “easier” to do things. The only downside was that while I love the enhancements to Outlook - the thing isn’t stable enough to use for long periods of time - at least for me. Okay - back to Excel - in 2007 - they are introducing the concept of tables in Excel - this link has a great screenshot tutorial/overview of the capability. Basically the idea is that when building formulas and calculated columns you no longer have to use cell references, but you can use columns names outlined in a header row. So if you have two columns named Out_Date and PrevOut_Date - you could add a third column called Cycletime which took Out_Date - PrevOut_Date as the formula - no A3, B7, etc.. References.
Technorati tags: Excel 2007 14/07/2006 Intel’s Conroe processor blasts AMDWorking for Intel has been a lesson in humility the past year or so especially as AMD has really kicked sand in our face. It was great to read Tom’s Hardware ‘s review of the soon to be released Conroe processor - http://www.tomshardware.com/2006/07/14/core2_duo_knocks_out_athlon_64/ . Now I realize the fight is far from over and hope that our chip designers (I develop software for the manufacturing side of the house) continue to crank sweet new processors out. But the bet the company made over the last two years to move to the Core architecture is starting to pay off. You combine that with a much needed repurposing (and resizing) and hopefully we’ll be better positioned to be the tech leader going forward.
05/07/2006 Team Dynamics – the weak weed out the strong?
David Anderson has an interesting post about a book he recently read that suggests “In flat structures with highly empowered, self-organizing teams (Farson calls these highly participative teams) the team members will tend to attack and weed out the strongest (or stronger) member(s), often the leader. In hierarchical structures, with command and control structures, the members will tend to attack and weed out the weaker members.” David then makes some conclusions about what this would mean if it were true for Agile development teams (which tend to be more flat than hierarchical). He suggests that if the book’s author is correct than team membership would be better served to be grouped according to technical ability (with the groups being based on like ability) rather than spreading the weaker technical members around. At Intel I am not sure how I see this playing a part – our culture is hierarchical by nature and so even in the Agile teams command and control structures exist. Also it becomes a little more difficult because you always have to factor in politics into team dynamics at companies as large as Intel. Weaker technical people may be much better at playing the politics and that muddies things because in a lot of cases weaker technical skills can be masked by playing a good political game.
Technorati tags: Agile 27/06/2006 Version Control Strategy Recommendations for Team Foundation ServerRoy gives his opinion on how to handle versioning in the context of Microsoft’s new Team Foundation Server Source Control system. He describes when and how to use labeling, branching, etc… in the context of a versioning strategy. A Simple Version Control Strategy Using Team System
12/06/2006 Incorporating Agile Methods - Tech Ed 2006
Peter Provost and Alan Ridlehoover from the MS P&P team talked Agile and how to introduce it while sharing their experiences in doing that at MS. The stuff in italics are some thoughts of mine pertaining to my projects related to the stuff Peter and Alan were presenting on. The notes are kind of rough - but stuff in Tech Ed 2006 comes pretty fast and so in order to keep up I am going to pass it along as fast as I realistically can.
Give the team time to gel - don’t expect miracles in the 1st and 2nd iterations Encourage continuous education Avoid knowledge silos - the joke around this was that this was the “Hit by the bus” now called “Winning the lottery” (more politically correct) concept. Get a coach or mentor - a coach will help keep you honest - gives you a different and perhaps more objective perspective.
Encourage questions - a team should question each other - for understanding and to make sure that we are doing the right things - it is okay to challenge people (although you should make sure you do this logically - I have worked with people that challenged everything and you quickly learned that they were just being difficult and rarely did their challenging help anything).
Work on the most important things first Stack rank your work by its importance to the customer Reevaluate the stack and the plan frequently If a developer gives you an estimate longer than 3 days he is lying - he doesn’t know. Provost said that he was a terrible estimator even as long as he has been doing software development Don’t, Don’t, Don’t Gold Plate - Don’t do what the customer hasn’t asked for TDD, Refactoring, continuous integration, and emergent design When you need to explain the refactoring cost to a user - don’t use refactoring with the customers - use soft technical language like - it will take me a couple of days to make room for it and a couple of days to add the feature Came back to pair programming - code reviews, code reviews, code reviews Reward individuals for behaviors that are team focused - how do we do this?? Represents a culture shift and while not a core Agile practice - as Agile methods proliferates this may come as a natural shift as the org values the team over the individual Don’t encourage rock stars - encourage team players (we want everyone to be rock stars) - no cowboy coders Remove roadblocks to success - that can mean a lot of things - he emphasized removing those who won’t play as a team. The slide initially said - fire those who won’t play along. People work on features, they don’t own them - everyone does Stick with it there will be hard - Constructive Confrontation is key - we need to be open and honest
10/05/2006 People are the key to software success
I was led to this article by an internal mailing list at Intel that centered around Agile Development. Agile programming, particularly XP, is gaining popularity within Intel and many teams have started to find greater success using it rather than the other methodologies that had been practiced. I am sure everyone has their own explanation for why that might be so - and many of them may try to explain it by saying that the process is light enough to allow them to do their job. Others will focus on the increased emphasis on communication as the driver for success. Cockburn points to communication as a major driver, but for a different reason. InconsistencyCockburn identifies the inherent inconsistency that we have as humans as being a major failure point with projects. He then identifies frequent communication as the factor in driving out that inconsistency. Being good at communicating and looking around counter inconsistency, leading to the prediction that methodologies can make good use of low-precision artifacts whose gaps are covered by personal communication. Project histories also support this prediction, subject to the normalization of an adequately skilled staff, including management. So the frequent and close proximity communication that XP promotes drives out the inconsistency in the project participants allowing for great success. In the article he talks about his struggle in trying to explain the success of projects and that he finally concluded that process was subordinate to people in defining the reason for success of a given project.
Technorati tags: Software Development, Agile 27/04/2006 A view from a Team Foundation Server Dev team member on Requirements Management
I thought this was an interesting thread on the Team Foundation Server forums about how MS does Requirements Management at least from a TFS perspective. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=363629&SiteID=1
17/02/2006 My Skype experienceIt is my daughter’s second birthday - I am in Tel Aviv and she is in Arizona. I check out of my hotel in Tel Aviv in the morning which is still the middle of her night, at 3pm in the afternoon I turn in the cell phone that work had let me borrow (still only 6 am AZ time). After leaving work not too much later I make a mad dash to Jerusalem to make a couple of last minute purchases that I hadn’t been able to get done previously. After losing and then finding my rental car keys in Jerusalem (another story in itself) I drive back to Ben Gurion airport to get there early enough to get through Israeli security (which in my mind is much more efficient and not as much a hassle as US security although I have heard others have differing opinions on that). So I am sitting in an airport 7,500 miles away (that is how many miles I get on my Continental OnePass account anyway) without a really good way to call and wish her Happy Birthday.
Technorati tags: Hinton Family 16/02/2006 Trust in Project Management
David Anderson has some great points on Project management - I am a regular reader of his blog - recently he posted about trust on project teams. While he deals with software projects I believe that the principle holds true whatever domain you might be in. In a recent blog he commented that in analyzing how agile a project was his one essential question was “How much trust is there in the room?” His contention is that “Documentation, contracts, reviews, memos, other non-verbal communication, verifications and validations are a reflection on the amount of trust involved” I agree completely - years ago contracts and documents took the form of mere handshakes because people trusted each other enough that documentation wasn’t necessary. Obviously times have changed - you sign your life away anytime you do anything. Communication (and documentation is not communication) is key to forming trusting relationships. If you have worked on a project or in a group or even simply as pairs where a high amount of trust existed it is a very satisfying and rewarding experience and usually fairly productive!
Technorati tags: Agile, Software Development 31/01/2006 The myth of cost when comparing Oracle Explain Plans
The cost that shows up in Oracle Explain Plans has long been a source of confusion for developers. I can’t count how many times I have heard experience Oracle developers comparing the cost of Explain Plans between different queries.
27/10/2005 Oracle and Indexes - Some tips
Tom Kyte is one of the best in the business when it come to Oracle and is the Tom that many people rely on at Ask Tom. Here is a link to an article that has him talking about some common myths about Oracle indexing. I get questions on these exact things often. I even have people who have worked with Oracle for years that try to tell me that some of these myths are true. I don’t always have time to provide them examples to back up my point so having Tom out there to come in and settle the dispute is nice. Here is a quick summary of his tips
05/10/2005 Software Project EstimationGreat article by David Anderson on project estimation - he is an agile guy so he tends to a be a little harsh on the traditional PLC estimating techniques - he talks about alternative methods to estimating based on Agile and FDD (Feature-Driven Development). My experience with project estimation is that most of the teams (myself included) don’t know how to do it really well and so we guess and then work ourselves to death because we always estimate optimistically (or get surprised by the extreme amount of process that gets in the way and slows us down). David speaks to the waste of effort from a customer perspective and a developer perspective in estimating effort because the end result is numbers that don’t mean a whole lot. On the other hand he says working the requirements and breaking them down into pieces that gives us a work detail as well as helps us in understanding more completely what the customer is asking for. So focus on analyzing the requirements and outputing information surrounding them rather than focusing on some number that your are supposed to give.
03/10/2005 Comparison of CVS versus Source Code Control in Team Foundation Server
I am cleaning out my blog folder after getting quite behind in all the things I have been wanting to post - Here is some good stuff on the new source code system in VS2005 (Team System version) - I might add that MS now has two solutions - VSS and TFVC (Team Foundation Version Control)
15/08/2005 Anatomy of a Leader vs. Anatomy of ManagerGreat article - they aren’t the same thing even though it seems like a lot of organizations treat them as if they are. Getting leadership and management in your organization
Technorati tags: Management, Leadership 08/08/2005 Foray into Table functions - dynamically creating rows
Today I ran into the challenge of having to dynamically create rows in a query - I wanted to take a set of rows and based on certain values in the each row turn it into one or more rows. So in a result set of 3 rows I might want to end up with 53 rows. In my scenario my result set was configuration parameters that describe how to set up my buckets. For example my config table might have 3 rows Row# Duration Bucket_size Row 1 I want to become 42 rows representing 42 buckets of 4 hours each - row 2 I want to become 10 rows representing 8 hours each and row 3 becomes 1 row representing 24 hours. Now I racked my brain trying to figure out how I might do this using connect by or some other logic, but couldn’t come up with a way - that method depends on you having all the rows you need and just linking to them by certain criteria - I needed to create rows based on the content of the specific row. I knew that I could always take the parameter data (shown above) and create the rows in temp tables or something like that using PL/SQL - but that required a processing routine and the storage of the data and I really wanted to be able to do this in one SQL statement. That is when I turned to Tom Kyte’s books - We have largely been an 8.1.7.x shop for a long time and are just beginning to move systems to 10g. I am fortunate enough to be able to work on a project using 10g and all the new features so I had some more options at my disposal to solve the problem. Table functions were the answer - if you haven’t seen or heard of table functions I recommend looking at the Oracle docs or even better Tom’s books which explain them much better than I ever could - I will however give you an example of how I used it. First I created the Table function (Tom’s examples were key in helping me come up with this)
What happens here is you pass into the function a result set representing the parameter table (those three rows listed above) - I fetch the row - based on two values in that row I figure out how many rows I need to create and iterate through - creating them and adding them to the collection - note that the function is pipelined so I return NULL at the end of the function, but as I generate the new values for the collection I send them back to the client (effectively returning them) using the PIPE ROW call - The way I think of that to make sense out of it is it is like reading one of the rows from disk and returning it back to the client while you go get the next row (or in our case generate the next row). So that is the logic to create the rows - now lets see how we use that function in a SQL statement to get what we want.
The Table function part can be found in this section - table(mypackage.createVirtualTable( COLUMN_VALUE 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 176 184 192 200 208 216 224 232 240 248 272 BEGIN_DATE END_DATE BUCKET_SIZE BUCKET_NUMBER 09-Aug-2005 1:17:53 09-Aug-2005 5:17:53 4 1 09-Aug-2005 5:17:53 09-Aug-2005 9:17:53 4 2 09-Aug-2005 9:17:53 09-Aug-2005 13:17:53 4 3 09-Aug-2005 13:17:53 09-Aug-2005 17:17:53 4 4 09-Aug-2005 17:17:53 09-Aug-2005 21:17:53 4 5 09-Aug-2005 21:17:53 10-Aug-2005 1:17:53 4 6 10-Aug-2005 1:17:53 10-Aug-2005 5:17:53 4 7 10-Aug-2005 5:17:53 10-Aug-2005 9:17:53 4 8 10-Aug-2005 9:17:53 10-Aug-2005 13:17:53 4 9 10-Aug-2005 13:17:53 10-Aug-2005 17:17:53 4 10 10-Aug-2005 17:17:53 10-Aug-2005 21:17:53 4 11 10-Aug-2005 21:17:53 11-Aug-2005 1:17:53 4 12 11-Aug-2005 1:17:53 11-Aug-2005 5:17:53 4 13 11-Aug-2005 5:17:53 11-Aug-2005 9:17:53 4 14 11-Aug-2005 9:17:53 11-Aug-2005 13:17:53 4 15 11-Aug-2005 13:17:53 11-Aug-2005 17:17:53 4 16 11-Aug-2005 17:17:53 11-Aug-2005 21:17:53 4 17 11-Aug-2005 21:17:53 12-Aug-2005 1:17:53 4 18 12-Aug-2005 1:17:53 12-Aug-2005 5:17:53 4 19 12-Aug-2005 5:17:53 12-Aug-2005 9:17:53 4 20 12-Aug-2005 9:17:53 12-Aug-2005 13:17:53 4 21 12-Aug-2005 13:17:53 12-Aug-2005 17:17:53 4 22 12-Aug-2005 17:17:53 12-Aug-2005 21:17:53 4 23 12-Aug-2005 21:17:53 13-Aug-2005 1:17:53 4 24 13-Aug-2005 1:17:53 13-Aug-2005 5:17:53 4 25 13-Aug-2005 5:17:53 13-Aug-2005 9:17:53 4 26 13-Aug-2005 9:17:53 13-Aug-2005 13:17:53 4 27 13-Aug-2005 13:17:53 13-Aug-2005 17:17:53 4 28 13-Aug-2005 17:17:53 13-Aug-2005 21:17:53 4 29 13-Aug-2005 21:17:53 14-Aug-2005 1:17:53 4 30 14-Aug-2005 1:17:53 14-Aug-2005 5:17:53 4 31 14-Aug-2005 5:17:53 14-Aug-2005 9:17:53 4 32 14-Aug-2005 9:17:53 14-Aug-2005 13:17:53 4 33 14-Aug-2005 13:17:53 14-Aug-2005 17:17:53 4 34 14-Aug-2005 17:17:53 14-Aug-2005 21:17:53 4 35 14-Aug-2005 21:17:53 15-Aug-2005 1:17:53 4 36 15-Aug-2005 1:17:53 15-Aug-2005 5:17:53 4 37 15-Aug-2005 5:17:53 15-Aug-2005 9:17:53 4 38 15-Aug-2005 9:17:53 15-Aug-2005 13:17:53 4 39 15-Aug-2005 13:17:53 15-Aug-2005 17:17:53 4 40 15-Aug-2005 17:17:53 15-Aug-2005 21:17:53 4 41 15-Aug-2005 21:17:53 16-Aug-2005 1:17:53 4 42 16-Aug-2005 1:17:53 16-Aug-2005 9:17:53 8 43 16-Aug-2005 9:17:53 16-Aug-2005 17:17:53 8 44 16-Aug-2005 17:17:53 17-Aug-2005 1:17:53 8 45 17-Aug-2005 1:17:53 17-Aug-2005 9:17:53 8 46 17-Aug-2005 9:17:53 17-Aug-2005 17:17:53 8 47 17-Aug-2005 17:17:53 18-Aug-2005 1:17:53 8 48 18-Aug-2005 1:17:53 18-Aug-2005 9:17:53 8 49 18-Aug-2005 9:17:53 18-Aug-2005 17:17:53 8 50 18-Aug-2005 17:17:53 19-Aug-2005 1:17:53 8 51 19-Aug-2005 1:17:53 19-Aug-2005 9:17:53 8 52 19-Aug-2005 9:17:53 20-Aug-2005 9:17:53 24 53 22/07/2005 Software Development - Back where we started?
Great post by Tom Kyte (well-known Oracle guru and author of Ask Tom) - No Silver Bullet - he reflects back on an article that he read in 1987 that there is no Silver Bullet in software development and made some predictions about the future. I was 10 at the time that was written and more interested in GI Joes - my family had likely purchased our first computer maybe a year before or so (Tandy 1000 SX - 8 Mhz - 640k (that was with the more memory my Dad had purchased) - and two 5 1/4 floppy drives - no HDD). Almost 20 years later the author was amazingly accurate. Despite all of the advances today in languages, IDEs, standards, etc… software development is still a very inexact science. My first proposal is that each software organization must determine and proclaim that great designers are as important to its success as great managers are, and that they can be expected to be similarly nurtured and rewarded. Not only salary, but the perquisites of recognition office size, furnishings, personal technical equipment, travel funds, staff support must be fully equivalent. Great designers, not coders. People who can put it all together. I think he got that right (but we still arent there yet).
Technorati tags: Software Development 11/06/2005 On my way home
Well - it is 6:15 am Orlando time and I am sitting in the airport connected to a data jack because there are no other internet options - so far so good - but 50 Kbps is not the optimal option. Some would argue that was the speed/reliability of the TechEd wireless network during the week though!!!
Technorati tags: Tech Ed 2005 09/06/2005 My wife replies
I have been telling my wife all week to check out my blog and she finally did - and came up with a pretty snappy response. She is definitely a good sport allowing me to get my technology fix especially since today (it is now past midnight) is our anniversary - six wonderful years - she is the best!!!!!! I love her so much and can’t wait to see her on Saturday!!! 07/06/2005 Where have all the testers gone….In my organization today everybody does everything - if we started using Visual Studio Team System today we would all have to use each piece because everyone does everything. I am not quite sure why either. Every class I take, conference I go to, my whole Computer Science education talked about division of labor and establishing roles. Industry as a whole didn’t really start to be productive until what… the good old assembly line - focused roles so that people could become good at what they did and increase output and quality. Some might argue that roles end up limiting growth, etc… I would disagree. Roles give people a choice - they can choose to become very proficient in their core competency and if they choose they can stay there and provide great value to the company on a continual basis or at some point they could under guidance by their manager, find a mentor in a role that they want to grow into, learn and work towards that goal. This also would promote and facilitate appropriate career growth. At least that is my take on it - 01/06/2005 Random Thoughts on Planning
Planning
Technorati tags: Software Development |
|
|