-
Idea’s Around Agile Development
Posted on February 10th, 2011 No comments“In the confrontation between the stream and the rock, the stream always wins, not through strength, but through flexibility.” – Buddha
We’ve been bouncing around ideas recently regarding our processes and how to deal with contract negotiations while still remaining agile, not sounding ambiguous in our language with the client and still protecting ourselves from future technology changes in an un-standardized market. Here’s a great read that I found online regarding agile development titled “Agile Processes by Robert C. Martin”. The document offers potential solutions for Mercatus to leverage in the future.
The points I really found useful in each section were as follows:
- Individuals and interactions over processes and tools.
- People 1st.
- Let the team configure the development environment based on need.
- A good team isn’t necessarily the one with the players that have the most skills but the one with the players who gel well and work together.
- Working software over comprehensive documentation.
- No documentation is bad, too much documentation is worse as the documents take a lot of time to produce and then even more time to keep in sync with the pace of the project and usually turn into sources of misdirection.
- Create and maintain a short rationale & structure document that the team produces then keeps in sync from month to month. When a new member joins the team they work closely together to transfer knowledge in an interactive manner.
- Produce no document unless its need is immediate and significant.
- Customer collaboration over contract negotiation.
- Software cannot be ordered like a commodity this leads to poor quality and project failure.
- Successful projects involve customer feedback on a regular and frequent basis, rather than depending upon a contract or a SOW. Reference Contract Example Below.
- Responding to change over following a plan.
- When we build plans, we need to make sure that our plans are flexible and ready to adapt to changes in the business and technology.
- A better planning strategy is to make detailed plans for the next few weeks, very rough plans for the next few months, and extremely crude plans beyond that.
Contract Example:
The author negotiated a contract for a large, multi-year, half-million-line, project. The development contract was paid out a relatively low monthly rate with large payouts when they delivered certain large blocks of functionality. Those blocks were not specified in detail by the contract. Rather the contract stated that the payout would be made for a block when the block passed the customer’s acceptance test. The details of those acceptance tests were not specified in the contract. During the course of the project the team worked very closely with the customer and released the software almost every Friday. By Monday or Tuesday of the following week the customer would have a list of changes for the team to make to the software. The team would prioritize those changes together, and schedule them into subsequent weeks. The customer worked so closely with the team that acceptance tests were never an issue. The customer knew when a block of functionality satisfied his needs because he watched it evolve from week to week.
The requirements for this project were in a constant state of flux. Major changes were not uncommon. There were whole blocks of functionality that were removed, and others that were inserted. And yet the contract, and the project, survived and succeeded. The key to this success was the intense collaboration with the customer; and a contract that governed that collaboration rather than trying to specify the details of scope and schedule for a fixed cost.
“If you learn only methods, you’ll be tied to your methods, but if you learn principles you can devise your own methods.” – Ralph Waldo Emerson
The Principles to developing great software:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity, the art of maximizing the amount of work not done, is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
What are your thoughts around agile development?
- Individuals and interactions over processes and tools.
-
The World is Going Mobile Whether you Like it or Not
Posted on December 14th, 2010 No commentsJust like the headline reads, the world is going mobile, and we’re only at the beginning of it all. I recently read somewhere that 80% of mobile users check their social networking status before turning off the lights in the their bed at night, and it’s the first thing they do when they wake up. When you’re on public transit how many people do you see using a mobile device? In our quest to consume more information, mobile devices help to fill the gap between us and the information that we’re looking for, it doesn’t matter if it’s a movie, a train schedule or your Facebook feed.
Enter the mobile device with it xG or WiFi Connection.
As Apple, RIM and others continue to grow their App Stores, while more and more people start using their mobile as their primary internet connection, mobile devicesa re going to out pace PC’s in sales within the next 2-3 years. So what does that mean for anybody involved in software development? “Anybody” being basically everyone, if you use software and send feedback to the provider you’re part of the process. It means that there’s a massive need for more and better mobile software.
I know, I know, pretty obvious right? Maybe not, the Mobile Internet and Mobile Marketing channels have been described as being in the same state as the Internet was back in 1994. Lass than 25% of businesses are engaged in Mobile Marketing. The big question is “WHY”? Could it be the time or the money involved, or is it the collective lack of understanding of the potential that exists in directly marketing to a persons mobile?
In 10 years (2020) will we even have PC’s or will they have been replaced by their mobile counter parts and have a wireless connection to different I/O devices. I see my mobile as a way to learn more about what’s going on in my city, connect with my social circle and do business.
Take Polar Mobile, they’ve grown exponentially over the last year, and there are others joining the game everyday. I’ve worked on mobile development projects with price tags that are in the mid 6 digits range and it doesn’t look like things are slowing down anytime soon as mobile devices are estimated to outnumber people at least 2-1 in most places in the world today. Don’t believe me? Search “Mobile devices outnumber people“.
This may concern some people, after reading some of the headlines about where our collective priorities lie. But I’m not here to start a political debate about the number of people with mobile devices that don’t have access to toilets or clean water in the 3rd world or what day in the future the mobile devices will become sentient and try to eliminate or enslave the human race. I’m just amazed at how our need to connect on different levels and find a sense of belonging in the universe has translated into the birth of the mobile web. Anyway you look at it, we’re in the golden age of opportunity and mobile is the new wild west.
-
Real Software Engineering & The 5 Why’s
Posted on November 16th, 2010 No commentsHere’s an interesting video that was sent my way recently discussing why software engineering, as it’s being taught in Universities, doesn’t work. By not working I mean, it doesn’t produce high quality software for a low cost and sometimes it doesn’t produce working software at all. Check out the video here:
I’m not one to use only one methodology, I like leveraging techniques that work and prefer whatever gets the best ROI for the problem identified, call it Agile, call it Spiral, call it Water Fall…call it Karma.
That said, I’m a big fan of Lean tools as they work in both the manufacturing and software industries where I’ve seen their benefits when implemented properly. If you’re looking for a place to start implementing these types of tools for little to no cost impact on your budget try holding a “5 whys” session with your client to fully understand what the root cause of their problem is. For those of you living in a more reactive environment you may have heard of Root Cause Failure Analysis (RCFA), this is essentially the 5 whys after something has seriously gone wrong. Try asking the 5 whys at the front end of the development process to fully define what the problem is before moving forward with developing a solution and I’m confident that you’ll see a positive step change in your development process. By clearly defining the problem and what it means to be complete your developers will have the understanding and a clearly defined goal to work towards. There is obviously much more that you can do to improve things within your development process, however people tend to adjust to small changes more efficiently compared to one big change. As Doc Brown would say “You’ve got to think four dimensionally”.
For more information on the 5 Whys and an example: Check out any of the following links:
http://blog.carbonfive.com/2010/01/agile/recipe-for-5-whys-with-an-agile-software-team
-
10 Time Management Tips
Posted on April 23rd, 2010 No commentsMen talk of killing time, while time quietly kills them. ~Dion Boucicault
There are two types of time, hard time & soft time. Hard time is made up of the tasks that you need to perform through out the day, like your commute, your job, or sleep. Soft time is made up of family, social or recreational activities. In order to lower bad stress & increase your life span (or your time here on earth) one must strike a balance between hard time & soft time. If we break the day up as follows; 8 hours of sleep (hard time), 8 hours of work (hard time) & 8 hours of other (soft time). The question becomes; How can I become more productive during my working hours so that I can protect my 8 hours of soft time for myself, my family & my friends?
Here are my 10 favourite time tips, to maximize my daily return on energy:
- When you Wake up write down your long-term goals & review them daily. Use SMART as a guide when doing this; Specific, Measurable, Appropriate, Realistic & Time-Limited.
- The first thing you do when you arrive at your place of work should be to divide your tasks into three priorities A, B & C. Then start completing the high priority, or ‘A’ tasks.
- Block off your time for important activities. Schedule an appointment with yourself in your calendar, and stick to it.
- Stop spending hours on fluff, for example don’t prep a proposal or presentation when a phone call or face-to face meeting will get the job done. Stop sweating the small stuff like routine admin items, find ways to automate, delegate or outsource them.
- Say no more often, if you try to please others all the time you’ll end up dropping the ball more often when you start missing deadlines or dates for the real priorities.
- Be punctual, start meetings when they are scheduled, get to work 10 min early & leave 10 min later. Be sure to not punish those who show up on time & reward those who are late.
- Slow down, productivity isn’t about doing more tasks at a faster pace. It’s about doing the right things and doing them the right way…Once. Rushing around, driving too fast & losing your temper about things you can’t control isn’t going to allow you to focus on completing the task at hand. Remember less bad stress = longer, & happier, life.
- Completing unpleasant tasks first. Break down the large, complex tasks into bite size pieces that are easily completed.
- Control technology, don’t let technology control you. Smart phones, IM Chats and email have simply added more ways to be out of touch, and sync, with each other. Simplify your life and leave your phone off when in a meeting or ignore it when talking with someone. Give the people in front of you the attention they deserve and focus on the task at hand. Multi-tasking is a time thief, you spin your wheels in all things that you’re trying to get completed instead of completing one task and quickly moving to the next one.
- Set aside time for family, fitness, educational, social & spiritual needs. Balance is key.
If you plan for balance and stick to the plan you’ll achieve the success that you’re looking for in both work & family life.
-
Grow Your Business Using Word of Mouth
Posted on March 26th, 2010 No commentsAs a business owner, you probably enjoy what you do, or you probably wouldn’t have been crazy enough to start your venture in the first place. Like me you probably don’t enjoy the constant chasing after the next customer, the time, effort and money you put into advertising and marketing with no guarantee that it will grow our sales is most likely one of the most frustrating thing you do. I heard somewhere once is half the money you spend on advertising is wasted; the trouble is you don’t know which half. Wouldn’t it be great if new customers could see for themselves the value in what you do and find you, instead of you having to go find them?
What if your existing customers were so happy with your products or services that they went out of their way to tell the people how great you are and that they should call you right away? Then the only marketing investment you would need would be in getting referrals, making your existing customers your sales team.
A referral strategy shouldn’t be your only strategy for bringing in new customers, especially if you have high growth plans, but for some businesses it could be a far more effective strategy than it currently is. The great thing about a referral strategy is that it is a low-cost way of buying new customers.
Step one of your referrals strategy is to turn your customers into “Raving Fans”. Nobody is going to refer you if your service is just satisfactory – you only get raving fans when you go beyond satisfied customers. Think about what you can do that will make their experience with you memorable – perhaps a small gift, a card on their birthday, or perhaps just the fact that your staff are so friendly and helpful that they make the buying process a pleasure. Remember: Customer Satisfaction is Worthless while Customer Loyalty is Priceless.
Step two is finding out who your loyal customers are, so make sure you have a good record system for your customers’ contact details and then categorize them. Try the ABC system – Awesome, Basic, Can’t Deal with. Then spend more time with the A’s and B’s than you do with the C’s. In fact why not get rid of the C’s all-together?
If you are not really sure who your ABC clients are then one way to find out is to ask them. There are two simple ways to do this:
- Testimonials, ask them to write you a short testimonial to find out what they like about you.
- Customer surveys, ask them some questions and rate the responses. (you can do this with programs like Suurvey Monkey, or via snail mail.
Once you identify your raving fans, be sure to keep in contact with them on a regular basis. The average business spends five times as much on buying new customers as it does on keeping existing ones, that’s more crazy than starting your own business. Set aside a portion of your marketing budget towards keeping in contact and building loyalty with your existing clients, even when they are not buying. A simple method for this is to send out a newsletter, with details of special offers or new products. You can use Mad Mimi or My Emma, and there are probably a handful more that I’m not familiar with.
The next step is to physically ask for a referral, don’t back down on this one, there’s no need to start feeling awkward, you’re asking for something you deserve. Ways to make this easier are to put a referral card in with the purchase, and ask your customer to fill it in later, or get them to invite people to a free event so they can sample your product/service without risk, or give them an information pack to pass on to people they know who might be interested, or even a special offer voucher. There are many more ways to do this just get creative.
Always remember to thank the referrer in a way that will ensure that they like it so much they will do it again and again, and whatever you do, systematize it so that it happens automatically and can be easily delegated to somebody else.
The final step is to think about who you really want as your clients, be genuine and honest. Henry Ford once said “obstacles are those annoying little things that get in your way when you take your eyes off of your goal.”
-
Technorati Blog Claim
Posted on July 13th, 2009 No commentsd5ztmgb9r4