#radio Radio Scotland by EnjoyIT 1.0 http://t.co/gaNHe2KU
34 minutes ago by RealTonyRocha on twitter
ZDNet is available in the following editions:
Developer Justin James shares some of the lessons he’s learned about doing consulting work with OutSystems Agile Platform.
One thing that attracted me to the OutSystems Agile Platform was the development lifecycle; the product is designed from the ground up to encourage Agile practices. You don't have to use something Agile to work with the system, but it enables Agile methodology very well. Here's a walk-through of the lifecycle of a typical project with Agile Platform that works great for me. (Note: Others in the ecosystem may do things differently.)
The iterations
An iteration is a defined block of time to perform development work as a complete unit. On my projects, I find an iteration that is based on 10 hours of estimated development work is just right. At the beginning of an iteration, I sit down with the client, review their list of desired changes, and provide a rough time estimate for each item; this includes the testing/fix time (I guesstimate that for every eight hours of development, I need two hours of testing and fixing). The client selects what will fit into 10 hours based upon their needs and priorities, and then I get to work. When I am done, I demo the functionality back to them. If they are happy, we deploy it to their Staging server for their testing. Any bug fixes ("doesn't work as spec'ed") I do as part of the iteration. Any changes ("spec doesn't match needs") goes into the request bucket. In general, iterations have a turnaround time of one week.
You might think 10-hour iterations are rather short, right? Well, not really. First and foremost, I do this work on a freelance basis; I do not want a situation where if I go over the 10 hours that I'm burning the candle at both ends or being an absentee husband/father. A 10% overage on a 10-hour iteration is one hour; it's four hours for a 40 hour iteration! Secondly, I've found that the Agile Platform is so efficient for me, that I can do in 10 hours what most full time developers need a full work week to accomplish in ASP.NET or a similar technology. As a result, my bill comes in much lower than a typical developer's for the same workload, even though I charge a tidy sum per iteration. Thirdly, it's been my experience that estimation mistakes tend to snowball very easily. A 10-hour iteration constrains that issue. In addition, 10 hours of development work is small enough that the work can be quickly and easily spec'ed out, without much need for changes in the middle of development. Finally, with the number of features done in one of my iterations, the customer wants a chance to review things before choosing the next set of features to implement or changes to make.
Initial project discussion
One thing I refuse to do is provide an up-front estimate. At best, if I think the project can be done in three or fewer iterations, I will tell the client. Some customers do not like this, because they want to see a "guaranteed" price and timeline. I remind them about the other "guaranteed" projects they had with other vendors that quickly went over time and budget, and gently explain that in the world of development, nothing can be guaranteed. When they see that my iteration methodology keeps their costs constrained and doesn't give me free reign to ring up a huge bill, or create a situation where I need to "descope and declare victory" to make a profit, they are usually sold. For a customer who cannot be convinced of this, I do not play ball. I simply do not have the time or the energy to spend on contracts that I know will be hard to make a profit on.
Beyond that, I use this period to get a good idea of the client's up-front needs, particularly to understand their future roadmap ideas to ensure that the application architecture makes it realistic.
Deployment
As alluded to, I like to demo the work on my servers first. I have a server that my customers can access. I recommend to my customers that they have two servers -- one for Production and one for Staging -- but it's not the end of the world if they cannot afford that. Nicely enough, high-end Agile Platform licenses include a not-for-production-use license, and I believe that the cloud offering from OutSystems does as well. Otherwise, the client is free to experiment with the project on my server.
Once the client is happy with the results, I deploy to their systems. Agile Platform makes the deployment really easy. Typically, I just need to log in to the Web-based administration, upload the single OML or Solution file (depending upon how I am working), and after it uploads and compiles it is ready to go. All of the database schema changes are handled automatically. I should use the "Solution" approach because it lets me cut a single, unified file with all of the extensions in it, but since I rarely change extensions, I tend not to in order to reduce file size.
Sometimes a new version will require some data to be inserted into the database or otherwise manipulated. For example, in one project, each customer account has a list of statuses that they can use for workorders. The list can be customized, so when the account is created, it gets copied from a master list. Sometimes I need to inject a new value into that list for a new feature. Instead of needing direct database access, I create an Action that handles the data manipulation, and then tie it to a Timer with no defined schedule. After deployment, I manually trigger the Timer to run from the Web-based Service Center, and once it has run, I disable the Timer. I make sure that future versions remove the Action and Timer completely. As a result, the only times I need direct access to the database are low level data checking or fixing.
Pricing
To make life easy for all involved, I charge a flat rate per iteration. It's a fair rate for the customer, especially considering that any bug fixes are handled for free as part of the iteration. If the iteration goes significantly over time, that's my fault for estimating poorly and it's a good lesson to me. If I'm way under, I offer a "low price guarantee": once the customer signs off on the work and is ready for invoicing, I charge them an hourly rate if the true time spent on the iteration (from top-to-bottom, including planning, review, deployment, fixes, etc.) is under seven hours. This lets the customer know that I am not chiseling them, and provides me with great incentive to plan properly.
Results
Since I started doing consulting work with Agile Platform in early 2011, I have learned a lot of lessons. I had one project become much more work than I intended because the scope of work for the initial iteration had too many open questions at the beginning. I did not ask enough detailed questions up front to realize that the proposed algorithm had a lot of logical inconsistencies, and it ended up getting implemented and re-implemented a number of times. That is a classic programming error that I hope I do not repeat. But for the most part, the short iterations plus flat-rate pricing have done a great job at insulating all parties from the hazards that per-hour and fixed rate contracts typically have.
Justin James is an employee of Levit & James, Inc. in a multidisciplinary role that combines programming, network management and system administration. He has been blogging at TechRepublic since 2005.
#radio Radio Scotland by EnjoyIT 1.0 http://t.co/gaNHe2KU
34 minutes ago by RealTonyRocha on twitterSingTel (All) SingTel acquires HungryGoWhere for $9.4M ZDNet Asia News http://t.co/QuzQio2Z
1 hour ago by nyp_095370X on twitterIntranets need social to survive http://t.co/pdOHvgBP #intranet #socialintranet #intranet20
1 hour ago by hoisc on twitterFanboys on AV for Mac: "ludicrous" "a waste of time" "The Mac will protect me" "the most secure ever" "impenetrable" http://t.co/a1o2Sz7E
3 hours ago by defintel on twitterRT @ameliatmy: the hottest angel investment & venture capital event in #MALAYSIA! will u be there? http://t.co/ChSjkmzu #ABAF
3 hours ago by seraphine on twitterSingapore Game Box in the ZDnet news!
http://t.co/UuTs0SqX http://t.co/YdPKmm39
RT @zdnetasia: SingTel acquires HungryGoWhere for US$9.4 million. http://t.co/Qho1REVZ
4 hours ago by molobok on twitterGartner: Mobile CRM gives better ROI than social - http://t.co/s5OfTAXK #CRM
4 hours ago by RichBohn on twitterRT @zdnetasia: S'pore sets up portal to grow games sector. http://t.co/In8gtj7L
4 hours ago by molobok on twitter#Malaysia: 20% yoy rise in overall #wages for both direct and non-direct labor. http://t.co/5T2e0LUU
5 hours ago by mikebuetow on twitterRT @mikebuetow: #Malaysia: 20% yoy rise in overall #wages for both direct and non-direct labor. http://t.co/5T2e0LUU
5 hours ago by PhotoStencilLLC on twitter@88tc88 RT @KevinZDNetAsia: User experience more important to app monetization than actual content http://t.co/ogbD5wyI… #li #dm12
5 hours ago by eelisam on twitterDubbed the first social #Olympics, this year's summer games have some of the strictest social rules for all involved http://t.co/4HlcqhW3
5 hours ago by 5Loom on twitterValue of big data analytics largely untapped - Zd Net http://t.co/ZuhPrCN4: Pushing cloud limits for d... http://t.co/VyOU0vHz #TheBIBlog
5 hours ago by nextbi on twitterSo much as we know , MTK6575 extremely integrated frequency1GHz ARM Cortex-A9 processor, the superiority of 3G / HSPA Modem, and help the...
16 hours ago by y15822137359 on 5 SaaS adoption speed bumps to avoidI reckon your view: "CRM is strategy, not software", if a company replicating the approach uses in ERP implementation into CRM, what they...
1 day ago by wykoong on Gartner: Mobile CRM gives better ROI than socialThis video will teach you about the Excel fill handle but also provide you with a workook to download... http://www.youtube.com/watch?v=...
2 days ago by TradeBrother on A quick fill handle trick for Microsoft Excelwaiting...
4 days ago by eapete on What should count in a company's market value?Boy, you've opened a can of worms now.
Wait for the rants & raves.
I was puzzling before this whether to replicate the success formula we executed for a financial institute, and come out with a standard s...
4 days ago by wykoong on Drop the egos, copy ideas, then innovateEchelon 2012 - The Awesomer Tech Event in Asia
Echelon 2012 – SEA’s longest running tech startup event goes Awesomer. Catch 50 of Asia’s most promising startups & over 40 international speakers on June 11-12.
Startup Asia Jakarta showcases new product-ready tech startups. Plus: hackathon, exhibition, and speakers. Use promo code CBSi50 for 50% discount.
ZDNet Asia Intelligent Singapore video series
Featuring inteviews with CXOs who define "intelligence" in their markets and reveal how their companies drive business efficiencies through ICT.