Skip to main content

Posts

Showing posts from 2008

Estimates are not accountability

The author is correct but does not address the challenge of setting customer expectations in this direction. Customers see estimates as contracts. I can't blame them because I expect a auto repair place to stick to their estimate. Why is SD any different? Because it is!!! Auto repair is not software development. In auto repair you generally have clear requirements and the unknowns are limited. All 2000 Ford F150 are exactly the same. Even then, from year to year the F150 is not that different. When a redesign is done, once you have seen it, it does not change. In SD, software changes, technology changes, people change, requirements change, designs change, hardware changes and ect . Nothing is consistent . http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/

White paper ideas on Iterations

This is a good white paper regarding developing in iterations on Agile teams. As you will notice, it does not mention Use Cases or requirements documents. You could assume the requirements are reviewed in the iteration planning meetings or in a previous meeting. In that case, you would use the iteration planning meeting to ask questions, review the requirements and estimate the work for the iteration. http://tig.cmptechnetwork.com/cgi-bin4/DM/y/nBNCe0Nsnos0YLp0GyYS0ED

Article on Dev and Testing schedules during an iteration

This is a good article addressing developing features and QA testing them during the same iteration. Chris offers a good example process. I like the comments that followed because you see different points of views regarding the topic. This brings to light some of the issues with Dev and QA cohesion. I think the example Chris provides makes sense but I also sympathise with the QA person explaining the issues of retesting changing features. IMHO, I think QA has to catch up with development in "agile" thinking. Developers know code is going to change and it will change a lot. With CI, Unit Testing and refactoring, the features evolve over time. QA needs to follow the same pattern in Agile environments. They are not retesting features, they are testing. Features are not half complete, they are not done. (Done means a feature is developed, tested, and accepted) QA should work closer with developers and should us continuous testing (CT) throughout the iteration. T...

Why is success measured by estimates?

http://blog.cutter.com/2008/11/04/software-estimation-a-tough-beast-to-control/ This article was posted under a quoted title "“a tough beast to control”. I agree with the title but 100% disagree with the survey. Meeting estimates IS all about "control." If you want to meet an estimate you have to give the customer exactly what you agreed and control (Deny) any changes they want. Here is an analogy which is similar to one Robert Martin used. You go to your doctor and they say you have a tumor in your liver.(arbitrary organ). They schedule the surgery and open you up. While removing the tumor they find another one in your pancreas .(arbitrary organ). Using estimates as a measure of success would encourage the doctor to sow you back up, let you heal and then say, we did not estimate the pancreas tumor so we could not remove it because we would exceeded our estimate by 10%. Also, I will not get my bonus if we do that and you might not pay for it. The doctor is more ...

Comparing Waterfall and Agile Change

Chris provides a great real world example of how our methods of embracing change correlates to software development. This is one of the best posts I have seen on understanding changes in software development. I see my self using this analogy in the future. Hopefully he does not mind. :) When you use this analogy on your customers, be ready for the follow up question. "So how do we do GPS development?" The customer will need to see your confidence and understanding of Agile development before they buy into it. http://feeds.feedburner.com/~r/ChrisSpagnuolosGeoscrum/~3/428653167/

Technical Managers

Here is an excellent post from Managing Software Development . The article does not distinguish between managing and leading but that is OK because the indirect point is you need to be good at both. I wonder if the amount of time he had to manage the team impacted his management style while the PM was out on vacation. If he had more time, would he had done more. Does this mean people manage to the amount of time they have available? More than likely, Yes. Does this mean that some PMs or technical managers have too much time? No. I think their time is just used in wrong activities. When leading a development team you have to look at each role and make sure they are focusing on the core duties of the role and remove obstacles from their paths. If your PM can't tell you your budget and forecast at any moment in the project, they are probably doing other things that are not as important. http://www.noop.nl/2008/05/how-to-select-a-fine-technical-manager.html?cid=135566419#commen...

Barry Boehm, "Defects found early in the development cycle are less expensive" does not apply today.

I heard this in a podcast and tracked down the session notes where it was said. “why it had taken so long for the agile development methodologies to become known and accepted.” Here were the responses from the panel: T om DeMarco responded quickly with the quip, “It’s all Barry ’s fault!” He went on to suggest that we had all been brainwashed by Barry Boehm ’s argument, first published in his Software Engineering Economics book, that the cost of repairing defects rises exponentially the later they’re found in the software life cycle (for a more recent exposition of this point, see the December 19, 2005 Dr. Dobb’s article by Yochi Slonim , “ The Software Quality Lifecycle “). He said that as a result, the commandment “get the requirements right!” was drummed into the heads of a generation of software engineers. Tom turned towards Barry , smiled, wagged his finger, and said, “And I have never forgiven you!” Barry Boehm relieved the tension in the air by agreeing with Tom . He explained t...

Branching Should be a Planned Activity

Most teams do not consider branch code until it is too late. Many projects forget about branching because they never plan or plan for branching code. If you delivery process is unstable, it is impossible to plan your branching. At times this will cost your customers money in source control merging, developer down time, defects and setting up complicated branches. Branching code should be discussed during iteration planning and be an estimated task or story to be completed at the end of an iteration before releasing or as a release activity. Keep in mind the impact of the next iteration’s or release’s development. This is a good article about Branching Strategies. http://labs.seapine.com/wiki/index.php/Surround_SCM_Branching_Strategies#Branch_By_Purpose

Book Review - Agile Estimating and Planning

