-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrails-project-management.html
198 lines (198 loc) · 18.3 KB
/
rails-project-management.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<!DOCTYPE html>
<!--[if IE 9]><html class="lt-ie10" lang="en" > <![endif]-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Project Management for Startups · RailsApps</title>
<meta name="viewport" content="width=device-width">
<link href="https://plus.google.com/117374718581973393536" rel="publisher">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/foundation/5.2.2/css/normalize.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/foundation/5.2.2/css/foundation.min.css">
<link rel="stylesheet" href="http://railsapps.github.io/css/railsapps.css" />
<link rel="stylesheet" href="http://railsapps.github.io/css/syntax.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<script type="text/javascript">
window.analytics=window.analytics||[],window.analytics.methods=["identify","group","track","page","pageview","alias","ready","on","once","off","trackLink","trackForm","trackClick","trackSubmit"],window.analytics.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),window.analytics.push(a),window.analytics}};for(var i=0;i<window.analytics.methods.length;i++){var key=window.analytics.methods[i];window.analytics[key]=window.analytics.factory(key)}window.analytics.load=function(t){if(!document.getElementById("analytics-js")){var a=document.createElement("script");a.type="text/javascript",a.id="analytics-js",a.async=!0,a.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.io/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n)}},window.analytics.SNIPPET_VERSION="2.0.9",
window.analytics.load("l1stqfqqbf");
window.analytics.page();
window.analytics.ready(function () {
ga('require', 'linker');
ga('linker:autoLink', ['railscomposer.com','learn-rails.com','blog.railsapps.org','tutorials.railsapps.org']);
});
</script>
</head>
<body>
<div class="fixed">
<nav class="top-bar" data-topbar>
<ul class="title-area">
<li class="name">
<a href="http://railsapps.github.io/" class="brand">RailsApps Project</a>
</li>
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
</ul>
<section class="top-bar-section">
<ul class="right">
<li><a href="https://tutorials.railsapps.org/" class="google">Tutorials</a></li>
<li><a href="http://twitter.com/rails_apps" class="twitter">Twitter</a></li>
<li><a href="http://blog.railsapps.org/" class="twitter">Blog</a></li>
<li><a href="https://github.com/RailsApps" class="github">GitHub Repository</a></li>
</ul>
</section>
</nav>
</div>
<div class="row">
<div class="large-12 columns">
<div class="content wikistyle gollum textile">
<h1>Project Management for Startups</h1>
<h4>by Daniel Kehoe</h4>
<p><em>Last updated 17 April 2013</em></p>
<p>This article from the <a href="http://railsapps.github.io/">RailsApps project</a> describes how entrepreneurs can manage development of software applications for startups and personal projects. For solo operators or small teams it suggests some tools for task management and introduces the <em>kanban</em> method of project management. For larger teams, I provide links to some articles that describe project management approaches used at successful startups.</p>
<h4>If You Are New to Rails</h4>
<p>If you’re new to Rails, see <a href="http://railsapps.github.io/what-is-ruby-rails.html">What is Ruby on Rails?</a>, the book <a href="http://learn-rails.com/learn-ruby-on-rails.html">Learn Ruby on Rails</a>, and recommendations for a <a href="https://tutorials.railsapps.org/rails-tutorial">Rails tutorial</a>.</p>
<h4><a href="http://railsapps.github.io/"><img src="http://railsapps.github.io/images/join/join-railsapps.png" title="Join RailsApps" alt="Join RailsApps"></a></h4>
<h4>What is the RailsApps Project?</h4>
<p>This is an article from the RailsApps project. The <a href="http://railsapps.github.io/">RailsApps project</a> provides example applications that developers use as starter apps. Hundreds of developers use the apps, report problems as they arise, and propose solutions. Rails changes frequently; each application is known to work and serves as your personal “reference implementation.” Each application is accompanied by a tutorial so there is no mystery code. Support for the project comes from subscribers. Please accept our invitation to <a href="http://railsapps.github.io/">join the RailsApps project</a>.</p>
<h2>Project Management for Entrepreneurs</h2>
<p>Building a web application is a complex project; building a business is even more complicated. If you’re working solo, you’ll want to track progress toward your goals. If you’ve put together a team, you’ll need a way to keep track of tasks so you can communicate and coordinate.</p>
<p>Defining tasks and tracking progress is the core of project management. A robust software development process includes product planning, project management and testing. See an article on <a href="http://railsapps.github.io/rails-product-planning.html">Rails and Product Planning</a> for more on product planning. As the article explains, “user stories” are a great way to organize application development into discrete tasks.</p>
<p>Once you’ve defined your tasks through a product planning process, you’ll need to organize and track your tasks. A simple to-do list may be all you need for a small project. Keep track of your tasks on paper or with a web or mobile app. Some apps are designed for team collaboration. I also recommend looking at the Kanban approach that is often used in software development.</p>
<h3>To-Do List</h3>
<p>Some entrepreneurs like the discipline of the <span class="caps">GTD</span> (<a href="http://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done</a>) system for personal productivity and time management. <span class="caps">GTD</span> relies on making lists of tasks, either on paper or with one of the many popular to-do list applications. If you’re looking for a personal task management tool, you can see a list of <a href="http://www.priacta.com/Articles/Comparison_of_GTD_Software.php">150+ <span class="caps">GTD</span> and to-do list applications</a>.</p>
<h4>Personal Task Management</h4>
<p>Here are some of the most popular personal task management tools:</p>
<ul>
<li><a href="http://www.toodledo.com/">Toodledo</a></li>
<li><a href="http://culturedcode.com/things/">Things</a></li>
<li><a href="http://todoist.com/">Todoist</a></li>
<li><a href="http://www.rememberthemilk.com/">Remember The Milk</a></li>
<li><a href="http://www.omnigroup.com/products/omnifocus/">Omnifocus</a></li>
<li><a href="http://www.6wunderkinder.com/wunderlist/">Wunderlist</a></li>
</ul>
<h4>Team Task Management</h4>
<p>For a team-oriented task management application, take a look at:</p>
<ul>
<li><a href="http://asana.com/">Asana</a></li>
<li><a href="http://basecamp.com/">Basecamp</a></li>
<li><a href="https://trello.com/">Trello</a></li>
<li><a href="http://www.producteev.com/">Producteev</a></li>
<li><a href="http://getflow.com/">Flow</a></li>
</ul>
<h3>Kanban</h3>
<p>In Japanese, “Kan” means visual, and “ban” means card or board. <a href="http://en.wikipedia.org/wiki/Kanban_(development)">Kanban</a> is a method of managing projects that was adapted from <a href="http://en.wikipedia.org/wiki/Lean_manufacturing">lean manufacturing</a> for use in software development.</p>
<p>Imagine putting a big whiteboard on your wall and creating columns for a series of to-do lists. The columns, called <a href="http://en.wikipedia.org/wiki/Swim_lane">swimlanes</a>, are labelled: Backlog, Ready, Coding, Testing, Done. Each swimlane contains index cards that describe a user story or other task. To plan your work and track progress, you’ll move the index cards across the board from column to column. To stay focused and avoid overwhelm, you’ll only pick the most important user stories or tasks from the backlog column and you’ll limit the number of items in each column to what can be realistically accomplished in the time available. That’s the essence of kanban as it used for software development.</p>
<p>Here are some popular kanban web applications:</p>
<ul>
<li><a href="https://kanbanery.com/">Kanbanery</a></li>
<li><a href="https://trello.com/">Trello</a></li>
<li><a href="http://leankit.com/">LeanKit</a></li>
</ul>
<p>Online kanban applications are useful if your team is working remotely or you want to review and organize your tasks from your easy chair. Here’s a more exhaustive list: <a href="http://www.quora.com/Lean-Software-Development/What-is-the-best-online-tool-for-Agile-development-using-Kanban">online kanban applications</a>.</p>
<h3>Agile Tools</h3>
<p>For a solo project or a small team, you’ll do fine with a simple to-do list or (even better) a kanban web application.</p>
<p>However, if your business has grown to a size where you need to assign a project manager, you should look at project management software that supports teams using <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile software development</a> methodologies. <a href="http://www.pivotaltracker.com/">Pivotal Tracker</a> is the best known tool but there are many other <a href="http://agilescout.com/best-agile-scrum-tools/">agile tools</a>.</p>
<h3>Project Management Software</h3>
<p>Stay away from project management software that is not designed for an agile software development process (and be wary of hiring project managers who have little experience in software development). Methodologies that were developed for construction or military logistics don’t work well in software development. Project management applications such as Microsoft Project that generate Gantt charts will lead you to the purgatory of a <a href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall process</a>.</p>
<h2>Project Management in Successful Startups</h2>
<p>Hopefully you are reading this as an entrepreneur who wants to plan ahead for growth, getting started with good practices. If your company is already growing fast, and you’re facing challenges, you’re not alone, as many startups face organizational issues as they grow from three people to eight or fifteen.</p>
<p>Here’s links to articles written by Richard White, <span class="caps">CEO</span>/cofounder of <a href="https://www.uservoice.com/">UserVoice</a>, and the engineering lead at <a href="http://www.skroutz.gr/">Skroutz</a>, a Greek ecommerce startup:</p>
<ul>
<li><a href="http://community.uservoice.com/blog/trello-google-docs-product-management/">How we use Trello & Google Docs to make UserVoice better every day</a></li>
<li><a href="http://www.skroutz.gr/blog/posts/76-how-we-manage-to-manage">How we manage to manage</a></li>
</ul>
<p>The articles describe bigger teams and a more complex workflow, but at the heart of the process are user stories and kanban boards implemented in <a href="https://trello.com/">Trello</a>.</p>
<p>If you’ve found other articles, or have tips for project management for startups, leave a comment.</p>
</div>
<div class="comments" id="comments">
<div class="content wikistyle gollum">
<h2>Comments</h2>
</div>
<p>Is this helpful? Your encouragement fuels the project. Please tweet or add a comment. Couldn't get something to work? For the example apps and tutorials, it's best to open an issue on GitHub so we can help you.</p>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'railsapps'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div><!-- class="comments" -->
</div><!-- class="columns" -->
</div><!-- class="row" -->
<footer class="row">
<div class="large-12 columns">
<div class="row">
<div class="medium-4 large-4 columns">
<dl class="footer_nav">
<dt>RailsApps · Getting Started</dt>
<dd><a href="http://railsapps.github.io/ruby-and-rails.html">Ruby on Rails</a></dd>
<dd><a href="http://railsapps.github.io/what-is-ruby-rails.html">What is Ruby on Rails?</a></dd>
<dd><a href="http://learn-rails.com/learn-ruby-on-rails.html">Learn Ruby on Rails</a></dd>
<dd><a href="https://tutorials.railsapps.org/rails-tutorial">Rails Tutorial</a></dd>
<dd><a href="http://learn-rails.com/ruby-on-rails-tutorial-for-beginners">Ruby on Rails Tutorial for Beginners</a></dd>
<dd><a href="http://railsapps.github.io/installing-rails.html">Install Ruby on Rails</a></dd>
<dd><a href="http://railsapps.github.io/installrubyonrails-mac.html">Install Ruby on Rails - Mac OS X</a></dd>
<dd><a href="http://railsapps.github.io/installrubyonrails-ubuntu.html">Install Ruby on Rails - Ubuntu</a></dd>
<dd><a href="http://railsapps.github.io/rubyonrails-nitrous-io.html">Ruby on Rails - Nitrous.io</a></dd>
<dd><a href="http://railsapps.github.io/updating-rails.html">Update Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-composer/">Rails Composer</a></dd>
<dd><a href="http://railsapps.github.io/">Rails Examples</a></dd>
<dd><a href="http://railsapps.github.io/rails-examples-tutorials.html">Rails Starter Apps</a></dd>
</dl>
</div>
<div class="medium-4 large-4 columns">
<dl class="footer_nav">
<dt>RailsApps · Articles</dt>
<dd><a href="http://railsapps.github.io/rails-authorization.html">Rails Authorization</a></dd>
<dd><a href="http://railsapps.github.io/rails-google-analytics.html">Analytics for Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-heroku-tutorial.html">Heroku and Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-javascript-include-external.html">JavaScript and Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-environment-variables.html">Rails Environment Variables</a></dd>
<dd><a href="http://railsapps.github.io/rails-git.html">Git and Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-github.html">Rails GitHub</a></dd>
<dd><a href="http://railsapps.github.io/rails-send-email.html">Send Email with Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-haml.html">Haml and Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-default-application-layout.html">Rails Application Layout</a></dd>
<dd><a href="http://railsapps.github.io/rails-html5-boilerplate.html">HTML5 Boilerplate for Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-3-2-example-gemfile.html">Example Gemfiles for Rails</a></dd>
<dd><a href="http://railsapps.github.io/rails-application-templates.html">Rails Application Templates</a></dd>
<dd><a href="http://railsapps.github.io/rails-product-planning.html">Rails Product Planning</a></dd>
<dd><a href="http://railsapps.github.io/rails-project-management.html">Rails Project Management</a></dd>
</dl>
</div>
<div class="medium-4 large-4 columns">
<dl class="footer_nav">
<dt>RailsApps · Tutorials</dt>
<dd><a href="http://railsapps.github.io/twitter-bootstrap-rails.html">Rails Bootstrap</a></dd>
<dd><a href="http://railsapps.github.io/rails-foundation.html">Rails Foundation</a></dd>
<dd><a href="http://railsapps.github.io/rails-omniauth/">OmniAuth Tutorial</a></dd>
<dd><a href="http://railsapps.github.io/tutorial-rails-devise.html">Rails Devise Tutorial</a></dd>
<dd><a href="http://railsapps.github.io/tutorial-rails-devise-rspec-cucumber.html">Devise RSpec</a></dd>
<dd><a href="http://railsapps.github.io/tutorial-rails-bootstrap-devise-cancan.html">Devise Bootstrap</a></dd>
<dd><a href="http://railsapps.github.io/rails-devise-roles">Role-Based Authorization</a></dd>
<dd><a href="http://railsapps.github.io/rails-devise-pundit">Rails Authorization with Pundit</a></dd>
<dd><a href="https://tutorials.railsapps.org/rails-stripe-membership-saas">Rails Membership Site with Stripe</a></dd>
<dd><a href="https://tutorials.railsapps.org/rails-recurly-subscription-saas">Rails Subscription Site with Recurly</a></dd>
<dd><a href="https://tutorials.railsapps.org/rails-prelaunch-signup">Startup Prelaunch Signup Application</a></dd>
</dl>
<dl class="footer_nav">
<dt>RailsApps Profile</dt>
<dd><a href="https://plus.google.com/108039160165742774777?rel=author">Google</a></dd>
<dd><a href="https://plus.google.com/117374718581973393536" rel="publisher">Find us on Google+</a></dd>
</dl>
</div>
</div>
</div>
</footer>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/foundation/5.2.2/js/foundation.min.js"></script>
<script>
$(document).foundation();
</script>
</body>
</html>