Slashdot Mirror


Open Source Project Management Lessons

cpfeifer writes "Paul Baranowski takes a moment to reflect on Open Source Project Management in his blog. His reflections are based on the first two years of the Peek-a-booty project." Interesting comments on media coverage, choice of programming language, when to release a project, and more.

21 of 296 comments (clear)

  1. Project management Lessons by stanmann · · Score: 5, Interesting
    Is Open source project management really that much different from any other project management?

    don't release before it does something useful

    This is a rule in "traditional" project management too.

    and the other lessons read just like Project Management 101 too. I would have loved to have seen something insightful or interesting about how open source changes the development environment or the management environment from single location to distributed, but no such luck.
    --
    Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
  2. fascinating by Fux+the+Pengiun · · Score: 4, Interesting
    This is a great entry, with some really good insights.

    I first heard about this project from a BBC Article where they describe it as a "browser free from censorship or outmoded intellectual property laws," which is something I think we can all get behind! However, they made the point that the project could have been better named.

    It seems the author has picked up on that now, too. I think most telling is this passage from the author's blog (weblog):
    Be careful when naming your project. It's difficult for IT managers to convice PHB's that this project is useful for their enterprise class systems with a name like "peakabooty." This sort of nomenclature is detrimental to the future of GPL/Linux

    Hopefully, he'll take these insights to heart!
    --
    Consensual sex is boring.
  3. Re:Great, I would love to read all about it by stanmann · · Score: 2, Interesting

    I'm also at work, and since this is the first I've heard of this project, I'm a bit leary of going to a web site called Peek a booty. Uh, Not something that sounds very professional. ANd likely not something I want to be reading about at work.

    --
    Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
  4. Re:Repeating the same old misinformation by Rinikusu · · Score: 3, Interesting

    Actually, he just says that C++ is no longer a viable programming language. A quick look at the sourceforge project page reveals that peek-a-booty is indeed written in C++.

    --
    If you were me, you'd be good lookin'. - six string samurai
  5. Depends on What you Want by m_niessner · · Score: 1, Interesting

    C++ is still a very viable language. I have not seen that many Visualization or Gaming Apps written in anything but C++. My only dislike of C++ is it's syntax. I personally think it is one of the ugliest languages ever. However, I do not let that beleif stand in front of the fact that it is still very useful.

  6. Re:Article text by quasi_steller · · Score: 4, Interesting
    There are no standard libraries for C++, so there's a lot of reinventing the wheel. (Yeah, there's the STL and others, but each one has a huge learning curve associated with it).

    Well, there is the STL and the Standard C++ library. These are not really hard to learn; it is just that they are both fairly new. The Standard C++ library and STL didn't become standard until around 1998 when the ISO C++ standard was formed. Because that is only 5 years ago, and C++ is much older than 5 years, there are still a lot of books and courses floating around that don't teach Standard C++. When you learn "Visual C++," or whatever, from an older book (or bad book) then it seems that the STL is hard because you are not use to templates and all that stuff (mostly because many older compilers are broken, ie VC++ 6.0, and don't support the standard).

    If you learned STL and the Standard library when you first learned C++ then maybe they wouldn't seem so difficult. Also, many people who first learn programming in a language such as Pascal, like me! :), have difficulties learning generic programming because they are so used to thinking about what types your variables are. Templates and generic programming are very powerful, if you are willing to spend the time learning how to use them.

    --
    ...interesting if true.
  7. Duh by apankrat · · Score: 4, Interesting

    C/C++ is no longer a viable development language

    Sure, in the scope of this particular project and in the context of their skillset and development practices.

    Don't Use Binary Protocols for Application Development

    Bah, I'm speachless. Yeah, right. Better yet convert data to PNG images and pass those along - it will allow you to debug networking layer with a web browser ... Ever heard of protocol layering or data marshalling ?

    With all due respect, it looks like Mr.Baranowski either learnt wrong lessons or likes to summarize things beyond reasonable limits.

    --
    3.243F6A8885A308D313
  8. Opinions Aren't 100% Correct Otherwise by deadlinegrunt · · Score: 2, Interesting

    they would just call them facts.

    "C/C++ is no longer a viable development language..."

    "not viable development languages for application level work."

    "...It's really, really, really hard for people to learn it."

    "...There are no standard libraries for C++, so there's a lot of reinventing the wheel. (Yeah, there's the STL and others, but each one has a huge learning curve associated with it)."

    So in otherwords it's shocking that the programmer has to know something about the tool, platform, domain, etc. to be able to code? G~A~S~P!!!

    What's the number one complaint of almost all end users to a product? Code bloat and speed . Sorry to tell you this but if your complaining about compile times then you don't have much of an option when it comes to execution speed of the same said program being compiled.

    --
    BSD is designed. Linux is grown. C++ libs
  9. Re:Article text by pVoid · · Score: 2, Interesting
    I agree.

    Who among us is soooo old that STL is new??

    I hate these self-prophets roaming around the IT world. They are part of the fucking reason we had the dot-com crash. And they will continue to hamper the industry.

    Fucking let everyone code in whatever they want man... Just stop trying to convince everyone that your own point of view is the best point of view.

    I use C++ most of the time, but I don't cower at using fast throwaway stuff like the odd perl CGI script, or some ASP. Everything has its place. Except for evangelizers like this.

    IM(F)O.

  10. Re:"C/C++ is no longer a viable development langua by Cereal+Box · · Score: 4, Interesting

    There is, indeed, a standard library for C++, one which is widely supported - STL.

    I don't think that's what he meant by a "standard library". He's thinking along the lines of Java's standard library -- a standard library that gives you graphics classes, networking classes, XML parser classes, GUI classes, etc. You know, the kind of stuff that would be convenient to have bundled with a language. STL is a standard library full of basic data types like linked lists and hash tables. Big whoop.

  11. surprised by EZmagz · · Score: 2, Interesting
    This quote from the article really surprised me: " C/C++ is no longer a viable development language

    I am not a very active coder, nor will I ever be. Coding is just something that does not come naturally to me. However, I thought that for the most part, C/C++/Java were still the big "players" in the application development world (scripting's a different story). So I would like to know what this fellow suggests for a good language to start projects in?

    --

    "Hell hath no fury like a woman scorned for SEGA. ..."

  12. Closer to Design in Open Standards, but similar by nrrrdboy · · Score: 2, Interesting

    http://goatee.net/2003/07#_02we-a

    Design By Committee: "...Yes, you understand me correctly, I'm more worried about the size and character of the community than the actual technical issue."

  13. Re:"C/C++ is no longer a viable development langua by hackrobat · · Score: 5, Interesting
    I work at Oracle. C++ is banned here. Apparently, Oracle software runs on more platforms than there are C++ compilers for. Therefore, C++ is a strict no-no. The internal C coding standards doc reads somewhat like this:
    1. Don't write C++.
    2. If you've already written C++, rewrite in C.
    :-)

    So it's either C, or Java (lately). Anything else is considered as scripting (Perl, Shell, SQL).

  14. Re:Don't care, he got me an "A" by poptones · · Score: 2, Interesting
    Ya know, I really get pissed off about the stuff going on in the USA, but then I see stuff like this and I get pissed off even more.

    How many political dissidents are in US prisons? I mean besides the people who are there because they ingested drugs or because they don't have the huge sum of money to pay bail even 'tho it's a good chance they are innocent. I mean actual dissidents - like someone who goes online at a widely read journal and calls the president a parasite.

    Russia's only non-government controlled TV network has been dissolved by order of that government. In fact, Putin would like to have the head of the network "putin" jail despite the fact another court (outtside the jurisdiction of the kremlin) found he had commited no actual crime.

    The other states are no longer part of the FSU, of course, but in other now "democratic" countries (like Ukraine) criticizng the government in the press may not even get you due process - instead you may be found hanging like a side of rotting beef. Or maybe even beaten to death in the street.

    It's getting bad... but it's not nearly as bad here as it could get.

  15. NOT just open source by Kefaa · · Score: 4, Interesting

    His point that this is not unique to OSS Projects is a good one. While OSS development has unique constraints most are around people and personality. In an office we all have to get along or get fired, in OSS it can sometimes be worse.

    For example:
    The press loves infighting because it's a good story. However, the infighting story is bad for a project that is trying to get funding. This creates an air of instability. People only like to fund things they feel will have a high chance of success, and instability erodes that confidence.

    It is too bad on so many mailing lists ego/attitude/personality or just plain rudeness show up. Things you would never say to a coworker, make it onto a mailing list for eternity, or at least what looks like one. I hope people take this point to heart before posting.


    95-5 Rule
    Usually it's the 80-20 rule, but in open source projects it's more like the 95-5 rule. Open source projects are usually run by one or two people doing most of the work. If you decide to lead an open source project, you must be willing and ready to accept this.


    Looking at sourceforge I see this lesson again and again. The idea that if I create it they will come, and build. Forgotten, or unknown, is that nearly all had a real need to be built first. I needed application ZAFDE so I built it. I then released it and people thought they could build on it, and so on.

    I wanted to learn C++ or JAVA or XYZ is the reason we have 2,134,931 notepad applications, not OpenOffice.

    C/C++ is no longer a viable development language
    I knew we would see a flamewar as soon as I read it. My thoughts:
    - Both are still viable. Much like his hammer analogy, they are not good for everything.
    - What makes them "bad" for development, makes them "good" after they are developed.
    Does it matter to the user that it took 81 minutes to compile? Nope, they have the binaries or compile it once and run it for years.
    Every language has a shortage of people who know it. Or specifically a shortage of the people who know it and are willing to work on OSS project PDQ.
    Static binding is good/bad/sometimes both. Yes it is.

    All the negatives he spoke of are positives after it is developed. Which we hope is long compared to the time spent developing it.

    If there is one thing projects should take away, it is probably this:
    Interface is Everything ...The program should be fun to work with. There should be buttons and things that blink. The interface should be the first thing you do. The interface serves as inspiration and motivation and helps you to learn how the final product should look. Yes, it's going to change a lot. Yes, it's going to have to be rewritten multiple times. Yes, it will never be good enough...But when someone downloads your program they will have something to do. No one likes to look at command lines.

    I like command lines. I use them, but I understand they are power tools. Most people do not like/use them and consider them an indicator of a poor product. Even while it may not be technically true, perception is reality in this.

  16. Windows and WINE only... by Ashtead · · Score: 3, Interesting
    I didn't have any problems with reading the site at the time of this posting, but I can see where his headaches with C++ might have come from. The MSVC versions of STL hasn't been around in a standard form for very long, although the MFC library has been. This is most likely the grounds for the complaint. And the MFC does not make for easy portability to native Linux/Unix environments.

    However, designing things in C++ and doing it properly is damn tough; many designs may seem easy to begin with, but then run into trouble with things like multiple inheritance from related parents, or simply that encapsulation is difficult because of the need for exposing the inner workings of classes... STL fixes some of this at the expense of code bloat -- it is easy to produce executables tens of megabytes in size.

    Another problem with C++ which has been bothering me, and I would presume, the developers of Peekabooty, is the tendency towards static compilation and inclusion of everything. I looked at the source files here, and the sheer number of include-files compared to source files indicate that this probably does not compile quickly.

    There is a way around this, if the application can be divided into several major and fairly independent components which then are compiled and linked as a number of dynamical libraries (.DLLs on Windows, .so on Linux and Unix). Now, with proper design, recompiling the whole lot is not necessary for smaller changes within one of the parts where no changes in this part has taken place. The trick here is encapsulation: do not let code in any one part know about any of the internal structure of code in any other part.

    --
    SIGBUS @ NO-07.308
  17. Re:dynamic languages on the rise by __past__ · · Score: 2, Interesting
    Try Common Lisp some time - it is just as open and flexible (you can define and redefine classes, functions and methods at runtime, change the class of an object etc.), only that it additionally has fast compilers (I personally prefer SBCL), so you don't have to resort to C just for speed (of course you still can interface with C libraries - and the best thing is that you can write this interface itself completly in Lisp, with all the instant testability and redefinability).

    OK, enough language advocacy ;-)

    I couldn't agree more with you. Once you have experienced a dynamic language, there's no looking back. It just feels like you have finally found an environment that tries to actively support you, adapting to your style of working, rather than to impose arbitrary restrictions from the world of punch-card batch processing on you.

    In static languages, you write C or C++ or Ada or Java. In a dynamic language, you write solutions for the problem at hand.

  18. Re:Article text by Jellybob · · Score: 4, Interesting

    He said it's no longer viable for application level programming... Linux and XFree are certainly not application level, and argubly the Mozilla core isn't either (the front end is, but you could wrap the Gecko API for some other language to create that).

  19. Re:"C/C++ is no longer a viable development langua by Arandir · · Score: 3, Interesting

    Java - install the compatibility VM; use the same binary on all platforms

    I'm laughing so hard Dr. Pepper is spewing out my nose! Let me wipe off my screen...

    Trying to get Java applications to work on my Solaris workstation is a nightmare. I can't understand it because the company that makes Java makes Solaris. I try to figure out what the problem is, and hidden way deep in the README is this thing that says I need to install a different version than what Sun provided with Solaris. I fix that and it still doesn't work. Looking deeper into the problem, I see that I need a couple of other components that didn't come with the application. After about two hours of searching for the "myleetclasses.jar" and "ubercoolstuff.jar" files, I put them in a directory, fiddle with the CLASSPATH variable, and finally get the program up and running. And then it crashes five seconds later.

    you either have to manage binary chaos or you have to start distributing your code as source.

    Binary chaos is a pain. A royal pain. So I distribute my code as source instead. Easy. Painless. Users that don't want to compile can grab a prebuilt package from their distro or another repository.

    Of course, I'm writing Open Source, and not cheesy shareware. Perhaps that's the true niche for Java and .NET...

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  20. Re:"C/C++ is no longer a viable development langua by hackrobat · · Score: 3, Interesting
    I'll clarify:
    • Existing C++ code in Oracle products has already raised serious portability issues.
    • Oracle RDBMS is one of the first products to be ported to a new platform, often before the official release of the new platform. At the time of porting, a C compiler will be available, but a C++ compiler may not be.
    • C compilers for 64-bit platforms are far ahead of their C++ counterparts.
    • C++ compilers on some platforms are immature. It's far easier to write incompatible C++ code (than C).
    <disclaimer> My views; not those of Oracle. </disclaimer>

    The Mozilla C++ Portability Guide also restricts use of some key C++ features (rtti, exceptions, templates (which rules out the STL by the way!)).

  21. Re:He wants Visual Basic? by cr0sh · · Score: 2, Interesting
    Yeah - and?

    Think about it - an open-source project of any large size requires more than a handful of developers. There are only a finite number of developers on the planet, and only a subset of those are willing to work on open-source projects. Now, of those, how many do you think have a) free time to devote to an open source project (which also may mean that they aren't contributing to other projects), and b) can work in the language being used, or pick it up quickly?

    I can guarantee you that subset is rather small, perhaps in some cases non-existant, because many programmers with a good skillset like that (that is, they are C++ programmers for a long while and know their shit, or can pick up C++ rapidly) want to be *paid* for their work - thus those who just want to help out are few and far between.

    Now, what if the project was developed in something much easier to pick up - or was more widely known? You would instantly have more developers willing to help out, simply because of the numbers knowing the language. Plus, ordinary users could easily pick up the language and help out, possibly fixing the bugs that bother them (and bugs which bother one user may not bother developers, but they probably bother a ton of other users).

    Unfortunately, C++ is not the language that most people know. Java comes close, but it still is difficult for a lot of people to grasp. What most people *can* grasp (though it may not be best for application development, however, in most projects it won't matter if done right) is a language which has a much more "english-like" syntax, and can be programmed as a "functional language" (as opposed to requiring OOP, like Java). What does that leave most users with? That's right - VB. Is it any wonder that many (understatement - an absolute TON would be better) internal (and more than a few external) applications for businesses (that is, applications developed by businesses for business - whether it is for internal use or external sale) have been written in VB? Is it any wonder that Windows holds the desktop in businesses - wonder why? VB. Whether it is a real VB solution (ie, VB executable, etc) or an "Office" integrated solution (VB for Applications) - in the end, it comes down to VB, and users being able to quickly come up to speed on it.

    Personally, I think this is one of the things holding back development by businesses on Linux (esp on the desktop) - the lack of such a tool. The closest I have seen has been Python with some windowing toolkit (to interface with X) tacked on, plus a gui designer to create the fancy forms - but none of this is as integrated as VB's IDE is, and while Python is a nice looking language (I can't really tell how good it is at things - I have never used it - currently playing and learning about Perl and PHP), it isn't BASIC.

    I have never understood why there is such derision regarding BASIC - because that is the problem, it seems. At one time, BASIC was looked upon as a satisfactory language for a lot of projects - whether hobbiest or business. Even today, in business, you still have people creating large business application (think vertical markets) in what amounts to BASIC. Why is it that Parallax's microcontrollers became so popular so quickly? BASIC!

    I think if inroads are to be made in the business realm on the desktop by Linux (and maybe even *nix distros in general), there needs to be a form of BASIC for users to create custom applications with. I am not saying that we should have it like Microsoft's vision (what with Outlook being able to willy-nilly run VBA scripts and such) - but a BASIC with perhaps sandbox capabilities for security, plus the ability be plugged into a variety of office applications, and a tight, clean IDE/debugger - that would help propel Linux onto the desktop in business.

    Finally, let me say this - I am not saying BASIC (or VB) is the tool for every job - it isn't. But it is a nice general purpose tool which can help solve many problems in business, and it provides rapid turnaround for projects. If such a language or development environment were created for Linux, it would be a boon for both businesses and open source projects/developers.

    --
    Reason is the Path to God - Anon