This is a very good book and good read. (I like books that are informative but also keep me entertained ) This book has a lot of great ideas and examples of for an Agile team. If you are new to Agile and want some guidance, start here. If you have been doing Agile, this book will give you new ideas. I have incorporated some of the reporting and planning practices into my teams already. The case study at the end is a good to show teams other ways of delivering software. Some people have only worked on one project or at one company and are unaware of other ways of doing software development. Here is a book review too. The book got good reviews so I recommend reading this after reading the book. http://niwotridge.com/BookReviews/AgileEstimatingandPlanning.pdf Here is a related video too. http://www.informit.com/podcasts/episode.aspx?e=F91D5770-B567-494B-8D68-E8053036625C You can find the authors blog in the blog list.

Manage IT by Johanna Rothman

I just completed this book. I think it is a really good book which covers a whole lot of software development. This book could possibly be the best book for first time project managers. I believe many of the PMs understand PMM but do not understand software development. This book gives a view of each project role. The only one that it does not cover is Business Analyst or requirements documentation. It does cover QC, development and of course PMs. It gives a PM a view into development processes like TDD, CI and estimation. Many PMs that are new to SD can read this book and get a great start to manager an SD project. If you are a PM or know some, read this book. http://www.jrothman.com/

Ignorant Customers

Def: Lack of knowledge http://dictionary.reference.com/browse/ignorant I do not say this to be rude but to bring out a point. As a leader you should educate customers. Many people know and understand waterfall. It is easy and structured but many people know it really does not work. As leaders we have to be able to articulate other development methodologies not because we know we can deliver better but for the benefit of the customers. Their ROI is much lower on waterfall than agile processes. They are going to kick and scream but times change and we must evolve.

Matrix Organizations are bad for Software Dev

Development teams need to be teams first and company people second. What happens when your team wants to start using user stories and index cards, but your analyst team manager thinks Use Cases are the best way to document requirements? How about when your QA process is not mature and you keep releasing with defects but the QA manager does not do anything about it? How about your project manager never buys into the team and only cares about being on time and on budget because their review is based on it. Maybe the tech lead wants requirements that never change and never lets the client change their mind. The technical manager taught your tech lead and agrees with everything the tech lead says. Agile or what I like to call "Successful Teams" are teams. They do what it takes to do what the customer wants, deliver features. I am not saying only agile teams are successful but successful teams are agile. If your organization is matrix, get your leadership buy in to override...

Use Cases are required for this team and customer

About 3 or 4 years ago, we decided Use Cases where the way to document system requirements. RUP says to do this so let’s do it. Here are some of the problems. 1. No one knows how to write use cases. They are very difficult to document all the details of the requirements. 2. There were no standard ways to write them. 3. The developers end up providing the content and the analysts become technical writers. 4. They take so long to write. The amount of thrashing over little details, formatting and what the system already does goes on for hours. I have seen 2 hour meetings that completed one use case to only change later or be dropped from scope. 5. Maintenance is almost impossible. 6. On some projects, they actually did Business Requirements Specs first and then duplicated the information in use case format. (Months of requirement refinements) 7. Everyone interprets them differently. QA opens defects because the code is not doing what they think it should. Designers create designs that do ...

You can't support software without documentation

I have struggled with this for some time. Some of our projects spend more on documentation than code. One team required "Operation Manuals". (I put this in air quotes because no one really knows what they are.) Every document is different. I asked around and found out that the operations/support team were the audience for these documents. So I set up a meeting with them and asked, what do you really need and what do you use. What we found is they are really training materials. A new support person reads them to learn the product. Ok. If your staff changes a lot, then maybe there is value in this information. Then, I asked what technical information do you need? We need ERDs. Why? You have access to the database. Not really an ERD, we need a data dictionary because you table names and columns do not make sense. We have to research issues and create reports for our customers. Ok. This has some value because lots of times we do not know our data either. We need to know what the ...

Customers want everything, until they see your quote

2 weeks of planning, 2 months of requirements gathering and use cases, 1 month of creating quotes, Customer's face after getting the quotes, PRICELESS. When a customer is telling the analyst or product manager they need all 10 use cases, you should tell them no. I do not want your money this bad. I want you to have a better product that is a good return on your investment. Your customer wants 10 use cases or features which make up a project or theme. Talk them into only doing the top 3 or 4 features in their priority list FIRST. Only do the requirements for these features. Only do a quote or budget for these features, especially if these features are complex. Stress the point FIRST so they understand, they can do the others next. More often than not, you will not implement most of the remaining features and the first 3 or 4 will be better than originally expected. One project we spent almost 2 months gather and refining requirements. This was for an existing complex system t...

Why are leaders critical in Software Development

Software development is becoming harder and harder to deliver up to customer satisfaction. We all know the Standish reports from the past. I do not need to repeat them here. Agile development has been around for over 10 years now and waterfall, well I imagine the pyramids were built by a waterfall project plan. Projects today are hard to deliver either way. Clients want everything cheap and fast. Project managers do not like things to change. Developers want to build a space shuttle when an airplane will do. Analysis want customers to make up their mind. Product managers want everything faster. Then, there are testers, designers, server teams, DBA and best of all customers. All of these team members have tasks to be completed to delivery a feature, iteration, release or a complete project. Managers will ask all kinds of questions about these tasks. "How much more time will that feature take?" "You are over you estimate on that ticket, why? "How many bugs...

Isn't Leading the Same as Management??

No!!!!!!!!! A leader can be good at management and a manager can be good at leadership but they are not the same. Many times a great leader is not good at managing task and many good managers are not good leaders. Leadership defined by me: The act of creating change in people. Management defined by me: The act of creating change in things. Leaders manage people and managers manage tasks.