However, it didn't work well in this way. Recently, one of my teams admitted that they couldn't continue their work on one of a task the way they chose before, and had to go another way. Some engineers didn't feel good for that, but I would say this is a good thing except that we have been waiting for too long before we give up. If we had admit the failure earlier and changed it earlier, this is a good practice for me.
But we didn't. The solution emerged actually a year ago, and finally put into the PO's scope recently about 5 months ago. In between, some of our engineers worked out some research, so when we began the task, we thought we are quite confident. So we planned a lot of tasks on it and tried to make the story cover everything we wanted to cover, including all the functional and non-functional requirements. We even spend a lot of time to plan for building a monitoring solution to monitor the target system.
With all those effort, and of course we've been distracted a little from the original track, but still 5 months later, we came to a conclusion that this is not the way we want to go. Hey, 5 months, what took you so long to find the failure of one approach? Even with the distraction, we should have got this conclusion in 5 man/days, because this is a high risk thing, and we need to fail fast and move on before we invest too much time on it. Instead, we have the whole business unit waiting for the target system for such as long time and now we have to change our plan.
Software development is a task, but very special one. It is by nature very unpredictable and unrepeatable. In general, all the tasks are at risk, but some are at high risk, some at at lower risk. We simply can't manage those tasks in the way that we manage others, like construction. For example, if we plan 3 tasks in a row, but we fail the second one, what can we do with the third? We can only simply re-plan everything and choose another approach, just as what we did here. Sometimes, we can only fail the whole project or target and admit the failure and move on.
It will be very dangerous our management team don't see this kind of software development nature and try to work out the software in a traditional way. We need to apply the Risk Management strategy on it, which means we always expect failure for tasks and we need to work out the more risky work first to ensure the successful rate. We can't simply estimate the task even though we have to. When a task is at risk we need to prepare another approach early or even prepare the failure. We need to try everything in a simple way to make sure we don't add more risks onto the already risky tasks. When the solution is barely ready to ship, ship it, and yes, you have to, because their are other risks coming in. After you ship the software that the customer could use, then we can take more risks, and in this way, we can try something risky but still have money back.
I heard often our PO or engineers say that we need to have everything cover in the task list. Yes, we do want to have them, but we just simply can't. We need to admit the unpredictable nature of software development and need to build this task list along with the development and the way we build up our knowledge. We don't want to wait, because waiting is a cost. Before we can deliver a useful software, we don't want to add unnecessary cost. We need to discuss and need to plan, but in a barely good enough way. For example, we can't call in everybody every time that we need to discuss something, we need to try more individual interactions instead of global meetings. Some would ask, how can we keep every in sync? I would say, why should we keep everybody in sync? We need to decouple the system into some level so that most of the engineers just need to focus on that part they are working on. We also want to simplify the architecture so that it is very easy to understand and track down different part of the system. Then we don't need to spend time to have wide-spread meetings. If we need to transfer knowledge or share information, some simple words could do that job well. Also, we want to apply mature and popular solution, apply architecture patterns or design patterns onto the system, so that we can describe the solution in a higher level while everybody knows exactly what happen underneath.
But first of all, we need to be fast, fail fast, and get the result fast enough.
In conclusion, software development could not be managed as normal tasks, but only as a list or risks. We always need to prepare for failures and changes.
7 comments:
Very nice post I found your blog by accident I want to say that I love to surf. Post your blog I will subscribe to your RSS feed after all.
I hope you will write again soon!
logic pro x crack
driver toolkit crack
avira antivirus pro crack
air explorer pro crack
You will need to sign into your Amazon Prime Account during the activation phase. It is essential to have an Amazon Prime Account created. This account is only activated by a free login.
primevideo/mytv
primevideo/mytv
www.amazon.com/mytv enter code
amazon.com/redeem
Whilst the Garmin Drive 50 USA L M is your No 1 greatest -vendor,
garmin.com/express
You'll be pleased to learn that this software has been updated and is now available on our website.
Thank you for taking the time to read my writings; I hope you find them informative.
isobuster crack
magix music maker crack
kmspico activator crack
Sincerely, I am so glad I found your site, I accidentally found you while searching on google
for something else, I am still here and I want to congratulate you on a nice post and
a nice blog all over (love the theme/design too),
I don't have time to watch anywhere in the minute, but I noticed and added
your RSS feeds, so if I have time, I will return to
read on, keep up the good work.
apowersoft video converter studio crack
wondershare mobiletrans crack
ibeesoft data recovery crack
window 10 pro crack
In addition to that, the quick aol mail login process is something that allows users easy access to their accounts.
I like your all post. You have done really good work. Thank you for the information you provide, it helped me a lot. I hope to have many more entries or so from you.
Very interesting blog.
Virtual DJ Pro Infinity Crack
Adobe Acrobat Pro DC Crack
Hot Door CADtools Crack
DocuFreezer Crack
BS.Player Pro Crack
NetSetMan Pro Crack
Post a Comment