Software Development Life Cycle
Our Software Development Life Cycle (SDLC) is comprised of the processes used to build your products and systems. This SDLC is a best of breed methodology, leveraging many of ideas championed by various other methodologies. A few things set ours apart:
- Competition between multiple resources is at the core of every task, eliminating the risk from single sourcing a task to an unreliable or incompetent resource.
- Quality control and assurance are integrated into each competition – this means the full deliverables are always completed, no short cuts.
- Transparency is a natural side effect of our methodology, since our community is virtual and our platform is open, our customers have unprecedented visibility into their development projects.
- Flexibility with a variety of entry points the SDLC can be used to build everything from micro scale applications – mobile, social, etc. – to the macro scale – enterprise platforms and cutting edge R&D – to everything in between.
Ideas are where the process starts. Maybe you have an idea or maybe you need one. In either case, you’ve just tapped into a whole lot of people that are going to think about it, add to it, pull it, prod it and so on. Ultimately, if you decide to proceed they’ll tell you how it can get built. These ideas are presented as business plans with goals, objectives, architectures, etc. Like many other areas of TopCoder, this is where things get interesting. You won’t get just one idea, you’ll get to choose which one you like best or combine multiple of your favorites. Your co-pilot will help you along your way.
Wireframes are the first step to building the user experience. Competitors analyze business requirements and organize the information.
Competitors collaborate with clients to help identify, organize, and document their needs and ideas.
Armed with the output from the idea section, your co-pilot will build a gameplan for you. The gameplan outlines the rest of the process to get your idea built and implemented. In it will be timelines, deliverables, assets used in your idea that have already been created by others and costs. The one thing conspicuously absent from a gameplan is people. It isn’t that we don’t like people – we love our members dearly – it is just that our process focuses the community on the work to be done and not matching fixed resources with variable demand. It’s an interesting concept and TopCoder is the only place like it.
Detailed requirements are hashed out and documented in order to accomplish the goals for the implementation of a product or software module.
Define the technical approach to implement the requirements. Specifies technologies, constraints, patterns and often splits systems into manageable modules or components.
How is that new phone app or web site going to look? Once the community has helped flesh out an idea, you’ll want to see what it looks like. Again, you won’t be looking at just one shiny new web site, phone app or Facebook page, but a bunch.
Create banner ads, icon sets and promo items. Conveying winning ideas in a small space is a challenging task!
Create interactive page elements, complex sites, apps, or games with Flash. Competitors take graphic elements and design interactions and animations.
Logo competitions range from conceptualizing the primary identifying mark of a company or brand to creating distinct logos.
Web design competitions apply the “look and feel” of the user experience. Designers produce flat graphic files.
Focuses on requirements such as the use of small space, specific source files and unique layout considerations.
Take the graphics (UI storyboards) and information architecture (IA wireframes) of a web site or application and create a demonstration of the working application.
TopCoder is known for this. Outwardly, you may not be that interested (unless you’re like our ¨¹ber-developer members) in this aspect of the platform, but trust us, you’ll be glad that we adhere to the notion that quality starts from the ground and moves up. We really can’t say enough about this – it is the core of what we have been building for the last ten years and it is what separates us from everyone else. Even if you’re not interested, please have a look – we love to show off!
Let the top analytical minds of the world compete on solving your hardest problems. The best algorithms win.
Contests produce detailed technical designs using UML, component requirements template and test plans.
Implement small interactive applications used on the Internet, mobile or on the desktop using graphics (UI storyboards) and information architecture (IA wireframes).
Contests produce a discrete functional unit of code (a component) based on a detailed technical design of a component.
Competitors integrate components and third party dependencies to build working software systems according to the requirements and architecture.
Convert the graphics (UI storyboard) and information architecture (IA wireframes) into the end state technology stack with hooks for the back-end logic to be plugged in.
How many programmers does it take to screw in a light bulb? We may not know the answer to that question, but we actually do know how many people it takes to test your new application. Fortunately, a lot of them are right here waiting for the chance.
Competitors produce automated test cases to validate the quality, accuracy and performance of applications.
Competitors identify defects by user testing applications and comparing final products to the requirements and architecture deliverables.
Problems, problems, problems
Alas, we aren’t magicians. All software has problems (we like to think we have far fewer than most). But when one does pop up, we want to fix it and fix it fast. Fortunately, we have a whole bunch of members that love a good problem. Since we take such care in the build part of the process to isolate things, finding and fixing things is straight forward.
Bug Race Competitions
Small competitions consisting of a set of instructions to complete an objective in a short timeframe. In this contest, the first complete submission is awarded the prize.
Bug Race Competition Assemblies
Batch together sets of issues or enhancements into a single contest so your result is a fully merged application ready for another round of testing.
When all is ready, we’ll help you get the product of the above launched. We know, we know! We want to see how cool it is just as much as you do. We’ll get it set up so we can tie it into other systems, or, put it in the cloud or get into whatever app store it needs to be in.