Agile Development
- How does Cloudspace's agile development process work?
- All projects are built in week-long development sessions -- noon Friday through noon the following Friday -- that we call "sprints". The first sprint begins with a kickoff session where the client describes the project to the developers. After the client's project description, and in all future sprint kickoff sessions, the developers work with the client to determine what to build in the current sprint. Pairs of programmers (see pair programming on Wikipedia) then work together over the week to complete the tasks agreed upon at the kickoff session.
- The primary goal for the end of each sprint is always to have an end-to-end working version of the application; though for the first few weekly sprints this is usually just a rough prototype if the project has much complexity. Each successive sprint makes the application better by adding new features, fixing bugs, improving performance, and completing other requests made by the client. Weekly sprints end with a sprint review and product walk-thru at 11 am on Friday. If the project requires additional sprints, the sprint review transitions into the next week's sprint kickoff at noon.
- If you have a very small project or just want to create a minimal prototype to help get funding, one or two sprints may be enough to meet your needs. However, most average size projects have a launch-ready version of the application ready within five to six sprints. Larger projects can obviously take much more.
- If at the end of any sprint you feel the project is ready to go, or you are unhappy working with Cloudspace, you are free to call it "finished". (Note: We are pretty sure that will be the former.) All we ask is that you give us a week's notice if you think that you will not be needing sprints we already have booked so we can schedule another client that is waiting to kickoff their project.
- How can I learn more about agile application development?
- Rather than working really hard only to end up writing something inferior (we are developers, not copy writers after all) let us point you to the excellent agile development article on Wikipedia for a good introduction.
- How are development sprints billed?
- Sprints are billed at $6000 per developer pair per week. The average project uses one pair of developers for each weekly sprint. If you have a complicated project or a tight deadline, it is possible to employ multiple developer pairs per sprint.
- Do you offer agile training and consulting?
- Yes we offer agile consulting services on a per day per pair system. We'll send our experts to your team and explore agile methodologies, review code, or help you plan your next project. Pair consulting is billed at a rate of $2000 per day.
-
- What if I need a quote to get my project approved by corporate?
- We know that agile process is not 100% compatible with a lot of larger company procurement processes. While we aren't going to change our system that works to mesh with a busted purchase process, we can offer some advice. Most average size projects begin to take solid shape by five to six weeks. So you could get a budget approved for $36,000 for 6 weekly sprints. Better yet, plan on a buffer of $48,000 for 8 weekly sprints on an average size project. If you are happy with the app after 6 weeks, call it done. Give the extra $12k back to accounting -- they will be shocked, trust us.
- What are the up-sides and down-sides of agile development?
- We will try not to be too biased here, but we do feel that there are many more positives than negatives working with agile development over traditional methods -- otherwise we wouldn't have chosen to use it.
- From the client's point of view, the most obvious potential issue with agile is that there is no fixed quote at the start of a project. While this is not how most people are used to working, and it can cause issues with procurement (see above), several factors have made us feel this is the right way to go. The first and biggest overall reason to use agile is that projects change over time -- especially after a client sees a first prototype, sees what assumptions were right/wrong, and gets a million new ideas. Since we decide what we are going to build each week, we are free to adjust to all of the new things that we learn during the project instead of being locked into building something specific based on a quote. We strongly feel that this process alone is the reason most traditional application development projects fail.
- Another big benefit is the elimination of all of the time and work it takes to develop specs, put out RFPs, wait for bids, negotiate terms, etc. These are all thrown out the window with agile development. Rather than wait several months just to get started on a project -- which is then likely to be locked into building a non-optimal solution as mentioned above -- we have a discussion, figure out what you need, and get started developing. Simple processes, fixed schedules, and highly-competitive standard pricing make it easy to work together.
- Another concern we hear mentioned is, "Why am I paying for two developers to pair program instead of one. Aren't I wasting money?" The simple answer is, no. Studies have shown that the gains in quality alone from having two minds working on solutions more than make up for the added cost. But when you factor in that having two people at one machine means that they are pushing each other to work for 8 full hours a day, you are more than doubling the average 2 hours of productive "in the zone" coding that non-pair programmers have been shown to deliver in an average day. Further, being so open about what each developer has to offer, ensures that knowledge is transfered rapidly and that developers that can't keep up are quickly removed from the team.
- The final potential issue is client involvement. Agile development requires the client to attend weekly sprint kickoff/review calls (often one longer call) and to respond to email questions from developers throughout the project. Discussion is highly valued over rigid specs in agile. We think this is a huge benefit, but it does require a commitment on the part of the client to be involved. And as such, it is worth pointing out up front.
- What if I need a quote on a large project?
- Give us a call (407.823.8808) and tell us what you are looking to do. Often it makes sense to break up large projects into smaller, concurrent projects which you can get easier approval on. If this isn't possible, we can give you our best guess at how many weeks to budget for the project. At the end of the day, the project may be completed quicker or features may have to be cut to hit the estimated deadline.
- How are your applications hosted?
- Primarily, we host in the cloud using Amazon Web Services relying on services such as EC2, S3, and EBS. By hosting your application with these services, we can launch with modest and low-cost computing resources, but quickly scale up to accommodate growth, without making long-term commitments. We'll help you to set up your own account with Amazon and you'll be billed for their service usage directly.
Cloudspace Professional Services
- What is Cloudspace Professional Services?
- Cloudspace Professional Services is a dedicated group of developers and support staff inside Cloudspace which helps clients with ongoing maintenance after a project has launched. This group specializes in the addition of smaller features, bug fixes, and content updates to live applications. The Cloudspace Professional Services team are also available to answer any questions you have by phone or email to help you make the most of your application.
- Do you offer hosting and domain registration services?
- No, we focus exclusively on helping our clients maintain, support, and improve their applications. We are happy to give recommendations on service firms outside Cloudspace that you can use in these areas.
- Is there a minimum retainer to use Cloudspace Professional Services?
- Yes, we currently require a 5 hour ($375) per month minimum retainer. We do this for several reasons. The most important reason is that having tens of thousands of applications that we spend an hour or less with a month does not allow us to have the knowledge we need to deliver high quality service. Second, we have found that clients who have set hours available each month are more likely to make the updates needed to make their application succeed. Finally, to be 100% transparent, supporting live applications is hard work. It has a lot of overhead in both cost and knowledge. We need to set a minimum monthly fee to make sure we are focusing on the clients who are most committed to having Cloudspace as a partner in building their projects and their business.
- How are Cloudspace Professional Services priced?
- Pre-paid retainer hours, including the minimum monthly retainer, are billed at $75 per hour. This is a substantial discount over our standard $125 hourly rate. You can adjust the number of retainer hours for the coming month, from the minimum retainer up in 5 hour blocks, at any time prior to billing for that month at the $75 rate. (See billing schedule below for more information.) Hours worked over the retainer will be billed at the standard $125 per hour.
- Note: If you have a large number of updates, or a big update, you can always run a weekly development sprint at any time.
- Does Cloudspace Professional Services also use pair programming?
- Unlike when creating a new project, pair programming does not have as large a benefit for all application updates. As such, most updates are done by a single developer. If there is a complicated task, the developer working on the update can always pull in a second developer to pair program the solution when needed.
- Do you support applications developed outside Cloudspace?
- The short answer is: maybe. We need to do a review of of your current application to familiarize ourselves with the code, architecture, security, etc. The cost for this code review is $2000 for an average sized application. After an application is found to be of high quality, we will happily maintain it through Cloudspace Professional Services as we would any application developed in-house.
- How can I tell if my application is likely to pass review?
- Not 100%, but there are a few tell-tale signs of good development. Was the application:
- developed or completely updated in the last three years?
- developed using object-oriented Ruby or PHP?
- written using a good MVC framework: Rails for Ruby; Symfony, Codeigniter, or CakePHP for PHP?
- code documented for all classes and functions?
- built with good unit, functional, and integration tests code coverage?
- What if I pay for the review and my application does not pass?
- The best thing to do at that point is re-code the application to modern coding standards. The $2000 spent on the code review will be credited towards your first weekly site re-coding development sprint if started within one month of the review.
General Questions
- How do you bill for services?
- Agile development sprints are billed on the Thursday before the start of the sprint. Cloudspace Professional Services are billed on the last weekday of the month before service starts.
- What payment methods do you accept?
- For most projects we accept payment via a credit card that is kept on file. This allows us to do billing and payment just prior to the start of each work cycle. (See previous question.) If you have a special circumstance that will not allow payment by credit card, let us know and we can likely work something out.