The Deadline and Captain Feature Two AIs for Software-Engineering Stefan Richter, freiheit.com technologies gmbh Lightningtalk, ECLM 2009, Hamburg
Software-Engineering is hard. Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. Hmm...
Most people are still mistaking this with creating bureaucracy. Most Software-Projects are still run by nonhackers. This is what I wanted to change, when I founded my own software-company freiheit.com technologies in 1999. Today we are 70 people. We are building large internet software systems.
Other companies try to automate programming. They focus on project management as the most important task and see programming as the simple production of a digital product. Programmers are seen as not so important.
Project Management is hard. Few can do it well. Everybody knows at least one project manager, who can easily be replaced by a simple emailresponder script...
Since 1999, we try to automate project management. We designed our own agile Software- Engineering methodology and refined it in the last 11 years.
Planning a software project is a combinatorial optimization over features and releases. In a nutshell: Find out, which features your customer needs. Estimate features. Each feature should be less than 5 mandays effort. Decompose your plan into short releases. Distribute features along the releases. (see http://www.hackers-with-attitude.com)
Running a software project is checking every day, if your prediction is still correct. In a nutshell: Release a version max. every three weeks. Check daily on the level of each feature, if your estimations are correct. Manage risk, if not.
We have lots of tool support. i.e. DocEdit, a special editor to write concept documents and to collect meta data, like estimations and priorities.
We collect lots of data. Our Programmers are using the 9 years old Captain Feature to manage their projects themselves.
But you have to lookup and analyze the data by yourself. Todays software is not helping the user in the interpretation of the data. But software should actively help you. Like a friend. Like a senior expert who is mentoring you.
Today Team- Coaches are helping our hackers. They know the data patterns when something is beginning to go wrong in a project. Birgit, Team-Coach, freiheit.com
We now started to put this experience into two AIs. The new Captain Feature is an AI that knows how to plan and run software projects. The Deadline is an AI that knows how to manage organizational tasks/todos. Like a very good personal assistant.
If this reminds you on The Daemon... Yes. We are heavily influenced... Lots of very simple bots connected to each other. ;)
We design our software with three dimensions in mind. Simple (minimal infos, features, interactions) Intelligent (AI does the basic thinking for you) Fun (motivate users like they are part of a game)
The new Captain Feature......helps the programmers to manage themselves. He finds problematic patterns and gives you advice.
Currently the (new) Captain is written in Common Lisp. SBCL. Hunchentoot. CL-Who. A specialized search engine. An internal MapReduce implementation to aggregate data.
The Deadline never sleeps. She observes your usage patterns and knows when she has to remind or help you.
The Deadline is written in Clojure. Compojure. Emacs+Slime. Google App Engine. Expert System Shell: Ideas from LISA/CLIPS production systems. Rete-Algorithm. Own implementation in Clojure named Eve. ;)
Clojure on Google App Engine rocks! Very good experience. Really simple deployments. We can run our products in the cloud and we can offer them to external users worldwide, without infrastructure investments.
Next steps The Deadline is already used internally. We want to expand this to our customers ( selfservice ). Fun -Dimension in planning. We start porting Captain Feature to Clojure and GAE at the beginning of October 2009. Both systems will be integrated.
Thank you! Check our website www.freiheit.com. It runs on Clojure + GAE, too! Twitter: twitter.com/smartrevolution Blog: hackers-with-attitude.com